渗透测试的步骤
1、明确目标
范围,规则,需求。
(1)确定需要渗透资产范围
- 需要测试的域名、ip、端口、路径(模块)
- 有时候,客户并不明确指出,而是相关即可。这时候,需要通过信息收集完成任务
(2)确定渗透的相关规则
- 对测试手段约束,禁止工具扫描,禁止暴力破解,禁止社工,禁止提权及危险的操作,禁止ddos及其他干扰正常业务的测试
- 对漏洞类型的约束,比如不收取xss,不收取无影响的csrf,不收取会话固定等
- 以及从各维度评价漏洞级别及结算
(3)确定客户需要的渗透后的效果
- 渗透报告的格式
- 是否进行清除痕迹
- 是否进行漏洞修复
2、信息收集
信息收集阶段主要是收集一些基础信息,系统信息,应用信息,版本信息,服务信息,人员信息以及相关防护信息。信息收集大多是工具加手工进行收集信息,工具如 nmap,相关终端命令,浏览器插件,在线工具等。
信息收集 - 挖洞404 - 博客园 (cnblogs.com)
3、漏洞探测(挖掘)
主要是探测(挖掘)系统漏洞,web 服务器漏洞,web 应用漏洞以及其他端口服务漏洞,如 telnet,ssh,vnc,远程桌面连接服务(3389)等。
一般来说,优先进行任务量小、自动化程度高、危害性大的系统漏洞、端口及服务漏洞、中间件漏洞。
然后,按照业务模块对web程序进行测试。
4、漏洞验证(利用)
漏洞验证主要是利用探测到的漏洞进行攻击,方法主要有自动化验证(msf),手工验证,业务漏洞验证,公开资源的验证等。总的来说就是工具加手工,为了方便,可以将自己渗透常使用的工具进行封装为工具包。
5、提升权限
提升权限主要是在当前用户权限不是管理员的时候需要进行提升权限,提升权限可以是提升系统权限,web 应用权限或是数据库权限等。
6、清除痕迹
清楚痕迹主要是清除渗透过程中操作的一些痕迹,如添加的测试账号,上传的测试文件等。
7、事后信息分析
主要是对整个渗透过程进行信息分析与整理,分析脆弱环节,技术防护情况以及管理方面的情况进行一个现状分析以及提出相关建议。
8、编写渗透测试报告
根据渗透测试具体情况编写渗透测试报告,渗透测试报告必须简洁明了,说清楚渗透清单(范围),攻击路径,渗透成果,以及详细的漏洞详情(相关描述、漏洞危害等)及可行的修复建议,最后对整改渗透情况进行简单的总结和分析,说清楚目前资产的一个状况是什么样的,应该从哪些方面进行加强和提升。