1、明确目标
首先要确定好测试的需求,如测试针对的是业务逻辑漏洞、还是人员管理权限漏洞,然后还要确定客户要求渗透测试的范围,最好有确定渗透测试规则。
2、收集信息
这个阶段要尽量多的收集关于项目的各种信息,比如,对于一个Web应用程序,要收集脚本类型、服务器类型、数据库类型以及项目所用到的框架、开源软件等。
通常有两种信息收集方式:
3、扫描漏洞
这一阶段,综合分析收集到的信息,借助扫描工具对目标程序进行扫描,查找存在的安全漏洞。
4、验证漏洞
在扫描漏洞阶段,测试人员会得到很多关于目标程序的安全漏洞,但这些漏洞有误报,需要测试人员结合实际情况,搭建模拟测试环境对这些安全漏洞进行验证。被确认的安全漏洞才能被利用执行攻击。
5、分析信息
经过验证的安全漏洞就可以被利用起来向目标程序发起攻击,但是不同的安全漏洞,攻击机制并不相同,针对不同的安全漏洞需要进一步分析,包括安全漏洞原理、可利用的工具、目标程序检测机制、攻击是否可以绕过防火墙等,制订一个详细精密的攻击计划,这样才能保证测试顺利执行。
6、渗透攻击
渗透攻击就是对目标程序发起真正的攻击,达到测试目的。一般渗透测试是一次性测试,攻击完成之后要执行清理工作,删除系统日志、程序日志等,擦除进人系统的痕迹。
7、整理信息
渗透攻击完成之后,整理攻击所获的信息,为后面编写测试报告提供依据。
8、编写测试报告
测试完成之后要编写测试报告,阐述项目安全测试目标、信息收集方式、漏洞扫描工具以及漏洞情况、攻击计划、实际攻击结果、测试过程中遇到的问题等。此外,还要对目标程序存在的漏洞进行分析,提供安全有效的解决办法。