渗透测试:以安全为基本原则,通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性,以保护系统安全为最终目标。
一般渗透测试流程:
明确目标 --> 信息搜集 --> 漏洞探测 --> 漏洞验证 --> 信息分析 --> 获取所需 --> 信息整理 --> 形成报告
1. 明确目标:
(1)确定范围: 测试目标的范围、IP、域名、内外网、测试账户
(2)确定规则:渗透的程度和时间、能否修改上传、提权等
(3)确定需求:Web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞等
2. 信息收集:
(1)方式:主动扫描,开放搜索等。
(2)开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。
(3)基础信息:IP、网段、域名、端口。
(4)应用信息:各端口的应用。例如web应用、邮件应用、等等。
(5)系统信息:操作系统版本
(6)版本信息:所有这些探测到的东西的版本。
(7)服务信息:中间件的各类信息,插件信息。
(8)人员信息:域名注册人员信息,web应用中发帖人的id,管理员姓名等。
(9)防护信息:试着看能否探测到防护设备。
3. 漏洞探测:
方法:
(1) 漏扫,awvs,IBM appscan等。
(2) 结合漏洞去exploit-db等位置找利用。
(3) 在网上寻找验证poc。
内容:
(1)系统漏洞:系统没有及时打补丁
(2)WebSever漏洞:WebSever配置问题
(3)Web应用漏洞:Web应用开发问题
(4)其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
(5)通信安全:明文传输,token在cookie中传送等。
4. 漏洞验证:
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
- 自动化验证:结合自动化扫描工具提供的结果
- 手工验证,根据公开资源进行验证
- 试验验证:自己搭建模拟环境进行验证
- 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
- 业务漏洞验证:如发现业务漏洞,要进行验证
公开资源的利用:
- exploit-db/wooyun/
- google hacking
- 渗透代码网站
- 通用、缺省口令
- 厂商的漏洞警告等
5.信息分析:
为下一步实施渗透做准备
- 精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
- 绕过防御机制:是否有防火墙等设备,如何绕过
- 定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
- 绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
- 攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
6. 获取所需:
实施攻击:根据前几步的结果,进行攻击
- 获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
- 进一步渗透:内网入侵,敏感目标
- 持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
- 清理痕迹:清理相关日志(访问,操作),上传文件等
7. 信息整理
- 整理渗透工具:整理渗透过程中用到的代码,poc,exp等
- 整理收集信息:整理渗透过程中收集到的一切信息
- 整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
8. 形成报告
- 按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
- 补充介绍:要对漏洞成因,验证过程和带来危害进行分析
- 修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
流程图:
注:转载自https://www.cnblogs.com/iceliu/p/