安全矩阵

 找回密码
 立即注册
搜索
查看: 813|回复: 0

渗透测试之信息收集

[复制链接]

102

主题

102

帖子

330

积分

中级会员

Rank: 3Rank: 3

积分
330
发表于 2024-3-24 15:59:32 | 显示全部楼层 |阅读模式
本帖最后由 jiangmingzi 于 2024-3-24 15:59 编辑

miniboom 刨洞安全团队 2024-02-27 12:12 广东

信息收集决定了你的测试范围,收集需要广度,在兼顾广度的基础上,也要精细化,否则会面临大量资产而不知道从哪里下手,所以是既要广泛收集,也要精细化梳理目标资产。

不过一开始就要做到同时具备广度和精细化是不太现实的事情,至少说,是不理性的选择,因为要这么做就说明需要做大量的信息收集内容,花费很长时间但没有漏洞产出,不仅容易错过垂手可得的成果,而且整个过程会很无聊。

当然,如果你可以让信息收集做到自动化,是可以一步到位的,不过那是另外一个话题,今天我们只讨论信息收集的流程和思路。

我的方法论就是循序渐进,先优先照顾广度,再分轮数依次精细化,力求每一轮信息收集都会有所收获,如果没有,下一轮将会更加精细。

废话结束,让我们进入正式的环节。

子域名收集
市面上有很多子域名的工具,我首推 subfinder。将主域名列表放在 targets.txt 里,结果将保存在 subs_results.txt
./subfinder -dL targets.txt -all -o subs_results.txt
我一般喜欢继续使用其他工具来继续做子域名作为 subfinder 的补充,比如 oneforall
思考
在使用工具跑过之后,我们得到了一个有大量子域名的文件 subs_results.txt,接下来做什么呢?直接查看这些子域名是否开启了 80 和 443 端口吗?不是,因为经常会有其他端口伴随着域名,比如 xxx.com:8080,xxx.com:8089,也会有一些重要的系统运行在上边,所以如果我不想漏掉每个子域名下的系统资产,下一步探测端口是一个不错的选择。
那么接下来还有两个问题,我接下来需要用什么工具来做端口扫描,需要做全量端口的扫描吗?
我的回答是,使用 kscan,暂时不做全量端口扫描,可以先选择 top 1000 端口。如果这一轮信息收集没有成果,我们下一轮将进行全量端口扫描。
端口指纹
使用 kscan 的好处,是它集成了很多优秀的工具,不仅可以扫描端口,还可以进行指纹识别,抓取 title 信息等。
./kscan -t subs_results.txt --top 1000 -oC kscan_port_results.csv
这样,我们就得到了 kscan_port_results.csv 这样的列表,里边包含了端口,url,协议等信息。
很好,这一轮下来基本上可以发现一些常规的端口的信息,会看到包括 ssh、ftp、smtp 还有 mysql 等等端口信息。
思考
现在我们手上已经有域名和部分 ip 的开放端口,以及端口指纹,是 http、ssh、ftp、或者是 smtp、mysql 等等。
数据库端口、ssh、ftp 等等我们可以采取爆破的方式,如果是高危端口 445 之类的,我们可以使用 ms0708 等等进行渗透测试,不过这里我们优先处理 http、https 这类协议,因为它们往往部署了接口、web 等系统,我们也更容易渗透出成果。
所以我们可以在 xlsx 表中,在 service 那一列中筛选出 http、https 这些内容,拷贝出来准备接下来的网页指纹识别,放在 http_subdoamins.txt 当中。
网页指纹识别
现在,我们已经有了 http_subdoamins.txt 里的 http://subdomain:port or https://subdomain:port 形式的 URL,所以我们接下来回答这些问题。
  • 这些 URL 它们的 summary 信息是什么,采用哪种 cms 开发,title 是什么,状态码是多少,采用了哪种服务器,是否有 waf
  • 哪些 url 是我们接下来要重点关注的,哪些是优先级别比较高的

因为有 EHole,回答以上问题并不复杂。
./ehole finger -l http_subdoamins.txt -o http_subdoamins_finger.xlsx
在这里,ehole 会帮助我们回答以上问题,不仅可以识别指纹,url,waf 同时也可以列出需要重点关注的系统。
发现更多URL
现在,我们已经有了 http://subdomain/, http://subdomain:port/, https://subdomain:port/ 形式 的URL,接下来我们需要发现更多的 url,可以通过爬虫,目录爆破等方式来做,不过好在有 rad 这个工具,可以很好的帮助我们爬取一个网站的 URL,同时也会给我们发现一些接口内容信息。
./rad --url-file http_subdomains.txt --text-output http_subdomains_urls.txt
然后我们的发现了大量的 URL,有的是接口的 url,有待后续发现参数进行渗透测试,有的可能是敏感信息,比如 .json 等等,总之,现在我们已经有了不同子域名+端口+ path 路径的 URL
URL截图
经过以上操作,我们已经有了大量的 URL,我们需要查看哪些是管理后台登陆界面类,哪些是敏感信息,哪些是静态页面等等,所以我们需要对以上 URL 进行截图,这里我使用 gowitness 来操作
./gowitness file -f ../findjs_url/http_subdomains_urls_without_http.txt -t 200
这样经过 gowitness 截图之后,再启动
./gowitness server
访问 127.0.0.1:7171 就可以看到所有 URL 的截图界面,根据界面和个人的渗透经验去进行渗透。
思考
在这一步,我们已经获得很多 web 页面,有的是 403,有的是 200,有的 200 界面是管理后台,有的只是展示静态页面,有的是 json 文件下载,有的是接口返回信息等等。
到这一步,我们基本上可以进行第一轮的渗透测试了,可以挂上被动扫描器对管理后台进行弱口令检查,SQL 注入尝试,也可以进行逻辑测试,接下来怎么做,完全是基本上属于个人渗透测试经验而采取不同的方式来测试,暂时不提。
不过值得注意的是,其实还有更加精细化和更广范围的信息,比如 js 发现敏感信息,发现域名真实 ip,ip 的 C段 等等进一步扩大和精细化工作我们还没做,不过就像前面我们说的,这只是第一轮的简单信息收集,我们可以先经过一轮渗透测试,看看有没有成果,如果没有成果,也给了我们进一步细化信息收集工作的理由,如果有成果,那更有动力提交漏洞,给到我们激励。
本文作者:miniboom原文地址:https://www.miniboom.cn/post/web3-information-gather/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-27 22:35 , Processed in 0.015461 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表