本期嘉宾:3stoneBrother,京东集团攻防与实验室安全工程师,业务蓝军负责人,擅长Web渗透测试,长期致力于甲方Web业务安全方向攻击与防御研究。
✎小课堂黑板报
信息收集之前,首先我们需要识别出哪些是高价值的信息点。漏洞挖掘信息收集的目的是确定攻击面,即确定渗透测试目标。我们收集到的高价值信息越充足,攻击的成功率就越高。这里需要指出的是,信息的充足度不是以“量”衡量的,而是以“质”为考量维度的。如果我们收集到的信息比较杂,那么在利用过程中很难找到有价值的信息点。
那么高价值的信息点主要有哪些呢?主要是:
厂商组织架构、域名、IP段、业务信息。
收集高质量信息的三步走,方法如下:
Step 1 :根据企业组织架构收集信息
企业的组织架构信息可通过公开渠道获取,常用的包括但不限于以下的途径:
首先,公开网络百科资料,例如维基百科(zh.wikipedia.org)、百度百科(baike.baidu.com)等。
其次,企业的工商、信用等信息公开,可以结合以下站点进一步确定企业的组织架构:
国家企业信用公示系统:
http://www.gsxt.gov.cn/index.html
天眼查:
https://www.tianyancha.com/
明确了企业架构之后,就可以针对性收集需要的信息了。
Step 2 被动的信息收集
被动信息收集是指:不与目标直接交互,通过公开的渠道获取目标信息。
被动信息收集内容和途径大致为:DNS信息收集,https证书信息收集、搜索引擎、网络空间安全搜索引擎、基于备案资料信息收集。
1.DNS信息收集
通过目标站点的域名注册信息,例如whois日志进行信息关联。
国外常用的whois查询站点:
https://who.is/
https://whois.cymru.com/cgi-bin/whois.cgi
https://whois.arin.net/ui/query.do
国内常用的whois查询站点:
http://whois.chinaz.com/
https://whois.aizhan.com/
通过whois确定注册者,然后对同一注册者的其他站点信息进行关联。
https://viewdns.info/reversewhois/?q=email@111.com
https://whois.chinaz.com/reverse?ddlSearchMode=2
2.https证书信息收集
通过https证书进行信息收集方式如下:
a.基于证书透明度的两个站点:
https://certspotter.com/api/v0/certs
https://crt.sh
b.基于信息处理便捷度编写脚本处理:
crtFetch -d example.com
https://github.com/3stoneBrother/personalTools/blob/master/scripts/crtFetch.py
处理结果可参考下图:该脚本对在线站点获取的域名进行清洗,可获取到单域名SSL证书和通配符SSL证书。需要注意的是,某些企业的https证书中的相关域名可在浏览器证书中点击查看,查看步骤可参考下图:
可利用此脚本进行自动化处理:
https://github.com/3stoneBrother/personalTools/blob/master/scripts/sslinfo.py
python sslinfo.py -d "example.com"
也可利用https://dnsdumpster.com/在线生成域名图谱结构。
快速分析脚本:dnsdumpster.py
通过python3 dnsdumpster.py -d target.com可生成域名图谱结构的图片。
代码地址:
https://github.com/3stoneBrother/personalTools/blob/master/scripts/dnsdumpster.py
3.搜索引擎
https://www.exploit-db.com/google-hacking-database
a.常用关键字查询:
b.查找敏感目录地址:
c.
查找敏感文件:
这里需要注意的是,我们在SRC渗透过程中一定要遵从行业测试规范,除特别获批的事项外,严禁操作与漏洞无关的社工,相对具体的标准我们可参考SRC相关规则,JSRC测试规范及管理措施详见文末链接。
4.常用的网络空间安全搜索引擎:
https://www.zoomeye.org/
https://fofa.so/
https://www.shodan.io/
利用如下常用语法,我们可以收取更多的信息:
5.基于备案资料信息收集
不断的根据网络备案/许可证号进行反查,即可梳理出更充足的资产信息。
输入公司名称可查询该公司的IP资产信息,然后正则匹配IP段:
cat aa.txt| grep -Eo"\<td\>.*?td\>"| grep "href"| grep -Eo "([0-9]{1,3}[\.]){3}[0-9]{1,3}\/*[0-9]{0,2}"
以公众号信息为例:基于公众号信息,我们可以挖掘到很多关于厂商业务的信息。公司的公众号信息可在sogou搜索引擎进行查询。
https://weixin.sogou.com/weixin?type=1&ie=utf8&query=%E4%BA%AC%E4%B8%9C
为便于快速梳理,可用脚本处理:
python gongzhonghao.py -d "目标公司"
https://github.com/3stoneBrother/personalTools/blob/master/scripts/gongzhonghao.py
处理结果可参考下图,后续可对公众号进行进一步渗透测试:
APP端信息收集
下载应用程序历史版本地址:
https://www.wandoujia.com/
从apk中提取链接处理脚本:
https://github.com/3stoneBrother/personalTools/blob/master/scripts/apk-getLink.sh
原理:对app进行反编译,利用linkfinder找到app中的链接。
用法:需要两个参数,apk包名的前缀和linkfinder的根目录。
apk-getLink.sh “apk的前缀” $LINKFINDER_ROOT。
Step 3 :主动的信息收集
本期分享,我们以主动信息收集过程中较容易忽略的三级域名甚至四级域名为例来讲解。通配符SSL证书往往是三级、四级域名高效爆破的目标,我们在crtFetch脚本中提取了需要爆破的三级、四级域名进行域名爆破。
爆破工具较为丰富,以gobuster为例进行演示:
或通过whatweb查看链接的服务器版本、标题等信息,处理结果可参考下图:
为便于批量查看URL内容,我们可通过屏幕截图工具webscreenshot进行处理,处理步骤如下:
1.将存活的站点截图到screenshots文件夹下面:
webscreenshot -i alive.txt -oscreenshots -w 20 -m -a "X-FORWARDED-FOR:127.0.0.1"
2.将截图生成一个html文件便于浏览:
for I in $(ls -S); do echo "$I">> index.html
;echo"<img src=$I><br>" >> index.html;done
我们在浏览器中打开 index.html文件,就可以看到全部网页截图,效果如下,所有存活站点都在一个页面展现出来,可根据站点内容做进一步的渗透测试。
为高效发现新上线的业务,结合主动信息和被动信息收集,做一个监控工具,第一时间感知新业务的上线。下图是笔者做的一个域名监控系统,每当有新的站点上线会有slack消息通知。
延伸阅读:SRC行业测试规范
老铁们,这里有一份SRC行业测试规范,测试前了解一下。
京东SRC、百度SRC、腾讯SRC、滴滴SRC、360SRC等20个组织共同参与制定出SRC行业测试规范,在注入漏洞、越权漏洞、存储xss漏洞等方面提出建议,SRC行业测试规范及JSRC管理措施请点击:https://security.jd.com/#/notice/237
胸怀网络安全,测试为保网民。白帽子是网络世界的蓝军,技术高超的我们,也深知规绳矩墨,行动正己守道。
小伙伴们
针对本期内容和小课堂课程
如果您有哪些问题和建议,
欢迎更多白帽子们加入
小课堂开课 QQ 群:464465695
下期预告:
Web安全专题(四)命令执行之实战tips