初探红队踩点之外网信息收集

0x01.主域名信息

什么是主域名:主域名由两个或两个以上的字母构成,中间由点号隔开,整个域名通常只有1个点号。主域名通常与企业产品、品牌等高度关联,是企业对外形象的一种标识。我们一般以记住主域名来代替记住ip

主域名可收集到的信息

ICP备案

ICP备案:国内使用国内服务器的网站,都必须要先办理ICP备案后才可以上线。
作用:通过查询目标企业的备案信息,可直接获取到目标企业注册了哪些域名,从而增加可渗透的目标范围。
查询网站:

1
2
https://beian.miit.gov.cn/#/Integrated/index
https://www.aizhan.com/cha/


证书查询

SSL证书:SSL证书是一种遵守SSL协议的服务器数字证书,由受信任的根证书颁发机构颁发。SSL证书采用SSL协议进行通信,SSL证书部署到服务器后,服务器端的访问将启用HTTPS协议。 您的网站将会通过HTTPS加密协议来传输数据,可帮助服务器端和客户端之间建立加密链接,从而保证数据传输的安全。
作用:通过查询公用SSL证书的网站,可以找到相关的其他域名
查询方式:
1.从浏览器直接查看;点击安全->查看证书

2.借助网站

1
2
https://crt.sh/
https://en.fofa.info //借助于fofa的语法来查询

Whois

Whois:Whois是用来查询互联网中域名的IP以及所有者等信息的传输协议。早期的WHOIS查询多以命令行接口存在,但是现在出现了一些基于网页接口的简化在线查询工具,甚至可以一次向不同的数据库查询。网页接口的查询工具仍然依赖WHOIS协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。
作用:通过查询目标的WHOIS信息,对联系人、联系邮箱等信息进行反查,获取更多相关的域名信息。重点关注注册商、注册人、邮件、DNS解析服务器、注册人联系电话,
主要在于反查的操作。
查询方式

1
2
3
4
5
6
7
站长之家:http://whois.chinaz.com/
bugscaner:http://whois.bugscaner.com/
BGP:https://bgp.he.net/
who.is;https://who.is/
域名信息查询-腾讯云:https://whois.cloud.tencent.com/
UCANN:https://lookup.icann.org/
狗狗查询:https://www.ggcx.com/main/integrated



tips:
部分whois查询存在隐藏信息,可以在其他站点查询。(信息收集要全面,有时候一个网站不行可以多尝试几个网站)
whois主要还是注册商、注册人、邮件、DNS 解析服务器、注册人联系电话。
由于GDRP,ICANN要求所有域名注册商必须对域名whois隐私信息进行保护,所以whois信息越来越少……但还是会存在一些whois域名系统是旧缓存数据。

IP反查

作用:因为目标的多个域名可能会绑定在同一个ip上面,所有通过ip的反查可以获得更多的域名信息;此时可能会发现旁站信息;当我们的门户站打不进去时也可以通过旁站来拿shell
查询方式

1
2
3
4
5
6
http://s.tool.chinaz.com/same
https://dnslytics.com/
https://site.ip138.com/
fofa
shodan
bing



tips:
目标可能存在多个域名绑定于同一ip上,通过ip反查可以获取到其他域名信息。比如旁站。
通过获取目标真实IP后,进行反查的旁站更真实。
查询站点需复杂性,单一的站点会有反查不出信息的可能;大型企业不同的站点收录可能不一样;多个查询网站一同尝试可能会有不一样的收获。

HOST碰撞

在信息收集时往往会出现ip地址无妨访问的情况;究其原因有可能是我们配置出错的问题;存在一些隐形的资产,直接访问的时候会出现限制访问的情况。究其原因,大多数是因为中间件对ip访问做限制,不能通过ip直接访问,必须使用域名进行访问。如果域名解析记录里也找不到域名记录,这时就可以用到HOST碰撞技术,通过将域名和IP进行捆绑碰撞,一旦匹配到后端代理服务器上的域名绑定配置,就可以访问到对应的业务系统,从而发现隐形资产。
host碰撞步骤以及方法: https://www.wangan.com/p/11v7471117136181
自动化工具

1
2
3
https://github.com/cckuailong/hostscan
https://github.com/fofapro/Hosts_scan
https://github.com/smxiazi/host_scan


DNS共享记录

