渗透测试流程(粗略)
粗略
明确目标->信息收集->漏洞探测->漏洞验证->信息分析->获取所需->信息整理->形成报告
1.明确目标
确定范围:测试目标的范围、ip、域名、内外网、测试账户。
确定规则:能渗透到什么程度,所需要的时间、能否修改上传、能否提权、等等。
确定需求:web应用的漏洞、业务逻辑漏洞、人员权限管理漏洞、等等。
信息收集、
方式:主动扫描,开放搜索等。
分类:资产收集、敏感信息收集。
渗透测试的本质就是信息收集,收集到的信息越多,发现漏洞的概率越大,这些信息被称为资产。
域名
域名、子域名 爱企查、oneforall、 https://securitytrails.com/
SSL/TLS证书信息 Censys
DNS历史解析 https://community.riskiq.com
区域传送 nslookup(server、ls) dig(+multi AXFR)
文件泄露 crossdomain.xml(跨域策略文件cdx)、 robots.txt
旁站
其他
IP
域名查ip
https://www.cnblogs.com/qiudabai/p/9763739.html(11种绕过CDN查找真实IP方法
)
C段、B段、等相关ip段
其他
域名和ip
流量中提取(抓包、Packer-Fuzzer、Findjs)
逆向提取(jeb-pro-3.19.1.202005071620、wxappUnpacker、dnSpy)
其他
网页内容特征
fofa、zoomeye、shodan、Censys、google、baidu
body=“”&&title=“” 80.http.get.body: inurl:
--开放搜索:利用搜索引擎获得:后台、未授权页面、敏感url、等等。
WHOIS、备案信息
目录扫描:特殊框架、中间件、插件的目录,后台,查询,上传。版本信息。
端口扫描:各端口的应用、留意敏感端口、识别操作系统。
防护信息:试着看能否探测到防护设备。
业务相关泄露:github泄露、网盘泄露、QQ群文件泄露、开发讨论组。
社工信息:
目标全名、介绍、招股书、所在地、联系方式、邮箱、电话、github
目标负责人、法人、管理员、员工姓名、所在地、联系方式、邮箱、电话
客户端应用windows、android、ios、mac、公众号、小程序
QQ、微博、抖音等社交平台。
其他
3.漏洞探测
利用上一步中列出的各种系统,应用等使用相应的漏洞。
方法:
(1) 手工。
(2) 漏扫:awvs、nessus、appscan、xray等。
(3) 在网上寻找验证poc。
内容:
l 系统漏洞:系统没有及时打补丁
l WebSever漏洞:WebSever配置问题
l Web应用漏洞:Web应用开发问题
l 其它端口服务漏洞:各种21/8080(st2)/7001/22/3389
l 通信安全:明文传输,token在cookie中传送等。
4.漏洞验证
将上一步中发现的有可能可以成功利用的全部漏洞都验证一遍。结合实际情况,搭建模拟环境进行试验。成功后再应用于目标中。
l 自动化验证:结合自动化扫描工具提供的结果
l 手工验证,根据公开资源进行验证
l 试验验证:自己搭建模拟环境进行验证
l 登陆猜解:有时可以尝试猜解一下登陆口的账号密码等信息
l 业务漏洞验证:如发现业务漏洞,要进行验证。
公开资源的利用
l exploit-db/
l 技术文章
l google hacking
l 渗透代码网站
l 通用、缺省口令
l 厂商的漏洞警告等等。
5.信息分析
为下一步实施渗透做准备。
l 精准打击:准备好上一步探测到的漏洞的exp,用来精准打击
l 绕过防御机制:是否有防火墙等设备,如何绕过
l 定制攻击路径:最佳工具路径,根据薄弱入口,高内网权限位置,最终目标
l 绕过检测机制:是否有检测机制,流量监控,杀毒软件,恶意代码检测等(免杀)
l 攻击代码:经过试验得来的代码,包括不限于xss代码,sql注入语句等
6.获取所需
实施攻击:根据前几步的结果,进行攻击
l 获取内部信息:基础设施(网络连接,vpn,路由,拓扑等)
l 进一步渗透:内网入侵,敏感目标
l 持续性存在:一般我们对客户做渗透不需要。rookit,后门,添加管理账号,驻扎手法等
l 清理痕迹:清理相关日志(访问,操作),上传文件等
7.信息整理
l 整理渗透工具:整理渗透过程中用到的代码,poc,exp等
l 整理收集信息:整理渗透过程中收集到的一切信息
l 整理漏洞信息:整理渗透过程中遇到的各种漏洞,各种脆弱位置信息
8.形成报告
l 按需整理:按照之前第一步跟客户确定好的范围,需求来整理资料,并将资料形成报告
l 补充介绍:要对漏洞成因,验证过程和带来危害进行分析
l 修补建议:当然要对所有产生的问题提出合理高效安全的解决办法。