渗透测试工程师视角下的渗透测试流程

发表于:2020-1-23 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:星空111    来源:FreeBuf

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

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号