原创:Qftm 合天智汇
"只有不努力的黑客,没有攻不破的系统"。
这篇文章《信息收集-旅行记》是笔者几年的经验总结,在SRC漏洞挖掘中,信息收集占很大一部分,能收集到别人收集不到的资产,就能挖到别人挖不到的漏洞。
收集域名信息
知道目标域名之后,我们要做的第一件事情就是获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等。
Whois 查询
Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期、DNS等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间。
Whois网络注册信息探测:http://www.hetianlab.com/expc.do?ec=66a18063-8287-4b7c-9dfd-97faf52282f1(通过本实验的学习,了解Whois的概念,掌握Whois网络注册信息探测的目的和技术方法。)复制链接做实验。
备案信息查询
国内网站注册需要向国家有关部门申请备案,防止网站从事非法活动,而国外网站不需要备案2333。
信用信息查询
国家企业信用信息公示系统 http://www.gsxt.gov.cn/index.html
全国企业信息查询 http://company.xizhi.com/
个人信用查询搜索-企业信息查询搜索-统一社会信用代码查询-信用中国 https://www.creditchina.gov.cn/
IP反查站点的站
在线网站
Dnslytics
Dnslytics地址:https://dnslytics.com/
利用Dnslytics反查IP可以得到如下信息
利用Dnslytics反查域名可以得到如下信息
浏览器插件
通过Google、FireFox等插件的使用,收集域名信息
myip.ms
浏览器插件的使用:
(学习常见浏览器插件的使用。)
收集相关应用信息
天眼查 https://www.tianyancha.com/
微信公众号&微博
天眼查
根据前面获取的企业名称可以获取目标企业的微信公众号、微博、备案站点、软件著作权等信息。
天眼查-商业安全工具 https://www.tianyancha.com/
微信公众号
微博
APP
七麦数据
https://www.qimai.cn/
通过当前APP查询同开发商应用,得到目标所有APP应用
AppStore
通过当前APP查询同开发商应用,得到目标所有APP应用
收集子域名信息
子域名也就是二级域名,是指顶级域名下的域名。假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。那么问题来了,怎样才能尽可能多地搜集目标的高价值子域呢?常用的方法有以下这几种。
在线平台
第三方平台查询
主要是一些第三方网站和一些博主提供的服务
权重综合查询
爱站 https://www.aizhan.com/seo/
站长工具 http://rank.chinaz.com/all/
全国政府网站基本数据库
IP反查绑定域名网站
IP关联域名,大部分网站一个IP多个域名
资产搜索引擎
google、shodan、FOFA、zoomeye
Google语法查询
搜索子域名 "site:xxxxx"
FOFA语法查询
https://fofa.so/
搜索子域名 "domain:xxxxx"
工具枚举
常用子域名工具如下(Github上都可搜到)
个人推荐:OneForAll、Layer、Sublist3r、subDomainsBrute
OneForAll
OneForAll是一款功能强大的子域收集工具,拥有多个模块和接口扫描,收集子域信息很全,包括子域、子域IP、子域常用端口、子域Title、子域Banner、子域状态等。
项目地址:https://github.com/shmilylty/OneForAll
子域名收集:python3 oneforall.py --target=target.com run
Layer
Layer子域名挖掘机的使用方法比较简单,在域名对话框中直接输入域名就可以进行扫描,它的显示界面比较细致,有域名、解析IP、开放端口、Web服务器和网站状态等
subDomainsBrute
subDomainsBrute的特点是可以用小字典递归地发现三级域名、四级域名,甚至五级域名等不容易被探测到的域名。
项目地址:https://github.com/lijiejie/subDomainsBrute
子域名收集:python subDomainsbrute.py xtarget.com
Sublist3r
Sublist3r也是一个比较常用的工具, 它能列举多种资源,如在Google、Yahoo、 Bing、 Baidu和Ask等搜索引擎中可查到的子域名,还可以列出Netcraft、VirusTotal、ThreatCrowd、 DNSdumpster、SSL Certificates、和Reverse DNS查到的子域名。
项目地址:https://github.com/aboul3la/Sublist3r
子域名收集:python sublist3r.py -d target.com -b -t 50 -p 80,443,21,22
证书透明度公开日志枚举
证书透明度(Certificate Transparency, CT)是证书授权机构(CA) 的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址, 这些也经常成为攻击者非常希望获得的有用信息。查找某个域名所属证书的最简单的方法就是使用搜索引|擎搜索一些公开的CT日志。
在线第三方平台查询
工具枚举查询
通过工具可以调用各个证书接口进行域名查询
常用工具
Findomain
Findomain不使用子域名寻找的常规方法,而是使用证书透明度日志来查找子域,并且该方法使其工具更加快速和可靠。该工具使用多个公共API来执行搜索
项目地址:https://github.com/Edu4rdSHL/findomain
子域名收集:findomain -t target.com
使用所有API搜索子域并将数据导出到CSV文件:findomain -t target.com -a -o csv
DNS历史解析
dnsdb https://www.dnsdb.io
viewdns https://viewdns.info/
DNS域传送漏洞
目前来看"DNS域传送漏洞"已经很少了。
DNS记录分类
常见的DNS记录有以下几类:
DNS信息收集-dnsrecon、fierce和dnsmap:
http://www.hetianlab.com/expc.do?ec=ECID172.19.104.182016012111000300001(通过该实验了解dnsrecon、fierce、dnsmap这三个工具的使用方法,并使用该工具对DNS服务器进行信息收集整理,了解并熟悉他们的常用参数意义。)复制链接做实验。
DNS注册信息
Whois查询
DNS域传送漏洞原理
DNS服务器分为:主服务器、备份服务器和缓存服务器。在主备服务器之间同步数据库,需要使用“DNS域传送”。域传送是指备份服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。
若DNS服务器配置不当,可能导致攻击者获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。同时,黑客可以快速的判定出某个特定zone的所有主机,收集域信息,选择攻击目标,找出未使用的IP地址,绕过基于网络的访问控制。
DNS域传送漏洞检测
nslookup
基本过程
漏洞检验-不存在漏洞
漏洞检验-存在漏洞
nmap
利用nmap漏洞检测脚本"dns-zone-transfer"进行检测
dig
使用说明 dig -h
漏洞测试
axfr 是q-type类型的一种: axfr类型是Authoritative Transfer的缩写,指请求传送某个区域的全部记录。
查找真实IP
如果挖掘的目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正的目标Web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致了我们没法直接得到目标的真实IP段范围。
CDN简介
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
国内外CND
国内常见CDN
国外常见CDN
判断目标是否存在CDN
由于CDN需要代价,一般小企业很大几率不会存在CDN服务。
假如一些企业存在CDN服务,那该如何寻找其真实IP呢,往下看,常见几种手法
Ping目标主域
通常通过ping目标主域,观察域名的解析情况,以此来判断其是否使用了CDN
对京东和阿里还有一家电器企业进行ping测试,观察域名的解析情况,可以看到京东和阿里都采用了自家CDN,而那个电器企业没有CDN服务
Nslookup
不同DNS域名解析
不同DNS域名解析情况对比,判断其是否使用了CDN
不同DNS解析结果若不一样,很有可能存在CDN服务
nslookup默认解析
若解析结果有多个,很有可能存在CDN,相反,若解析结果有一个,可能不存在CDN(不能肯定)
全国Ping
利用全国多地区的ping服务器操作,然后对比每个地区ping出的IP结果,查看这些IP是否一致, 如果都是一样的,极有可能不存在CDN。如果IP大多不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN。
在线网址
站长工具
测试目标:www.jd.com
17CE
测试目标:www.baidu.com
IPIP
工具查询
这里工具只能作为辅助,有一定误报的概率,只能作为参考
Cdnplanet
cdnplanet https://www.cdnplanet.com/tools/cdnfinder/ (查询可能比较慢)
绕过CDN查找真实IP
在确认了目标确实用了CDN以后,就需要绕过CDN寻找目标的真实IP,下面介绍一些常规的方法。
内部邮箱源
一般的邮件系统都在内部,没有经过CDN的解析,通过利用目标网站的邮箱注册、找回密码或者RSS订阅等功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP。
注意:必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的。
国外请求
很多时候国内的CDN对国外得覆盖面并不是很广,故此可以利用此特点进行探测。通过国外代理访问就能查看真实IP了,或者通过国外的DNS解析,可能就能得到真实的IP。
国际Ping
国际ping测试站点
测试站点:www.yeah.net
国外DNS解析
世界各地DNS服务器地址大全:http://www.ab173.com/dns/dns_world.php
测试站点:www.yeah.net
美国加利福尼亚州山景市谷歌公司DNS服务器: 8.8.4.4
分站域名&C段查询
很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站IP, 可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
分站域名
具体见上面<收集子域名信息>部分
C段查询
- 在线查询
- 工具
K8_C段旁注工具6.0、nmap、IISPutScanner、小米范WEB查找器 等
小米范WEB查找器:http://pan.baidu.com/s/1pLjaQKF
- 网络资产搜索引擎
Fofa、Shodan、ZoomEye
利用这些网络空间资产搜索引擎来搜索暴露在外的端口信息
利用语法搜索C段信息
网站漏洞
通过网站的信息泄露如phpinfo泄露,github信息泄露,命令执行等漏洞获取真实ip。
一些测试文件
phpinfo、test等
SSRF漏洞
服务器主动向外发起连接,找到真实IP地址
查询域名解析记录
一般网站从部署开始到使用cdn都有一个过程,周期如果较长的话 则可以通过这类历史解析记录查询等方式获取源站ip,查看IP与域名绑定的历史记录,可能会存在使用CDN前的记录。
在线网站查询
目标网站APP应用
如果目标网站有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP。
网络空间引擎搜索
shodan、FOFA、zoomeye
声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!