- DNS
- 域名
- CDN判断
- 寻找真实IP
">查询有效的证书 Certificates: parsed.names.raw: “baidu.cn” and tags.raw: trusted # 注意 # 测试过程中,很容易陷入思维误区,认为 有效 的证书才是我们需要的,但其实并不一定,很多服务器配置错误依然保留的是无效的证书
sha1 签名反查IPV4
- 敏感文件泄漏
- 历史域名
- 通过 XML-RPC PINGBACK 通信
- APP
- 漏洞
- 通过 virtual-host 碰撞
- 通过 favicon.ico 哈希特征
- 通过网页源码特征值
- 通过域名备案信息广域探测(成功率高)
- 找到真实 IP 后如何使用
DNS
万维网重要基础,建立在一个分布式数据库基础上,数据库里保存了ip地址和域名的相互映射关系。用户在浏览器输入域名,浏览器将向DNS服务器发送查询,得到目标主机ip地址,再与对应的主机建立http链接,请求网页。
登录域名控制台可以查看常用DNS解析记录
- AA 记录是最常用类型,将域名指向一个 IPv4 地址,如 8.8.8.8
- CNAME将域名指向另一个域名地址,与其保持相同解析,如 https://www.dnspod.cn
- MX用于邮件服务器,相关参数一般由邮件注册商提供
- TXT可填写附加文本信息,常用于域名验证
- NS域名服务器记录,可将指定域名交由其他 DNS 服务商解析管理
- AAAA将域名指向一个 IPv6 地址,如 ff06:0:0:0:0:0:0:c3
- SPF用于指定发送邮件的服务器,是一种高效的反垃圾邮件解决方案
- SRV用于标识某台服务器使用了某个服务,常见于微软系统的目录管理。格式为「服务名字.协议类型」,如 _sip._tcp
- CAA用于指定域名的证书颁发机构(CA),减少证书颁发风险
- 显性URL将一个域名重定向至某个具体网页,且显示实际 URL 。仅支持 301 重定向,该记录要求双方域名均已完成备案。
- 隐性URL将一个域名重定向至某个具体网页,但隐藏实际 URL 。仅支持 301 重定向,该记录要求双方域名均已完成备案。
DNS域传送:
DNS服务器分为:主服务器、备份服务器和缓存服务器。域传送是指后备服务器从主服务器拷贝数据,并用得到的数据更新自身数据库。在主备服务器之间同步数据库,需要使用“DNS域传送”。
DNS域传送漏洞:
若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录。造成整个网络的拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器。凭借这份网络蓝图,攻击者可以节省很少的扫描时间。大的互联网厂商通常将内部网络与外部互联网隔离开,一个重要的手段是使用Private DNS。如果内部DNS泄露,将造成极大的安全风险。风险控制不当甚至造成整个内部网络沦陷。
检测方法利用nslookup,dig,nmap等命令
nslookup操作基本的步骤是:
- 输入nslookup命令进入交互式shell
- Server 命令参数设定查询将要使用的DNS服务器
- Ls命令列出某个域中的所有域名
攻击者能获取的敏感主要包括:
1)网络的拓扑结构,服务器集中的IP地址段
2)数据库服务器的IP地址
3)测试服务器的IP地址,
4)VPN服务器地址泄露
5)其他敏感服务器
域名
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
域名分类
顶级域名:
政府域名:.gov
商业域名:.com
教育域名:.edu
二级域名:baidu.com
三级域名:www.baidu.com
icp备案
通过查询目标企业的备案信息,可直接获取到目标企业注册了哪些域名,从而增加可渗透的目标范围。
推荐使用官方网站ICP/IP地址/域名信息备案管理系统
Whois
whois是用来查询域名的IP以及所有者等信息的传输协议。就是一个用来查询域名是否被注册,以及注册域名的详细信息的数据库(如:域名所有人、域名注册商),一般情况下对于中小型网站域名注册者就是网站管理员。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间。Whois协议。基本内容是,先向服务器的TCP端口43建立一个连接发送查询关键字并加上回车换行,然后接收服务器的查询结果。
Linux本地WHOIS查询
在线查询网站
- 域名Whois查询 - 站长之家
- 站长工具whois查询工具爱站网
- 国家域名whois
- 全球 WHOIS 查询
- 域名信息查询 - 腾讯云
- whois查询-中国万网
在线查询演示
此处以站长之家查询为例,输入域名即可进行查询
点击联系人后方的 whois反查 进行联系人反查
点击联系邮箱后方的 whois反查 进行邮箱反查
反查的目的是增加资产的范围
子域名收集
1.在线子域名查询(原理好像也是爆破
- phpinfo
-
2.SSL证书查询
要向用户提供加密流量,网站必须先向可信的证书授权中心 (CA) 申请证书。然后,当用户尝试访问相应网站时,此证书即会被提供给浏览器以验证该网站。近年来,由于 HTTPS 证书系统存在结构性缺陷,证书以及签发证书的 CA 很容易遭到入侵和操纵。Google 的证书透明度项目旨在通过提供一个用于监测和审核 HTTPS 证书的开放式框架,来保障证书签发流程安全无虞。
使用一下连接进行查询 - censys
- myssl
3.搜索引擎查询(借助爬虫搜集)
这里配上谷歌语法来进行搜索,基本底层语法都不会有太大变化。
- baidu
- bing
- sougou
-
4.资产测绘引擎
fofa工程师,懂得都懂
- 钟馗之眼
- 360
- Fofa
-
5.威胁情报平台
微步社区感觉更像查IP用的
- alienvault
- riskiq
- threatminer
-
6.暴力枚举一把嗦
使用方法:python oneforall.py —target xxx.com run
爆破后的结果会保存为csv文件
使用方法:python sublist3r.py -d target.com -b -t 50 -p
使用方法:python3 subDomainsBrute.py xxx.com
- layer子域名挖掘机
7.子域名泛解析问题
子域名爆破,是发现多资产的一个很好的方法,在子域名爆破中,经常会遇到泛解析问题
什么是泛解析呢(参考百度百科)?
泛域名解析是:*.域名解析到同一IP。 域名解析是:子域名.域名解析到同一IP。
这为我们去做子域名爆破,带来了极大的不便,以前子域名爆破常用的是layer子域名挖掘机. 不过layer子域名挖掘机,在跑具有泛解析的站的时候,就不是那么适用
针对百度,我们可以直接使用layer子域名挖掘机等子域名爆破工具,而针对淘宝的资产,我们不能使用layer子域名挖掘机等常规工具
那么我们需要做第一步,识别泛解析:
这边的思路如下:

这里使用到的python3库:aiodns,他很强大,aiodns支持的查询类型: A, AAAA, ANY, CAA, CNAME, MX, NAPTR, NS, PTR, SOA, SRV, TXT.
五次完全A记录解析成功,认为存在泛解析,如果不存在泛解析问题,就常规子域名收集一把梭,如果检测出泛解析,就使用破泛解析的子域名爆破工具
破泛解析实现思路:
刚刚演示了泛解析判断是否存在,仍然以资产淘宝为例子:
测试Demo:
import asyncio import aiodns import sys loop = asyncio.get_event_loop() resolver = aiodns.DNSResolver(loop=loop) async def query(name, query_type): return await resolver.query(name, query_type) try: coro = query(str(sys.argv[1]), ‘CNAME’) result = loop.run_until_complete(coro) print(result) except Exception as e: print(e)
CNAME查询几个不存在的淘宝域名,也是一样的思路,循环多次不存在的域名,如果访问不存在的域名,CNAME为shop.taobao.com

那么在子域名爆破的时候可以先判断CNAME,这里可以自己维护的特定厂商的CNAME列表
代码实现:
先查询CNAME记录,如果包含shop.taobao.com就跳过
同理方法3:A记录查询命中次数:
如果A记录查询,命中相同ip>10,后续的爆破A记录解析的域名就不展示记录
通过这种思路,域名泛解析的问题已经可以解决了
域名深度问题:replace提取上一次的域名前缀,加入到下一次fuzz+上一次的域名前缀

CDN判断
多地ping
如果没有使用CDN,则只会显示一个IP地址。
可以使用以下站点进行多地ping,
- http://ping.chinaz.com/
- https://ping.aizhan.com/
- http://www.webkaka.com/Ping.aspx
- https://www.host-tracker.com/v3/check/
nslookup法
用国外的dns服务器
- 如果返回域名解析对应多个 IP 地址多半是使用了 CDN
- nslookup -qt=A h5.hunbei.com 8.8.8.8 用国外的可能会得到真实IP不存在:
IP反查域名
查看是否存在大量不相关的IP
观察header
- 观察请求响应的返回数据的头部,是否有 CDN 服务商标识
- 若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN
寻找真实IP
网络空间测绘引擎
zoomeye、fofa等,搜索站点相关信息,有一定几率能够获取到站点的真实IP
- fofa
- shodan
- quake
-
二级域名法
由于部分CDN价格昂贵,所以一些重要的站点会使用CDN加速,而一些子域名则没有使用,且极有可能和主站在同一C段,这时候,就可以通过发现目标的子域名,从而根据IP来定位主域名的IP地址。
- ksubdomain
-
邮箱
用目标邮件服务器发送邮件给自己(QQ邮箱)再查看邮件源码一定情况下可以找到真实IP(服务端和我们建立连接)
这里还有一个奇淫技巧,通过发送邮件给一个不存在的邮箱地址,比如 000xxx@domain.com ,因为该用户不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实 IP 通知。 RSS 订阅
- 邮箱注册、激活处
- 邮箱找回密码处
- 产品更新的邮件推送
- 某业务执行后发送的邮件通知
-
海外ping
由于国内厂家可能只针对国内使用cdn,对海外没有铺设,导致通过通过海外的IP可以直接获取到真实IP。
可以使用: - https://asm.ca.com/zh_cn/ping.php
- http://host-tracker.com/
- http://www.webpagetest.org/
- https://dnscheck.pingdom.com/
DNS历史解析记录
- https://dnsdb.io/zh-cn/
- https://securitytrails.com/
- https://x.threatbook.cn/
- http://toolbar.netcraft.com/site_report?url=
- https://viewdns.info/iphistory/?domain=
以微步在线为例
找到站点
判断存在CDN
微步查询
确认为真实IP
这些很有可能就是在使用CDN之前留下的解析记录
SSL证书
在线
查询有效的证书 Certificates: parsed.names.raw: “baidu.cn” and tags.raw: trusted # 注意 # 测试过程中,很容易陷入思维误区,认为 有效 的证书才是我们需要的,但其实并不一定,很多服务器配置错误依然保留的是无效的证书
sha1 签名反查IPV4

openssl s_client -connect hao123.com:443 | grep subject
- curl
curl -v https://hao123.com | grep ‘subject’
敏感文件泄漏
- 服务器日志文件
- 探针文件,例如 phpinfo
- 网站备份压缩文件
- .DS_Store
- .hg
- .git
- SVN
-
历史域名
很多网站在发展的过程中,会更换域名,比如京东以前的域名是 360buy.com ,后来斥巨资购买了 jd.com 。
网站在更换新域名时,如果将 CDN 部署到新的域名上,而之前的域名由于没过期,可能未使用 CDN,因此可以直接获得服务器 IP,所以,历史域名也是一个很重要的点。
通过 XML-RPC PINGBACK 通信
XML-RPC 是支持 WordPress 与其他系统之间通信的规范,它通过使用 HTTP 作为传输机制和 XML 作为编码机制来标准化这些通信过程。
- 在 WordPress 的早期版本中,默认情况下已关闭 XML-RPC,但是从3.5版本开始,默认情况下开启。
- XML-RPC 支持 trackback 和 pingback。
- 虽然 WordPress 启用了 REST API 来代替 XML-RPC ,不过 XML-RPX 不会过时的,放心大胆的使用就好,虽然 XML-RPC 这个技术很老了,但依然可以通杀很多网站。
POST /xmlrpc.php HTTP/1.1 Host: domain.com Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: en,zh-CN;q=0.9,zh;q=0.8 Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 323 <?xml version=”1.0” encoding=”UTF-8”?>
APP
- 目标若存在APP,则APP可能通过IP直接与服务端进行通信,若最新版采用域名通信,也可尝试寻找历史版本进行分析。
漏洞
- 如果目标网站本身存在漏洞的话,比如 SSRF、XXE、XSS、文件上传、命令执行等漏洞,或者我们找到的其他突破口,注入我们自己的带外服务器地址,然后在服务器上检查 HTTP 日志记录。
应用本身的错误会造成当传递一些错误的参数值或者错误的地址时,内部会抛出异常,也就是日常所说的报错,关注报错点,经常会泄露一些真实的 IP 地址或者内网 IP 段。
通过 virtual-host 碰撞
当我们收集了目标足够多的可能的真实 IP 时,可以通过 IP 和子域的碰撞,来批量获得命中目标以及目标哪些的子域。
在线收集工具 https://pentest-tools.com/information-gathering/find-virtual-hosts#
通过 favicon.ico 哈希特征
favicon.ico 是现代浏览器在网页标题的左侧显示的一个小图标。
- 该图标数据通常是从 https://anywebsite/favicon.ico 处获取的,浏览器会在浏览任何网站时自动请求它。
- 因为可以通过计算 favicon.ico 的指纹哈希,然后去 shodan 等搜索引擎搜索与之相同的主机结果,从而进一步探测是否能挖掘出目标网站的真实 IP 地址。
- 目前网络空间搜索引擎均支持
通过网页源码特征值
在服务器源 IP 地址允许访问并且返回的也是类似的网站内容情况下,可以通过侦察页面源码中 JS 、CSS 、HTML 等一系列静态特征值,然后用 Shodan 、Zoomeye 、Censys 等搜索引擎进行匹配搜索,从而定位 IP 。
通过域名备案信息广域探测(成功率高)
针对目标域名,目标二级域名,如果都做了 CDN 的情况下,是不是就思路中断了呢?
- 肯定不是。这里分享一个很少有人去关注的独门秘技。
- 网站需要服务器,但是再土豪的公司,也不可能一个域名一台服务器,大多数情况下,都是多个域名业务,共用一台服务器。
那么如果目标网站存在备案,可以查询其备案信息,收集该单位或者个人备案的其他网站域名以及其他子域,然后再进行一轮广域的探测,很有可能其中的某个边缘子域,没有做 CDN,就直接暴露了真实服务器的 IP 地址,然后再进一步验证该 IP 是否也是目标网站的真实 IP 。
找到真实 IP 后如何使用
在获取到真实IP后,通过直接访问IP可能无法访问,那么此时提供2种思路进行解决
通过修改 hosts 文件,将域名和 IP 绑定。(要是不会,不建议阅读此文。)
- 如使用 burpsuite 测试,可以在 Project options ——> Connections ——> Hostname Resolution 中增加域名和 IP 记录。