DNS:DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名,即保存了IP地址和域名的相互映射关系。域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。也正是因为DNS的存在,访问相应服务只需记住域名,不需要记住无规则的ip地址。
作用:可以通过查询共享DNS服务器的主机来获取到相关的域名,一般多是用于自建DNS服务器。如果是公开的DNS服务器,那么查询的效果将会特别差。主要是想收集到更多有相关联的域名;打开攻击面
查询方式:
1.首先查询目标是否存在自建的NS服务器

1
nslookup -query=ns baidu.com 8.8.8.8 //在需要查询的域名后面跟上域名服务器的地址


2.接着把查询到的ns服务器带入 https://hackertarget.com/find-shared-dns-servers/ 进行查询

企业资产信息

1.股权投资信息:

1
2
3
天眼查:https://www.tianyancha.com/
企查查:https://www.qcc.com/
钉钉企典:https://www.dingtalk.com/qidian/home?spm=a213l2.13146415.4929779444.89.7f157166W6H4YZ

2.公众号信息:

1
2
搜狗搜索:https://wx.sogou.com/
企查查:https://www.qcc.com/

3.小程序

1
2
3
企查查:https://www.qcc.com/
微信app
支付宝app

4.应用信息

1
2
3
4
5
天眼查:https://www.tianyancha.com/
七麦数据:https://www.qimai.cn/
企查查:https://www.qcc.com/
小蓝本:https://www.xiaolanben.com/pc
点点数据:https://app.diandian.com/

自动化工具ENScan: https://github.com/wgpsec/ENScan_GO

众测

补天、漏洞银行、先知、hackerone等众测的广商提供的域名测试范围。

0x02.子域名信息

前面总结了主域名收集的思路和方法,但除了主域名外,子域名也是域名信息收集中的一个重要环节,在当今各种防护设备满天飞的情况下,想要拿下主域名越来越难,但我们可以使用迂回策略,从子域名下手,慢慢靠近主域名以达到shell的目的。子域名收集可以帮助我们发现目标对外开放的更多的资产,如果能找到一些被遗忘或目标不关注的子域名,将其作为突破点,可能达到事半功倍的效果。
tips:
子域名包含一些常见资产类型:办公系统,邮箱系统,论坛,商城等。而其他管理系统,网站管理后台等较少出现在子域名中。
一般情况下,相同类型漏洞可能存在同一组织的不同的域名/应用程序中。
子域名系统维护成本、用户群体等,一般少于主域名,会存在一些版本迭代、配置不安全、弱密码账号管理策略等。
子域名探测发现更多的服务,增加漏洞发现的可能性

子域名的收集

证书透明度收集子域


作用:因为证书透明性是开放架构,可以检测由证书颁发机构错误颁发的SSL证书,也可以识别恶意颁发证书的证书颁发机构,且任何人都可以构建或访问,CA证书又包含了域名、子域名、邮箱等敏感信息,价值就不言而喻了。
查询方式:
1.网站查询

1
2
3
4
5
https://crt.sh/
https://www.entrust.com/ct-search/
https://developers.facebook.com/tools/ct/
https://spyse.com/search/certificate
https://sslmate.com/certspotter/api/


2.浏览器的查询

3.自动化收集工具

1
2
3
4
5
6
https://github.com/shmilylty/OneForAll
https://github.com/OWASP/Amass
https://github.com/UnaPibaGeek/ctfr
https://github.com/projectdiscovery/subfinder
https://github.com/knownsec/ksubdomain
https://github.com/p1g3/JSINFO-SCAN

DNS域传送

DNS服务器分为主服务器,备份服务器,缓存服务器
在主备服务器之间同步数据库,需要使用“DNS域传送”的一种DNS事务。域传送是指备份服务器从主服务器上复制数据,然后更新自身的数据库,以达到数据同步的目的,这样是为了增加冗余,一旦主服务器出现问题可直接让备份服务器做好支撑工作。若DNS配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。
错误配置:只要收到axfr就进行域传送;刷新数据
检测方法:
1.nslookup

1
2
3
4
5
6
# 查询nameserver
nslookup -type=ns fafu.deu.cn 119.29.29.29
# 指定nameserver,列举域名信息
nslookup
server dns1.fafu.edu.cn
ls fafu.edu.cn


2.Dig
axfr 是q-type类型的一种,axfr类型是AuthoritativeTransfer的缩写,指请求传送某个区域的全部记录。只要欺骗dns服务器发送一个axfr请求过去,如果该dns服务器上存在该漏洞,就会返回所有的解析记录值。

1
2
dig fafu.edu.cn ns //找到ns服务器
dig axfr @dns1.fafu.edu.cn fafu.edu.cn //发送axfr请求

