web安全入门笔记

0x01 前言

这正邪两字,原本难分。

正派弟子若是心术不正,便是邪徒。

邪派中人只要一心向善,便是正人君子。

0x01 信息安全的定义

信息安全,意为保护信息及信息系统免受未经授权的进入、使用、披露、破坏、修改、检视、记录及销毁。

0x02 黑客定义

黑客(大陆和香港:黑客,台湾:骇客,英语:Hacker)

黑客本意是指对计算机科学、编程和设计方面具有高度理解的人。除了精通编程、 精通操作系统的人可以被视作黑客外, 对硬件设备创新的工程师通常也被认为是黑客。 此外, 现在精通网络入侵的人也被看作是黑客

0x03 什么是OWASP

开放式Web应用程序安全项目(OWASP: Open Web Application Security Project)

0x04 什么是OWASP-TOP

是由开源组织OWASP发布的当年最新漏洞的排名, Top10项目的目标, 是通过识别出企业组织所面对最严重的风险来提高人们对应用程序安全的意识。

0x05 shell和webshell

-Shell在计算机科学中,Shell俗称壳,也可以说是命令解析器(将输入的指令转化为机器能够识别的二进制代码<也可以说是机器码>),它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

-Shell示意图:

-Webshellwebshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

-webshell示意图:

-Shell和Webshell的区别:

(1)    共同点:都是一种壳

(2)    不同点:Shell直接作用于系统、Webshell模拟一种终端的样子

 -Webshell的隐蔽性和穿越防火墙的原因:

webshell可以穿越服务器防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。

0x06 渗透测试流程

-PTES标准<PenetrationTesting Executjion Standard>:7个阶段

1) 在前期交互(Pre-Engagement Interaction)阶段:该阶段通常涉及收集客户需求、准备测试计划、定义测试范围与边界、定义业务目标、项目管理与规划等活动。渗透测试团队与客户组织进行交互讨论,最重要的是确定渗透测试的范围、目标、限制条件以及服务合同细节(只干要求干的,没要求干的要是干了小心有人请喝茶)

2) 信息收集阶段

a、 计算机信息(操作系统、端口<port>)、人员信息、应用服务信息

b、 Whois是什么?如何使用?

Whois是用来查询域名的IP以及所有者得信息的传输协议。Whois通常使用tcp协议43端口。

不同域名后缀的whois信息需要到不同的whois数据库查询。

c、  Wordpress是什么?

在目标范围确定之后,将进入情报搜集(Information Gathering)阶段,渗透测试团队可以利用各种信息来源与搜集技术方法,尝试获取更多关于目标组织网络拓扑、系统配置与安全防御措施的信息。

渗透测试者可以使用的情报搜集方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,情报搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。

3) 威胁建模阶段

  在搜集到充分的情报信息之后,渗透测试团队的成员们停下敲击键盘,大家聚到一起针对获取的信息进行威胁建模(Threat Modeling)与攻击规划。这是渗透测试过程中非常重要,但很容易被忽视的一个关键点。

通过团队共同的缜密情报分析与攻击思路头脑风暴,可以从大量的信息情报中理清头绪,确定出最可行的攻击通道。

4) 漏洞分析阶段

在确定出最可行的攻击通道之后,接下来需要考虑该如何取得目标系统的访问控制权,即漏洞分析(Vulnerability Analysis)阶段。

在该阶段,渗透测试者需要综合分析前几个阶段获取并汇总的情报信息,特别是安全漏洞扫描结果、服务查点信息等,通过搜索可获取的渗透代码资源,找出可以实施渗透攻击的攻击点,并在实验环境中进行验证。在该阶段,高水平的渗透测试团队还会针对攻击通道上的一些关键系统与服务进行安全漏洞探测与挖掘,期望找出可被利用的未知安全漏洞,并开发出渗透代码,从而打开攻击通道上的关键路径。

5) 渗透测试阶段

渗透攻击(Exploitation)是渗透测试过程中最具有魅力的环节。在此环节中,渗透测试团队需要利用他们所找出的目标系统安全漏洞,来真正入侵系统当中,获得访问控制权。

渗透攻击可以利用公开渠道可获取的渗透代码,但一般在实际应用场景中,渗透测试者还需要充分地考虑目标系统特性来定制渗透攻击,并需要挫败目标网络与系统中实施的安全防御措施,才能成功达成渗透目的。在黑盒测试中,渗透测试者还需要考虑对目标系统检测机制的逃逸,从而避免造成目标组织安全响应团队的警觉和发现

6) 后渗透测试阶段

后渗透攻击(Post Exploitation)是整个渗透测试过程中最能够体现渗透测试团队创造力与技术能力的环节。前面的环节可以说都是在按部就班地完成非常普遍的目标,而在这个环节中,需要渗透测试团队根据目标组织的业务经营模式、保护资产形式与安全防御计划的不同特点,自主设计出攻击目标,识别关键基础设施,并寻找客户组织最具价值和尝试安全保护的信息和资产,最终达成能够对客户组织造成最重要业务影响的攻击途径。

在不同的渗透测试场景中,这些攻击目标与途径可能是千变万化的,而设置是否准确并且可行,也取决于团队自身的创新意识、知识范畴、实际经验和技术能力。

7) 撰写报告阶段(要去了解一下撰写报告的格式和要求)

渗透测试过程最终向客户组织提交,取得认可并成功获得合同付款的就是一份渗透测试报告(Reporting)。这份报告凝聚了之前所有阶段之中渗透测试团队所获取的关键情报信息、探测和发掘出的系统安全漏洞、成功渗透攻击的过程,以及造成业务影响后果的攻击途径,同时还要站在防御者的角度上,帮助他们分析安全防御体系中的薄弱环节、存在的问题,以及修补与升级技术方案。

0x07 渗透术语

-渗透攻击:

攻击者利用安全漏洞,所进行的攻击行为;常见的渗透攻击技术包括缓冲区溢出、web应用程序漏洞攻击(SQL注入)、利用配置错误等。

-攻击载荷(Payload)

目标系统在被渗透攻击之后执行的代码。

-shellcode

在渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写

-模块(Module)

一段软件代码组件

-监听器(Listener)

用来等待连入网络连接的组件

.......未完

猜你喜欢

转载自www.cnblogs.com/ldhbetter/p/9201755.html