开发者社区 > 博文 > 【JSRC小课堂】Web安全专题(三)SRC漏洞挖掘技巧:三步走收集高质量信息
分享
  • 打开微信扫码分享

  • 点击前往QQ分享

  • 点击前往微博分享

  • 点击复制链接

【JSRC小课堂】Web安全专题(三)SRC漏洞挖掘技巧:三步走收集高质量信息

  • 京东安全
  • 2020-05-09
  • IP归属:北京
  • 244200浏览

640.jpg



本期嘉宾:3stoneBrother,京东集团攻防与实验室安全工程师,业务蓝军负责人,擅长Web渗透测试,长期致力于甲方Web业务安全方向攻击与防御研究


小课堂黑板报

上期小课堂(【JSRC小课堂】Web安全专题(二)逻辑漏洞的burpsuite插件开发)讲师3stoneBrother分享了根据实际需求开发提高安全测试效率工具的思路,JSRC小课堂第149期,3stoneBrother继续和大家探讨了如何进行高质量的漏洞信息收集,以及结合工具高效的挖掘漏洞。

信息收集是渗透测试过程中较为关键的环节,收集到的资产信息越充足,越能最大化地广泛覆盖可能的攻击面,让渗透测试工程师胸有成竹,甚至可以达到事半功倍的效果。在漏洞挖掘时,安全工程师经常需要使用开源工具,但国内网络限制、商用接口付费、个性化工具定制没有头绪等问题,导致有些同学收集到的信息非常有限。而根据这些少量信息难以挖掘到新的漏洞。想要转变目标,又会碰到无法找到新的资产的困难。

本期主要从企业组织架构信息收集实例、主动和被动信息收集三步走,来分享如何收集高价值的信息。

信息收集之前,首先我们需要识别出哪些是高价值的信息点。
漏洞挖掘信息收集的目的是确定攻击面,即确定渗透测试目标。我们收集到的高价值信息越充足,攻击的成功率就越高。这里需要指出的是,信息的充足度不是以“量”衡量的,而是以“质”为考量维度的。如果我们收集到的信息比较杂,那么在利用过程中很难找到有价值的信息点。

那么高价值的信息点主要有哪些呢?
主要是:
厂商组织架构、域名、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证书中的相关域名可在浏览器证书中点击查看,查看步骤可参考下图:


640.png


浏览某个站点可查看到该公司的其他域名,操作步骤如下图:

640.png

 

可利用此脚本进行自动化处理:

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.搜索引擎

基于goolgehack技术可查询到大量有价值信息。
https://www.exploit-db.com/google-hacking-database

 

  a.常用关键字查询:


640.jpg

  

b.查找敏感目录地址:


640.jpg

 
 c.查找敏感文件:

640.jpg

  

这里需要注意的是,我们在SRC渗透过程中一定要遵从行业测试规范,除特别获批的事项外,严禁操作与漏洞无关的社工,相对具体的标准我们可参考SRC相关规则,JSRC测试规范及管理措施详见文末链接。


d.我们可能会忽略的几个关键字查询语句:


640.jpg

 

  4.常用的网络空间安全搜索引擎:

 https://www.zoomeye.org/

 https://fofa.so/

 https://www.shodan.io/


  利用如下常用语法,我们可以收取更多的信息:


640.jpg


  5.基于备案资料信息收集


640.png


通过企业组织架构查询到的关键词,利用备案信息可以大致确定各个站点的域名信息。点击反查可看到该公司的其他备案域名信息:
http://www.beianbeian.com/search-1/example.html
不断的根据网络备案/许可证号进行反查,即可梳理出更充足的资产信息。
 
确定企业的IP段,可基于https://bgp.he.net/站点进行收集。输入公司名称可查询该公司的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


处理结果可参考下图,后续可对公众号进行进一步渗透测试:

640.jpg


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为例进行演示:

gobuster dns -t 30 -w  sub_name.txt -i  -q –wildcard -d api.example.com| tee  domains-active.txt

640.png


接下来对爆破处理得到的三级和四级域名做进一步分析。
域名是否存活可利用httprobe工具确定。
cat domain.txt | httprobe > domain-alive.txt


640.png


或通过whatweb查看链接的服务器版本、标题等信息,处理结果可参考下图:


640.jpg


为便于批量查看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文件,就可以看到全部网页截图,效果如下,所有存活站点都在一个页面展现出来,可根据站点内容做进一步的渗透测试。


640.jpg

为高效发现新上线的业务,结合主动信息和被动信息收集,做一个监控工具,第一时间感知新业务的上线。下图是笔者做的一个域名监控系统,每当有新的站点上线会有slack消息通知





 延伸阅读:SRC行业测试规范



老铁们,这里有一份SRC行业测试规范,测试前了解一下。


京东SRC、百度SRC、腾讯SRC、滴滴SRC、360SRC等20个组织共同参与制定出SRC行业测试规范,在注入漏洞、越权漏洞、存储xss漏洞等方面提出建议,SRC行业测试规范及JSRC管理措施请点击:https://security.jd.com/#/notice/237


胸怀网络安全,测试为保网民。白帽子是网络世界的蓝军,技术高超的我们,也深知规绳矩墨,行动正己守道。


小伙伴们

针对本期内容和小课堂课程

如果您有哪些问题和建议,

欢迎更多白帽子们加入 

小课堂开课 QQ 群464465695


下期预告:

Web安全专题(四)命令执行之实战tips


共0条评论