3.namp

1
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=fafu.edu.cn -p 53 -Pn dns1.fafu.edu.cn //利用namp的脚本


若是存在域传送的话则会爆出子域名等信息

公开数据集

Rapid7的开源数据项目收集了多种全互联网范围内的扫描数据,任何人都可下载这些数据,而本次主题中主要涉及两个数据集,分别是FDNS和RDNS,可从中获取到大量的子域名信息。
Rapid7开源数据:https://opendata.rapid7.com/
在线网址:https://hackertarget.com/find-dns-host-records/

枚举爆破

要说简单粗暴还是子域名枚举爆破,通过不断的拼接字典中的子域名前缀去枚举域名的A记录进行DNS解析,如果成功解析说明子域名存在。如xxx.com拼接前缀test组合成test.xxx.com,再对其进行验证。但是域名如果使用泛解析的话,则会导致所有的域名都能成功解析,使得子域名枚举变得不精准

存活性探测

获取到大量的域名之后,我们往往需要对其的存活性进行探测;看看他的功能和是否是假的
自动化工具

1
2
https://github.com/broken5/bscan
https://github.com/EASY233/Finger

0x03.IP段信息收集

1.绕过CDN寻找真实IP

CDN:CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
简述:CDN是IP信息探测或打点必不可绕过的一个话题。当目标使用了CDN加速,获取到的目标ip不一定是真实ip。所以通常在实施端口、漏扫等测试之前,需判断下是否真实IP,是否使用了CDN或其他代理等等,避免无效操作、蜜罐、非目标点。
常见CDN服务商
一、国内 CDN 服务商
阿里云 CDN
百度云 CDN
七牛云 CDN
又拍云 CDN
腾讯云 CDN
Ucloud
360 CDN
网宿科技
ChinaCache
帝联科技
二、国外 CDN 服务商
CloudFlare
StackPath
Fastly
Akamai
CloudFront
Edgecast
CDNetworks
Google Cloud CDN
CacheFly
Keycdn
Udomain
CDN77
CDN的判断:当确定存在CDN加速时便要想着如何绕过CDN加速;因为此时的IP不一定为真实的IP

CDN的判断

1.多ping
此时若是有接入CDN则在多地ping时则会出现多个ip地址;如果没有使用CDN,只会显示一个IP地址,或者双线接入情况的两个不同运营商ip。
查询方式

1
2
3
4
http://ping.chinaz.com/
https://ping.aizhan.com/
http://www.webkaka.com/Ping.aspx
https://www.host-tracker.com/v3/check/

存在CDN加速

tips:如果服务器网络不通畅或则禁用ping则会返回超时
2.nslookup
如果返回的域名解析包含多个ip则可能是运用CDN

3.IP反查
看看是否存在大量的不相关的ip

1
2
3
https://securitytrails.com/
https://dns.aizhan.com/
https://x.threatbook.cn

没有使用CDN

使用CDN

4.header头部信息
请求响应包header头中是否存在cdn服务商信息

报错信息
若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN
5.在现检测工具

1
2
3
https://www.cdnplanet.com/tools/cdnfinder/
https://tools.ipip.net/cdn.php
https://whatsmycdn.com/

寻找真实IP

1.网络空间测绘引擎

1
2
3
4
fofa
shodan
quake
Censys.io

tips:
网络空间测绘,一般都会定时把全网资产扫一遍存在数据库里。通过网络空间测绘搜索引擎搜索其收录的目标相关信息,有概率获取到目标真实IP。
大概从以下几个关键因素去搜索验证:
ip
域名
title
logo
icp
body
js/css/html等静态特征值
2.DNS历史解析记录
查询历史域名解析记录;可能会记录之前未使用CDN记录的真实IP地址

1
2
3
4
5
https://dnsdb.io/zh-cn/
https://securitytrails.com/
https://x.threatbook.cn/
http://toolbar.netcraft.com/site_report?url=
https://viewdns.info/iphistory/?domain=

此时我们先判定存在CND

存在CDN,利用微步查询获取历史记录,然后将每个ip都测试一篇

通过源代码获取,确定真实ip

3.二级域名法
由于部分CDN价格昂贵,所以一些重要的站点会使用CDN加速,而一些子域名则没有使用,且极有可能和主站在同一C段,这时候,就可以通过发现目标的子域名,从而根据IP来定位主域名的IP地址。
查询方式:

