关注这个专栏的其他相关笔记:[Web 安全] Web 安全攻防 - 学习手册-CSDN博客
0x01:信息收集 —— 域名联系人信息
当我们知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,包括该域名的 DNS 服务器信息和注册人的联系信息等。常用的信息收集方法有以下几种:
为什么要知道域名联系人信息?
A:对于中小型站点而言,域名的所有人往往就是管理员,这对于我们后期做爆破字典很有用。
0x0101:Whois 查询
Whois 是一个标准的互联网协议,可以用来收集网络注册信息:注册的域名、IP 地址等信息。简单而言,Whois 就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商)
知识拓展:Whois
当我们申请域名的时候会填写一份表单,即什么人申请了什么域名,这份表单会存放在管理对应域名的服务商那里,whois 就是用来查这份表单的。
比如:.com 域名是由域名运营商 VeriSign 管理,.cn 域名是由 CNNIC 管理。
本地工具 Kali 系统中,Whois 已经默认安装,只需要输入要查询的域名即可,如下图:
whois [OPTION] ... OBJECT ... # whois 使用方法
在线工具
站长工具_whois查询工具_爱站网
域名Whois查询 - 站长工具
域名whois查询工具,在线网站域名whois查询工具 - 在线工具-wetools.com微工具
whois
0x0102:备案信息查询
网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部分申请的备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生。该备案主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案。
知识拓展:
网站备案 如下图,假设 www.baidu.com 在国内搭建了网站,它除了需要配置 DNS,将 www.baidu.com 和 220.181.38.148 这个 IP 建立映射关系外,还需要去国家 ICP 部门进行备案,不然即使配置了 DNS,别人也无法通过域名访问它提供的服务:
一个人只有一个备案号,如果有多个网站,就在备案号后添加 -1、-2 这种标识。所以我们可以通过拿到备案号,来查看该备案号备案了哪些网站(扩大攻击面):
在线工具
域名备案查询_备案查询_网站ICP备案查询 - 站长工具
网站备案查询_icp备案查询_域名备案查询--查ICP备案网
ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴
https://beian.miit.gov.cn/#/Integrated/recordQuery
0x0103:企业信息库查询
通过企业信息库,我们可以很方便的定位这个域名属于哪个公司。知道了公司名称之后,我们还可以利用企业信息库查询与该公司关联的其他的子公司,或者该公司的一些产品材料的供应商。
在渗透时,如果无法从总公司入手,不妨从它下面的子公司入手,采用 “供应链攻击” 的技术进行渗透。
在线工具
企查查 - 查企业_查老板_查风险_企业信息查询系统
百度安全验证
天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统
https://www.gsxt.gov.cn/index.html
0x02:信息收集 —— 域名信息收集
0x0201:域名反查
域名反查,即利用已知情报,比如目标网站管理员的姓名、邮箱、电话等信息,反查出它还注册了哪些域名。这个是用来扩展攻击面的,如下图:
在线工具
域名反查_邮箱反查域名_邮箱Whois反查 - 站长工具
站长工具_whois查询工具_爱站网
域名whois查询 – 站长工具
0x0202:证书透明度
在某些情况下,人为错误或假冒行为可能会导致误发证书。证书透明度 (CT) 改变了签发流程,新流程规定:证书必须记录到可公开验证、不可篡改且只能附加内容的日志中,用户的网络浏览器才会将其视为有效。 通过要求将证书记录到这些公开的 CT 日志中,任何感兴趣的相关方都可以查看由授权中心签发的所有证书。借助该体系, 我们可以检测被证书授权中心误发的 SSL 证书,以及发现已失常并恶意签发证书的证书授权中心。这可促使授权中心在签发证书时更加负责,从而有助于形成一个更可靠的系统。
在线工具
crt.sh | Certificate Search
Certificate Transparency Search API by SSLMate
https://ui.ctsearch.entrust.com/ui/ctsearchui
0x03:信息收集 —— 子域名信息收集
一般而言,一个子域名代表了一项业务接口(比如 map.baidu.com(百度地图)
、news.baidu.com(百度新闻)
),所以收集子域名可以扩大我们的攻击面。子域名的收集主要有以下三种方式:
-
字典猜解:将常见的子域名做成字典,与对方的域名拼接,来尝试获取目标子域名。
-
暴力枚举:枚举子域名每位字符的所有可能,效率比字典要低,但会更全面。
-
爬虫爬取:通过爬虫技术爬取目标站点内的链接,再提取链接内的子域名、域名信息。
本地工具
字典猜解 — Layer 子域名挖掘机
字典猜解 — subDomainsBrute
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 地址 |
本地工具
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/