[Web 安全] Web 信息收集 —— 域名信息收集
🌟 想系统化学习 Web 渗透?看看这个:[Web 安全] Web 安全攻防 · 学习手册
在前面的章节中,笔者介绍了自己的信息收集框架,以及 “企业信息收集” 关注点 & 具体方法,那么本章我们就来到了进一步的 “域名信息收集” 阶段了。
0x01:域名信息收集 — 关注点 & 意义
在域名信息收集阶段我们比较关注以下几个问题:
-
域名的归属: 即我们要打的域名属于哪个企业或者哪个人。
-
域名的衍生: 即从该域名下衍生出了多少的子域名。
-
域名的解析: 域名只是一个名字,它终归还是要解析到一个固定的 IP(真实存在的设备)。
0x02:域名的归属 — 回溯至 “企业信息收集”
虽然从整体上来看,我们信息收集讲究的是层次递进,但其实在实战中,我们信息收集大概率是混乱的,即你可能先拿到的就只是一个域名,那么此时我们第一件事是不是就是回溯呀(当然有些 SRC 规定了只能挖某些域名的站点,此时我们就可以少回溯一点了)。
0x0201:ICP 备案查询回溯
网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部分申请的备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生。该备案主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案。
知识拓展:网站备案
如下图,假设 www.baidu.com 在国内搭建了网站,它除了需要配置 DNS,将 www.baidu.com 和 220.181.38.148 这个 IP 建立映射关系外,还需要去国家 ICP 部门进行备案,不然即使配置了 DNS,别人也无法通过域名访问它提供的服务:
一个人只有一个备案号,如果有多个网站,就在备案号后添加 -1、-2 这种标识。所以我们可以通过拿到备案号,来查看该备案号备案了哪些网站(扩大攻击面):
在线工具
域名备案查询_备案查询_网站ICP备案查询 - 站长工具
网站备案查询_icp备案查询_域名备案查询--查ICP备案网
https://beian.miit.gov.cn/#/Integrated/recordQuery
这个在企业那章已经讲过了,以 baidu.com 为例,一下子就查到了归属企业(然后再走一遍 “企业信息收集”):
另外,对于一些中小型站点(主办单位性质位 “个人”),域名的所有人通常就是它的管理员。那么我们如果能通过域名查找到它的域名联系人信息,是不是就大概率找到了管理员了,然后我们是不是能尝试收集域名管理员信息生成社工字典?
拓展阅读 🚀:什么是 ICP 备案?ICP 备案的操作流程是什么?
0x0202:Whois 查询回溯
Whois 是一个标准的互联网协议,可以用来收集网络注册信息:注册的域名、IP 地址等信息。简单而言,Whois 就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(里面包含域名所有人、域名注册商)。
当我们申请域名的时候会填写一份表单,即什么人申请了什么域名,这份表单会存放在管理对应域名的服务商那里,whois 就是用来查这份表单的。 比如:.com 域名是由域名运营商 VeriSign 管理,.cn 域名是由 CNNIC 管理。
1. Whois 查询 — 本地工具
在 Kali Linux 系统中,Whois 是已经默认安装了的,我们只要输入想要查询的域名即可,使用方法如下:
whois <根域名> # whois 使用方法
2. Whois 查询 — 在线工具
除了上面提供的本地工具外,其实还有一堆在线站点提供 Whois 查询:
-
站长工具_whois查询工具_爱站网
-
域名Whois查询 - 站长工具
-
域名whois查询工具,在线网站域名whois查询工具 - 在线工具-wetools.com微工具
-
whois
0x0203:企业信息库回溯
企业信息收集
天眼查:天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统
企查查:企查查 - 查企业_查老板_查风险_企业信息查询系统
爱企查:百度安全验证
国家企业信用公示系统:https://www.gsxt.gov.cn/index.html
通过企业信息库,我们可以很方便的定位这个域名属于哪个公司。知道了公司名称之后,我们还可以利用企业信息库查询与该公司关联的其他的子公司,或者该公司的一些产品材料的供应商。
在渗透时,如果无法从总公司入手,不妨从它下面的子公司入手,采用 “供应链攻击” 的技术进行渗透(这个我们在 “企业信息收集” 那一章中也讲过了):
反过来也是,别忘了去看看当前域名所属公司是否是某个公司的附属公司。
0x03:域名的衍生 — 子域名信息收集
一般而言,一个子域名代表了一项业务接口(比如 map.baidu.com(百度地图)
、news.baidu.com(百度新闻)
),所以收集子域名可以扩大我们的攻击面。子域名的收集主要有以下三种方式:
-
字典猜解:将常见的子域名做成字典,与对方的域名拼接,来尝试获取目标子域名。
-
暴力枚举:枚举子域名每位字符的所有可能,效率比字典要低,但会更全面。
-
爬虫爬取:通过爬虫技术爬取目标站点内的链接,再提取链接内的子域名、域名信息。
方法都给你了,是不是还想要工具?自己去找哦,才不给你嘞(我们就是讲讲逻辑的,这种工具一搜一大把,笔者推出的 “网安工具合集” 里会包含一堆这种工具,自己去看哈)。
另外,别以为只有 map.baidu.com
这种三级域名,其实还有 a.map.baidu.com
这种四级域名,建议爆破的时候自己也去试试。
在使用字典爆破的时候我们还需要注意一下域名的泛化问题,即你随便访问一个域名比如 assdkl.baidu.com 完了结果显示解析成功。你觉得有可能嘛。是有可能但是还有一个可能就是它们做了域名得泛化,即你要是输入了不在它们解析范围内的域名,它都会给你跳到一个固定的 IP 地址。
0x04:域名的解析 — 域名解析信息收集
域名解析信息,即 DNS 服务器的配置信息。用户在购买了域名之后,需要去对应的服务商那里填写一张表,将自己的域名与服务器的 IP 地址关联起来。只有这样,在其它用户输入域名时,才能访问到你的那台服务器。
以下是 DNS 解析记录的常见配置项:
主机记录 | 记录类型 | 记录值 | 解释 |
---|---|---|---|
@ | NS | f1g1ns2.dnspod.net | NS 域名服务器记录,可将指定域名交由其他 DNS 服务商解析管理。@ 代表所有的域名 |
@ | A | 123.123.123.123 | A 记录是最常用的类型,即将该域名解析到的 IPv4 地址 |
@ | MX | mxdomain.qq.com | MX 用于邮件服务器,相关参数一般由邮件注册商提供,比如 blue17@qq.com,这个 qq.com 就是使用 MX 记录告诉邮件服务,这个用户应该到哪个邮件服务器去查找,上面自然是去 qq.com 这个域名里 MX 对应的服务商那里去找。 |
www | A | 123.123.123.123 | 主机记录为 www,这个配置的是一个子域名的解析记录,即当访问 www. 域名 时,解析到 123.123.123.123 这个 IP |
@ | TXT | daksjdaljd-asdajdla | TXT 记录可添加附加文本信息,常用于域名验证(这个域名是你的) |
@ | CNAME | amazon.cn | 将域名指向另一个域名地址,与其保持相同解析。比如你将 CNAME 值设为 amazon.cn,你当前的域名为 z.cn,当用户输入 z.cn 后,就会跳转到 amazon.cn 的地址。 |
@ | AAAA | ff06:0:0:0:0:0:0:c3 | 将域名指向一个 IPv6 地址 |
通过上面的域名解析配置表相信你应该可以看出来,一个域名可以解析到多个 IP 地址,我可以 www.baidu.com
解析到一个,完了 map.baidu.com
又解析到一个 IP 地址。
本节只是做个基础的域名解析信息收集,在下一章的 IP 信息收集我们会去着重了解如何根据一个子域名查找到其解析的 IP(涉及了 CDN 的绕过,值得单开一章):
本地工具
host xxx.xx - 参考链接:host命令详解-CSDN博客
host 命令是一个用于解析域名结果的简单程序,可以将域名转换成 IP 形式。通过设置 -t 参数,可以指定要查询的记录类型,其示例如下:
dig xxx.xx - 参考链接:dig命令的常见用法详解_dig使用方法-CSDN博客
dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。虽然通常情况下 dig 使用命令行参数,但它也可以按批处理模式从文件读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的所有服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。
其使用示例如下:
在线工具
在线域名解析记录检测-在线Nslookup域名解析查询工具
https://sitereport.netcraft.com/