1
2
3
https://x.threatbook.cn/
https://github.com/knownsec/ksubdomain
https://github.com/p1g3/JSINFO-SCAN

4.邮箱:
用目标邮件服务器发送邮件给自己(QQ邮箱)再查看邮件源码一定情况下可以找到真实IP(服务端和我们建立连接)
tips:通过发送邮件给一个不存在的邮箱地址,比如000xxx@domain.com为该用户不存在,所以会发送失败,并且还会收到一个包含发送电子邮件给你的服务器
的真实IP
查询方式:

1
2
3
4
5
6
RSS 订阅
邮箱注册、激活处
邮箱找回密码处
产品更新的邮件推送
某业务执行后发送的邮件通知
员工邮箱、邮件管理平台等入口处的忘记密码

5.海外ping
部分国内cdn广商只做了国内的线路,而没有铺设对国外的线路,这时就可以通过海外解析直接获取到真实IP。
查询方式

1
2
3
4
5
http://ping.chinaz.com/
https://asm.ca.com/zh_cn/ping.php
http://host-tracker.com/
http://www.webpagetest.org/
https://dnscheck.pingdom.com/


5.SSL证书
证书颁发机构 (CA) 必须将他们发布的每个 SSL/TLS 证书发布到公共日志中,SSL/TLS 证书通常包含域名、子域名和电子邮件地址。因此可以利用 SSL/TLS 证书来发现目标站点的真实 IP 地址。
CDN在提供保护的同时,也会与服务器之间进行加密通信(SSL)。当通过服443端口去访问服务器ip或域名时,就会暴露其SSL证书,也就可以通过证书比对发现服务器的真实IP地址。
查询方式:
(1):
https://crt.sh/

(2):
https://search.censys.io/
Censys 搜索引擎能够扫描整个互联网,每天都会扫描 IPv4 地址空间,以搜索所有联网设备并收集相关的信息,可以利用 Censys 进行全网方面的 SSL 证书搜索,找到匹配的真实 IP 。
tips: 并不是有效的证书才是有价值的,无效的证书中也会有很多服务器配置错误依然保留着的信息。

精准定位有效SSL证书

1
parsed.names: xxx.com and tags.raw: trusted

逐个打开根据sha1签名反查主机

6.敏感信息泄露

ps:
服务器日志文件
探针文件,例如 phpinfo
网站备份压缩文件
.DS_Store
.hg
.git
SVN
Web.xml
7.通过域名备案信息广域探测(成功率高)
针对目标域名,目标二级域名,如果都做了 CDN 的情况下,是不是就思路中断了呢?肯定不是。这里分享一个很少有人去关注的独门秘技。

1
网站需要服务器,但是再土豪的公司,也不可能一个域名一台服务器,大多数情况下,都是多个域名业务,共用一台服务器。那么如果目标网站存在备案,可以查询其备案信息,收集该单位或者个人备案的其他网站域名以及其他子域,然后再进行一轮广域的探测,很有可能其中的某个边缘子域,没有做CDN,就直接暴露了真实服务器的 IP 地址,然后再进一步验证该 IP 是否也是目标网站的真实 IP 。

找到真实 IP 后如何使用

在获取到真实IP后,通过直接访问IP可能无法访问,那么此时提供2种思路进行解决
(1).通过修改 hosts 文件,将域名和 IP 绑定。
(2).如使用 burpsuite 测试,可以在 Project options —-> Connections —-> Hostname Resolution 中增加域名和 IP 记录。

验证是否是真实ip:
通过源代码获取,确定真实ip使用 view-source:xxx.xxx.xxx.xxx,表明这是真实ip,如果是真,则返回网站源代码

如果为假则返回cdn信息

2.C段

C段:对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。
工具:
1.
nmap
六种扫描结果
open(开放的)
filtered(被过滤的)
open|filtered(开放或者被过滤的)
closed(关闭的)
closed|filtered(关闭或者被过滤的)
unfiltered(未被过滤的)
常用命令:

1
2
3
4
5
6
nmap -vvv -Pn -p- ip/24 -n -T4  
#-v 输出详细信息,-v/-vv/-vvv v越多信息越详细 上线3个v
#-Pn 扫描时不用ping
#-p- 扫描所有端口(65535个)。如果不使用 -p- ,nmap 将仅扫描1000个端口,GUI参数不可用
#-n 不做DNS解析
#-T4 设置时间模板,0-5部分做了扫描时间优化,默认3未作优化。4加速扫描又保持一定准确性