如何进行web渗透测试
Web应用的渗透测试流程主要分为3个阶段:信息收集、漏洞发现、漏洞利用。
一、信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等
二、漏洞发现
在这个阶段我们在做测试的时候要对症下药,不能盲目的去扫描,首先要确定目标应用是否使用的是公开的开源软件,开源框架等、然后在做深一度的漏洞扫描。
三、漏洞利用
针对不同的弱点有不同的漏洞利用方式,需要的知识点也比较多。一般这个阶段包括两种方式,一种是手工测试,一种是工具测试。
手工测试
手工测试是通过客户端或服务器访问目标服务,手工向目标程序发送特殊的数据,包括有效的和无效的输入,观察目标的状态、对各种输入的反应,根据结果来发现问题的漏洞检测技术。
工具测试
网络上有很多好用的免费利用工具,比如针对sql注入的sqlmap、针对软件漏洞的matesploit等。
渗透测试的步骤有哪些
渗透测试怎么做,一共分为八个步骤,具体操作如下:
步骤一:明确目标
1、确定范围:规划测试目标的范围,以至于不会出现越界的情况。
2、确定规则:明确说明渗透测试的程度、时间等。
3、确定需求:渗透测试的方向是web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?还是其他,以免出现越界测试。
步骤二:信息收集
1、基础信息:IP、网段、域名、端口
2、系统信息:操作系统版本
3、应用信息:各端口的应用,例如web应用、邮件应用等等
4、版本信息:所有探测到的东西的版本
5、人员信息:域名注册人员信息,web应用中网站发帖人的id、管理员姓名等
6、防护信息:试着看能否探测到防护的设备,像有没有CDN、waf等
步骤三:漏洞探索
利用上一步中列出的各种系统、应用等等,使用响应的漏洞
方法:
1、漏扫、awvs、IBM appscan等
2、结合漏洞去exploit-db等位置找利用
3、在网上寻找验证poc
步骤四:漏洞验证
将上述中发现有可能可以成功利用的全部漏洞都验证一遍,结合实际情况搭建模拟环境进行实验,成功后再引用于目标。
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开的资源进行手工验证
试验验证:自己搭建模拟环境进行验证
登录猜解:可以尝试一下登录口的账号密码的发现
业务逻辑漏洞:如发现业务逻辑漏洞,进行验证
步骤五:信息分析
为下一步实施渗透做准备
1、精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
2、绕过防御机制:是否有防火墙等设备,如何绕过
3、定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
4、绕过检测机制:是否有检测机制,流量监控,杀毒软件 ,恶意代码检测等(免杀)
5、攻击代码:经过试验得来的代码,包括不限于XSS代码,SQL注入语句等
步骤六:获取所需
1、实施攻击,根据前几步的结果,进行攻击
2、获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
3、进一步渗透:内网入侵,敏感目标
4、持续性存在:一般我们对客户做渗透不需要,但真实的环境中,我们会做rookit、后门,添加管理账号。驻扎手法。
5、清理痕迹:清理相关日志(访问,操作),上传文件等
步骤七:信息整理
1、整理渗透工具:整理渗透过程中用到的代码,poc、exp等
2、整理收集信息:整理渗透过程中收集到的一切信息
3、整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱的位置信息
(为了形成报告,形成测试结果使用)
步骤八:形成报告
1、按需整理:按照之前第一步跟客户确定好的范围和需求来整理资料,并将资料形成报告
2、补充介绍:要对漏洞成因、验证过程和带来的危害进行分析
3、修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
有没有好用的漏洞扫描工具?
1、OpenVAS漏洞扫描工具
OpenVAS漏洞扫描器是一种漏洞分析工具,由于其全面的特性,IT部门可以使用它来扫描服务器和网络设备。
这些扫描器将通过扫描现有设施中的开放端口、错误配置和漏洞来查找IP地址并检查任何开放服务。扫描完成后,将自动生成报告并以电子邮件形式发送,以供进一步研究和更正。
OpenVAS也可以从外部服务器进行操作,从黑客的角度出发,从而确定暴露的端口或服务并及时进行处理。如果您已经拥有一个内部事件响应或检测系统,则OpenVAS将帮助您使用网络渗透测试工具和整个警报来改进网络监控。
2、Nessus漏洞扫描工具
Tenable的Nessus
Professional是一款面向安全专业人士的工具,负责修补程序、软件问题、恶意软件和广告软件删除工具,以及各种操作系统和应用程序的错误配置。
Nessus提供了一个主动的安全程序,在黑客利用漏洞入侵网络之前及时识别漏洞,同时还处理远程代码执行漏洞。
它关心大多数网络设备,包含虚拟、物理和云基础架构。Tenable还被认为是Gartner Peer
Insights在2003年3月之前进行危险性评估的首选方案。
3、Nexpose community
Nexpose community是由Rapid7开发的漏洞扫描工具,它是涵盖了大多数网络检查的开源解决方案。
这个解决方案的多功能性是IT管理员的一个优势,它可以被整合到一个Metaspoit框架中,能够在任何新设备访问网络时检测和扫描设备。
它还可以监控真实世界中的漏洞暴露,最重要的是,它可以进行相应的修复。此外,漏洞扫描程序还可以对威胁进行风险评分,范围在1-1000之间,从而为安全专家在漏洞被利用之前修复漏洞提供了便利。Nexpose目前可免费试用一年。
4、Nikto
Nikto是另一个免费的在线漏洞扫描工具,如Nexpose community。
Nikto可帮助您了解服务器功能,检查其版本,在网络服务器上进行测试以识别威胁和恶意软件的存在,并扫描不同的协议,如https、httpd、http等。
还有助于在短时间内扫描服务器的多个端口,Nikto因其效率和服务器强化功能而受到青睐。
5、Retina
Retina漏洞扫描工具是基于Web的开源软件,从中心位置负责漏洞管理。它的功能包括修补、合规性、配置和报告。
负责数据库、工作站、服务器分析和Web应用程序,完全支持VCenter集成和应用程序扫描虚拟环境;它负责多个平台,提供完整的跨平台漏洞评估和安全性。