无国界WEB渗透测试流程详解
无国界 2019-06-27
渗透测试是指渗透人员通过模拟恶意黑客的攻击方法,从内网、从外网等位置利用各种手段对某个特定网络进行测试,发现和挖掘系统中存在的漏洞或技术缺陷,然后输出渗透测试报告,并提交给客户。这样,客户便可以根据渗透人员提供的渗透测试报告,清晰知晓其网络系统中存在的安全隐患和问题。
一般情况,
渗透测试服务的大致流程分为六个步骤:
1.明确目标
2.信息收集
3.漏洞探测
4.漏洞验证
5.漏洞攻击:利用漏洞,获取数据,后渗透测试
6.信息整理及渗透测试报告输出
第一步:明确目标
1)确定范围:测试的范围,如:IP、域名、内外网、整站or部分模块
2)确定规则:能渗透到什么程度(发现漏洞为止or继续利用漏洞)、时间限制、能否修改上传、能否提权...
目标系统介绍、重点保护对象及特性。
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
接入方式?外网和内网?
3)确定需求:web应用的漏洞?业务逻辑漏洞?人员权限管理漏洞?
4)分析渗透测试过程中可能产生的风险,如大量测试数据的处理、影响正常业务开展、服务器发生异常的应急、数据备份和恢复、测试人力及物力等成本。
5)测试方书写实施方案并提交给客户或领导进行审核。在审核完成后,从客户或领导处获取对测试方进行书面委托授权书,授权测试方进行渗透测试。
第二步:信息收集
在信息收集阶段,我们需要尽量多的收集关于目标web应用的各种信息,比如:脚本语言的类型、服务器的类型、目录的结构、使用的开源软件、数据库类型、所有链接页面,用到的框架等。
方式:主动扫描;开放搜索
开放搜索:利用搜索引擎获得后台、未授权页面、敏感url
基础信息:IP,网段,域名,端口
系统信息:操作系统版本
应用信息:各端口的应用,例如web应用,邮件应用等
版本信息:所有探测到的版本
服务信息:服务器类型、版本
人员信息:域名注册人员信息,web应用中网站发帖人的id,管理员姓名等
防护信息:试测能否探测到防护设备
第三步:漏洞探测
在收集到足够多的信息之后,便开始对WEB应用进行漏洞探测了,探测网站是否存在一些常见的Web漏洞。
漏洞探测方法:
1)漏洞扫描工具:AWVS、AppScan、Owasp-Zap、Nessus等
2)结合漏洞去exploit-db等位置找利用
3)在网上寻找验证POC
内容:
系统漏洞:系统没有及时打补丁
Websever漏洞:Websever配置问题
Web应用漏洞:Web应用开发问题
其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
通信安全:明文传输,token在cookie中传送等
常见漏洞,比如:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE漏洞
SSRF服务端请求伪造漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录浏览漏洞和任意文件读取/下载漏洞
struts2漏洞
JAVA反序列化漏洞
第四步:漏洞验证
将上一步中发现的可能成功被利用的漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验,成功后再应用于目标中。
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开资源进行验证
试验验证:自己搭建模拟环境进行验证
登录猜解:有时可以尝试猜解一下登陆口的账号密码等信息
业务漏洞验证:如发现业务漏洞,要进行验证
公开资源的利用
exploit-db/wooyun/
渗透代码网站
通用、缺省口令
厂商的漏洞警告等
第五步:漏洞攻击:利用漏洞,获取数据,后渗透测试
进一步渗透:内网入侵,敏感目标
持续性存在:一般对客户做渗透不需要rookit,后门,添加管理账号,驻扎手法等
清理痕迹:清理相关日志(访问,操作),上传文件等
第六步:信息整理及渗透测试报告输出
在完成了渗透测试之后,我们就需要整理资料,对这次渗透测试撰写渗透测试报告了。需要对漏洞成因,验证过程和带来危害进行分析。明确写出哪里存在漏洞,以及漏洞修补的方法,以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击!
以上内容由四川无国界(www.uvsec.com) 整理编辑——专业从事网络信息安全培训与IT风险管理咨询服务。