渗透测试的本质即信息收集
针对一个目标进行渗透,首先就是需要对目标的资产进行信息收集。
收集到的脆弱资产的数量,是渗透测试的关键。
本文主要是介绍信息收集的方法以及对一些常见的工具进行介绍
Step 1 被动信息收集
思路介绍
所谓被动信息搜集 ,通俗来说就是在目标检查不到异常行为的情况下进行资产信息收集。
一种常用的收集思路如下(可能会涉及到一些主动信息收集) :
- 域名信息 -> 用于IP资产获取
- 目标公司及子公司信息 ( 当然如果目标单一直接进行域名收集即可)
- 通过公司信息查询出域名
- 子域名枚举
- 将收集到的域名大致过一遍,后台、OA重点记录,同时将域名转换成IP并记录。
- 资产关键字 -> 提取关键字、通过关键字进行FOFA、对FOFA出的资产 进一步收集 (端口、C段、同一关键字资产)
- 目标名字 (如 “XXX公司”)
- FOFA 关键字 (title=”xxx公司” 、title=”XXX” 、body=”xxx公司” 等)
- 对筛选出来的资产进行进一步的IP端口探测、C段探测 、当然此时已经获取到了新的关键字(如 XXXOA管理系统) ,可对该关键字进一步FOFA探测
- 筛选记录后期用得到的资产(后台登录 、可能带漏洞的CMS 、中间件 、SSH等)
- APP、小程序 、微信公众号
- 对目标APP使用工具进行逆向,提取源码中的敏感信息(数据库信息、 接口信息等)
- 对目标APP、公众号服务进行抓包、 记录可能访问到的目标资产
- 小程序( 待补充 ,还没测过,思路应该差不多)
- 信息泄露 -> 根据前面收集到的资产,使用google 、github 等进行信息收集 、可能收集到的资产: 目标站点源码、账号密码、相关人员个人信息等。
- github 对收集到的目标资产关键字 、域名等进行搜索。
- google 目标公司关键字 + 后台\密码\管理系统\pdf\成员名单 等关键字组合
- 人工探测
- 对目标网页进行访问,如有的主页最下面可能存在 后台管理跳转链接 ,查看源码有明显的CMS标识、用户控制的输入可能存在SQL注入、XSS等…
- 指纹识别-> 对收集的资产指纹进行识别。
当然 , 被动信息收集和主动信息收集并不一定是固定顺序的,当收集到很有可能有漏洞的资产时,直接进一步获取权限也是一个不错的决定。
上面的资产收集并没有太多的顺序限制 ,很可能通过一个资产扩展出其他资产 ,而这个资产又可以扩展出其他资产(套娃),关键在于
- 分辨出哪些是目标的资产,不要在错误的资产上浪费时间。
- 对收集到的资产进行明确的记录、分类。
工具整理
- 公司信息收集( 可获取到 : 微信公众号 、APP、域名IP信息、子公司信息)
- 企查查
- 天眼查
- (注: 万能的淘宝,会员一元一天,个人比较推荐企查查)
- 域名信息收集
- Subdomain(个人常用) https://github.com/lijiejie/subDomainsBrute
- FOFA也可以进行域名收集(host关键字)
- OneForAll 、Sublist3r 等工具 , 可自行测试使用(当然最好多种工具结合,收集到的域名更全面)
- 注: 探测域名存活, 有些过期的域名要舍去。
- 空间测绘
- FOFA
- shodan
- 360Quake
- 空间测绘算是比较重要的资产收集工具了,通过它们可以通过关键字获取资产、获取域名信息、获取IP的C段、端口信息 等。
- chrome插件
- wappalyzer
- shodan
- 一个可以改请求头的插件( 有的资产可能需要手机访问 )
- 指纹识别
- wappalyzer
- whatweb
- 云悉
- APP
- apktool 逆向APK程序 (推荐 santoku虚拟机 ,集成了许多APP分析的工具)。
- burpsuite 抓包。
- HTTPCanary 手机上的抓包程序。
总结
通过这一阶段的信息收集我们可以得到以下资产
- 获取到一批 IP资产。
- 获取到一批 可能有漏洞的(弱口令后台、CMS、OA、中间件等)的资产。
- 获取到一批 敏感信息(源码、账号、成员信息)。
Step 2 主动信息收集
思路介绍
主动信息收集, 一般需要对目标进行敏感操作 ,如漏洞验证 、目录扫描、端口扫描、漏洞扫描等。
- 漏洞验证
- 后台弱口令爆破。
- CMS漏洞、中间件漏洞、OA漏洞。
- SQL注入漏洞、XXE漏洞、SSRF漏洞、RCE漏洞。
- 目录扫描
- SVN、DS_Store、git 等敏感信息泄露。
- 后台目录、编辑器目录…
- 端口扫描
- 探测其他端口的HTTP服务
- 探测高端口服务
- 探测redis 、mysql 、RDP、ssh 等存在漏洞或可暴力猜解口令的服务。
- 漏洞扫描
- 借助工具进行漏洞探测。
工具整理
- 漏洞验证
- 手工验证( = = )。
- Burpsuite 进行弱口令爆破、抓包分析。
- GITHUB搜索相关工具验证 、漏洞文库POC验证 …
- 目录扫描
- dirsearch
- windows下推荐御剑扫描器
- 当然,目录扫描的关键在于一个强大的字典https://github.com/TheKingOfDuck/fuzzDicts
- 端口扫描
- nmap
- masscan
- 漏洞扫描
- awvs
- nessus
- goby (可以对一些资产、C段进行快速漏洞验证)
- xray
- vulmap
- ……还有很多、
总结
- 说到底,被动信息收集和主动信息收集很多时候是交叉进行的,并没有明显的先后之分,要根据经验总结出自己的一套体系。
- 前期的信息收集决定后期的成果大小,正所谓磨刀不误砍柴工,要有足够的耐心,要细心。
- 不得不说,很多命令有很多参数,用时查找有些麻烦,可以考虑编写脚本将其集合到一起,进行自动化的信息收集。
- WAF、防火墙很烦的。
- 以上只是个人积累的经验,肯定有许多疏漏的地方,这些就是需要通过实战不断的总结补充了…
参考文章
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1944270374@qq.com