作为一个web手一个好的信息收集能力是必须的,无论是渗透测试还是打比赛都少不了信息搜集

主域名信息

IPC备案

备案查询是为了查询改单位注册了多少网站。

查询网站

1
https://beian.miit.gov.cn/#/Integrated/recordQuery

whois查询

通过whois信息可以获取注册人的关键信息。如注册商、联系人、联系邮箱、联系电话,也可以对注册人、邮箱、电话反查域名,也可以通过搜索引擎进一步挖掘域名所有人的信息。深入可社工、可漏洞挖掘利用。

查询网站:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
国内:
站长之家
http://whois.chinaz.com

IP138网站
https://site.ip138.com/

域名信息查询-腾讯云
https://whois.cloud.tencent.com/

ICANN LOOKUP
https://lookup.icann.org/

狗狗查询
https://www.ggcx.com/main/integrated

国外:
Bugscanner
http://whois.bugscaner.com

国外BGP
https://bgp.he.net

who.is
https://who.is/

IP反查

目标可能存在多个域名绑定于同一ip上,通过ip反查可以获取到其他域名信息。比如旁站。

通过获取目标真实IP后,进行反查的旁站更真实。
查询站点需复杂性,单一的站点会有反查不出信息的可能。

查询网站

1
2
3
4
5
6
7
8
iP或域名查询
https://site.ip138.com/

同IP网站查询,同服务器网站查询 - 站长工具
https://stool.chinaz.com/same

Dnslytics
https://dnslytics.com/

搜索引擎

shodan
bing
fofa

通过证书查询

通过查询该网站下挂着的SSL证书一般就可以判断改网站是归属于哪个单位。也可以通过证书来寻找子域名。

查询网站

1
https://crt.sh/ 输入域名即可

搜索引擎

1
2
3
4
5
fofa
cert="baidu" --> 搜索https或者imaps中带有百度的资产
cert.subject="xxx" --> 搜索证书的持有者为xxx的资产
cert.issuer="xxx" --> 搜索证书的颁发者为xxx的资产
cert.is_valid=true/false --> 验证证书的有效性

host碰撞

想要理解什么是host碰撞首先要知道什么是反向代理。

反向代理是什么

反向代理是nginx/Apache的一个功能,其作用是隐藏真实的后端服务器信息,提供负载平衡、安全过滤、缓存等功能,并增强网络安全性。
当客户端发来了请求如果开启了反向代理会先将请求发送到反向代理服务器也就是Nginx和Apache,再由反向代理服务器来发送到后端服务器。

原理

一般反向代理发送的后端服务器都是由host头来决定的。而当数据包的 host 头替换为某个域名时在访问该反代服务器的 ip, 如果 nginx/Apache 的反向代理的 host 配置没删除,就会把请求转发到内网对应的 host 业务服务器上,接着返回该业务的信息,实现本该隐藏的业务访问
简单点就是: nginx/Apache 的反向代理的 host 配置没删除,当我们访问这个ip时仍然会先发给nginx/Apache再由nginx/Apache来发送给规定host的后端服务器。如果配置有host没删除又与用户的请求头的host相同,那么nginx/Apache就会代理将请求发到该内网web。host碰撞的原理

什么时候存在

1 业务通过 DNS 解析到外网,后面删除了 A 记录 (但是 nginx/Apache 的反向代理还没删除)

2 测试业务 (不对外开放的业务,只流传于开发或是测试使用)

碰撞工具

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

DNS共享记录

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名,即保存了IP地址和域名的相互映射关系。域名是Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。域名是由一串用点分隔的名字组成的,通常包含组织名,而且始终包括两到三个字母的后缀,以指明组织的类型或该域所在的国家或地区。也正是因为DNS的存在,访问相应服务只需记住域名,不需要记住无规则的ip地址。

1
2
3
4
5
6
7
8
记录类型	说明
A 记录 将域名指向一个 IP 地址(外网地址)。
CNAME 记录 将域名指向另一个域名,再由另一个域名提供 IP 地址(外网地址)。
MX 记录 电子邮件交换记录,记录一个邮件域名对应的IP地址,设置邮箱,让邮箱能收到邮件。
NS 记录 域名服务器记录,记录该域名由哪台域名服务器解析。如将子域名交给其他 DNS 服务商解析。
AAAA 记录 将域名指向一个 IPv6 地址。
SRV 记录 用来标识某台服务器使用了某个服务,常见于微软系统的目录管理。
TXT 记录 对域名进行标识和说明,绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件)。

