渗透测试工程师视角下的渗透测试流程
2020-01-19 14:00:59 Author: www.freebuf.com(查看原文) 阅读量:218 收藏

一直忙着做安服项目,好久没发稿了,今天特意抽出时间写篇文章,希望能帮助到大家。作为一直在乙方做渗透测试的攻城狮,入行之前在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处,原因我不多说,做渗透的都知道,对信息的搜集与处理是渗透测试的本质,希望大家在做任何事能够透过现象抓本质,这样才能事半功倍。

*本文原创作者:星空111,本文属于FreeBuf原创奖励计划,未经许可禁止转载


文章来源: https://www.freebuf.com/articles/network/224495.html
如有侵权请联系:admin#unsafe.sh