一直忙着做安服项目,好久没发稿了,今天特意抽出时间写篇文章,希望能帮助到大家。作为一直在乙方做渗透测试的攻城狮,入行之前在freebuf上看过类似渗透测试流程的文章,当然对我的帮助不少,非常感谢。但是现如今再次翻看这些文章,发现好多文章不是以给甲方做渗透的视角下写的,大家应该都知道正规的渗透测试需要授权好多细节,尤其是在现如今这种法律高压下,细节就显得尤为重要了。下面我抛转引玉,大家多提提意见,共同进步。
众所周知,Web应用的渗透测试可分3个阶段:信息搜集、漏洞发现、漏洞利用,但是在给甲方做渗透时就需细化流程。
1、明确目标
1.1确定范围
如:IP、域名、内外网、整站、部分模块……
1.2确定规则
能渗透到什么程度,是发现漏洞即可还是需要利用该漏洞、时间限制、能否修改上传、能否提权……
目标系统介绍、重点保护对象及特性
是否允许破坏数据?
是否允许阻断业务正常运行
测试之前是否应当知会甲方安全部门,IP是否需要加白
接入方式?外网和内网?
测试是发现问题即可,还是尽可能发现更多问题
测试过程是否需要考虑社会工程手段
测试过程中要求完全仿真,除了破坏操作需要报备,其余手段不受限制还是如何
1.3确定需求
上线前的web应用测试、业务逻辑漏洞测试、人员权限管理漏洞测试
2、分析风险,获得授权(重点讨论)
需分析渗透过程可能产生的风险:测试是否对系统产生影响、带宽占用、系统资源消耗、爆破测试行为或其他可能触发动态感知系统或其他告警机制、影响正常业务开展、服务器发生异常的应急、数据备份和恢复、测试人力物力成本……
由乙方书写实施方案初稿提交给甲方或公司内部审核,审核通过后,测试人必须拿到正规的乙方书面委托授权书才能开工,代理商第三方授权不具备法律效力,若是第三方授权,必须拿到甲方给中间商的授权,且注明中间商有转让授权的权限,这样中间商下发的授权测试才是合法的。需要提前跟甲方确认是否能提供测试账号,测试账号最好覆盖各个权限级别,金融行业或者交易类的测试账号需要账户中有一定的余额……
3、信息搜集
信息搜集的方法很多,不详细阐述,大概列举如下:
方 式:主动扫描+开放搜索
基础信息:IP、网段、域名、端口……
系统信息:操作系统版本……
应用信息:各端口应用、例如web应用、邮件应用、脚本语言类型、目录结构、数据库类型、web框架……
版本信息:所有探测到的版本
服务信息: 服务器类型、版本
人员信息: 域名注册人信息,web应用中网站发帖人的id,管理员姓名等
防护信息:尝试探测防护设备
4、漏洞探测
汇总信息搜集到的信息,使用与之匹配的漏洞检测策略
方法:
1.漏扫:AWVS、AppScan、Nessus……
2.漏扫结果去exploit-db等位置找利用
3.在网上寻找验证POC
内容:
系统漏洞:系统没能及时更新补丁
Webserver漏洞:webserver配置问题……
Web应用漏洞:Web应用开发问题、错误页面未定义、后台暴露……
其他端口服务器漏洞:诸如21/8080(st2)/7001/22/3389……
通信安全:明文传输、token在cookie中传送……
5、漏洞验证
将4>阶段发现的洞,通过自己经验分析可能成功利用的全部漏洞都验证一遍,结合实施环境,搭建模拟环境进行试验,利用成功后再实施在目标系统中
自动化验证:结合自动化扫描工具发现的结果
手工验证:利用公开资源进行验证
试验验证:自己搭建模拟环境进行验证
登录猜测:尝试猜测登录、万能密码、注入
业务漏洞验证:发现后该漏洞,进行验证
公开资源利用:exploit-db/wooyun/、渗透代码网站、通用、缺省口令、厂商的漏洞告警……
6、信息分析
实施渗透的准备环节
精准攻击:利用4>探测到的EXP,进行精准攻击
绕过防御机制:检测是否有WAF等,绕过策略筹划
定制攻击路径:最佳攻击路径、主要根据薄弱入口,高内网权限位置,最终目标等
绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码(免杀)检测
攻击代码:试验得来的代码,包括不限于xss代码,sql注入语句……
7、利用漏洞
实施攻击:根据前几步的结果,实施精准攻击
获取内部信息:基础设施(网络连接、vpn、路由、网络拓扑、内网IT资产……)
横向渗透:内网入侵、敏感目标
持续性存在:一般情况,甲方不需要,rookit、后门、添加管理员账号、驻扎手法等
清除痕迹:清理渗透相关日志(访问、操作),漏扫,上传文件等
8、信息整理
整理渗透工具:整理渗透中使用的代码、POC、EXP等。
整理收集信息:整个渗透过程中收集的一切信息。
整理漏洞信息:整个渗透过程中利用成功的所有漏洞,各种脆弱位置信息,为书写渗透报告做准备。
9、形成报告
按需整理:按照之前第一步跟甲方确认的范围、需求来整理资料,技术细节尽可能的详细,形成报告进行交付。
补充介绍:需对漏洞成因,验证过程中带来的危害进行分析
修补建议:给开发或运维人员提出合理高效安全的解决方案
大家应该能看到我写的这个流程,涉及到信息的出现了3处,原因我不多说,做渗透的都知道,对信息的搜集与处理是渗透测试的本质,希望大家在做任何事能够透过现象抓本质,这样才能事半功倍。