利用价值

可以通过查询共享DNS服务器的主机来获取到相关的域名,一般多是用于自建DNS服务器。如果是公开的DNS服务器,那么查询的效果将会特别差。

使用nslookup来进行查看目标是否存在NS服务器

1
nslookup -query=ns baidu.com 8.8.8.8

将获取到的NS服务器带入 https://hackertarget.com/find-shared-dns-servers/ 进行查询

子域名的信息

子域名一般是父级域名的下一级。一般企业主站域名的防护都是重点,安全级别较高,突破难度较大,而企业可能会有数十个甚至更多的子域名应用,因为数量众多,安全因素和成本投入多,相应的防护也没有那么及时有效。子域名往往是攻击突破口,通过子域名发现更多的可能性或是进行迂回攻击。

子域名信息点

子域名包含一些常见资产类型:办公系统,邮箱系统,论坛,商城等。而其他管理系统,网站管理后台等较少出现在子域名中。
一般情况下,相同类型漏洞可能存在同一组织的不同的域名/应用程序中。
子域名系统维护成本、用户群体等,一般少于主域名,会存在一些版本迭代、配置不安全、弱密码账号管理策略等。
子域名探测发现更多的服务,增加漏洞发现的可能性。

枚举爆破

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

正常解析

我们可以看到我们使用nslookup来解析wiki时即使其前一段子域名为随便乱打的也会被解析
但是当正常解析时如百度,我们会发现无法解析成功。

DNS域传送

DNS服务器分为:主服务器、备份服务器和缓存服务器。

在主备服务器之间同步数据库,需要使用“DNS域传送”的一种DNS事务。域传送是指备份服务器从主服务器上复制数据,然后更新自身的数据库,以达到数据同步的目的,这样是为了增加冗余,一旦主服务器出现问题可直接让备份服务器做好支撑工作。

若DNS配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。

错误配置:只要收到axfr请求就进行域传送,刷新数据。

nslookup

1
2
3
4
5
6
7
8
# 查询nameserver  
nslookup -type=ns fafu.edu.cn 8.8.8.8
# 指定nameserver,列举域名信息
nslookup
# Server 命令参数设定查询将要使用的DNS服务器
server cloudy.dnspod.net
# Ls命令列出某个域中的所有域名
ls fafu.edu.cn

我们可以看到其无法传送出来即没有这个漏洞

Dig

1
2
3
4
# 找到NS服务器
dig nhtc.wiki ns
# 发送axfr请求
dig axfr @cloudy.dnspod.net nhtc.wiki

一般情况下,DNS服务器配置都正常,关闭了域传送或设置白名单,利用率低。推荐交给自动化。

证书

我们可以通过证书来对子域名进行查询,一般挂取该单位证书的一般是子域名
因为证书透明性是开放架构,可以检测由证书颁发机构错误颁发的 SSL 证书,也可以识别恶意颁发证书的证书颁发机构,且任何人都可以构建或访问,CA证书又包含了域名、子域名、邮箱等敏感信息,价值就不言而喻了

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/

域名存活检测

IP信息收集

1. 绕过CDN获取真实ip

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判断

多ping

通过多地ping目标域名,如果没有使用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/

通过多地ping目标域名,如果没有使用CDN,只会显示一个IP地址,或者双线接入情况的两个不同运营商ip。

nslookup

获取到的DNS域名解析结果中返回多个ip的,一般都是存在CDN服务。

header头信息

请求响应包header头中是否存在cdn服务商信息
报错信息
若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN

在线检测工具

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

我们可以看到当查询的网站存在CDN加速就会查到很多奇怪的东西。

IP反查

看看是否会查到大量不相干的域名

可以看到baidu应该是使用了CDN加速

获取真实IP

dns历史绑定记录

查询域名历史解析记录,可能会存在未使用cdn之前的真实ip记录:
首先查看一个域名是否使用了CDN加速
然后使用在线工具查看历史ip

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


使用
view-source:一个个查看ip如果回显源码则为真实ip