域名
DNS
· n IP <-> n 域名,购买域名买的是二级域名(xxx.com),可自由编造多级域名创建多条“IP <-> 域名 绑定记录”(www.xxx.com、a.b.c.xxx.com)。
· 浏览器将域名转为IP的过程:查询本机hosts文件,没有的话询问ISP提供的LDNS,此后的工作由LDNS负责直至得到IP地址返回给浏览器或无结果。LDNS没有的 话,它首先询问根DNS,递归式的询问被问者返回的NS记录中指定的DNS,期间也会处理CNAME别名,直到拿到A记录。LDNS可以拿到n个A记录,它根据算法得出一个 IP返回给浏览器使用。
· 权威DNS也许是自家的也许是云厂商的,可能还负责CDN和WAF。
报文Type的含义
Type取值 | 样例 | 含义 |
---|---|---|
A | xxx.com. IN A | x.x.x.x xxx.com的IPv4地址是x.x.x.x |
AAAA | xxx.com. IN AAAA | X:X:X:X:X:X:X:X xxx.com的IPv6地址是X:X:X:X:X:X:X:X |
CNAME | test1.xxx.com. IN CNAME test.xxx.com. | test1.xxx.com是test.xxx.com的别名 |
MX | xm.com. IN MX 10 mail.xxx.com. | 发送给@xm.com的邮件,收件人邮件服务器域名是mail.xxx.com,优先级为10 |
NS | xxx.com. IN NS ns1.xxx.com. | xxx.com这个域名由ns1.xxx.com这个DNS负责解析 |
SOA | 指定域名的众多NS记录中,哪个DNS是最佳数据来源 | |
TXT | xxx.com. IN TXT “备注说明” | xxx.com的备注说明 |
TXT的SPF应用 | xxx.com. IN TXT “v=spf1 include:mail.xxx.com -all” | 一种写给收件服务器看的判定规则,防止他人伪装成我的邮箱服务器发邮件 |
AXFR | 从DNS向主DNS索要指定域名的全部记录,用于备份容灾 | |
SRV | 类似A,但同时还指定了端口、提供的协议、优先级、权重,如何解读取决于客户端 | |
PTR | DNS返回指定IP绑定的域名列表,用于垃圾邮件过滤,需要主动配置 |
常见问题
-
泛解析
-
A记录的子域名为*:*.xxx.com.,任何子域名都会被解析到这条A记录的IP地址池中
-
编造几个不大可能存在的域名host解析,如果结果相同,可能是泛解析
-
-
将用户导向错误的站点
-
DNS查询是UDP包,在真正的DNS响应目标机前,抢先向目标机响应编造的应答,目标机只认第一个结果。
-
篡改DNS缓存。
-
篡改目标机的hosts文件。
-
-
指定域名是否被DNS抢答污染了
-
向一个非DNS服务的IP地址查询目标域名,若立即返回了错误结果,则目标域名已被抢答污染。
-
例如:host www.google.com 114.124.224.114
-
-
域名信息查询工具
-
whois:查询 域名托管者和持有者信息
-
host、dig、nslookup:都是用来与DNS交互的,nslookup旨在以交互方式与DNS通信,已废弃。host输出比dig简洁,且会查询hosts文件(⚠️我咋没 试出来它访问hosts文件)。
-
子域名收集
-
证书透明度项目
-
ICP备案号/主办单位 查询后反查(仅适用大陆境内服务器
-
站点向搜索引擎或爬虫声明的策略文件
- /crossdomain.xml、/robots.txt、/sitemap.xml、/sitemap.txt、/sitemapindex.html
-
响应头
- Content-Security-Policy的*-src字段、Access-Control-Allow-Origin字段
-
搜索引擎(高级语法,不断排除已知子域名
-
google(搜索条件上限32个且有人机验证):site:xxx.com -www.xxx.com -test.xxx.com
-
bing(搜索条件有字符数限制):domain:xxx.com -domain:www.xxx.com -domain:test.xxx.com
-
-
从域名供应商处查询已被注册的同二级域名的其他顶级域(不一定就是同一家公司的
-
查询DNS获得信息
-
枚举srv记录:nmap –script dns-srv-enum.nse –script-args “dns-srv-enum.domain=‘xxx.com’”
-
是否是一个指向其他域名的别名:host -t cname xxx.com
-
查询邮件服务器地址:host -t mx xxx.com
-
查询用于解析目标域名的DNS:host -t ns xxx.com
-
查询众多NS记录的主DNS:host -t soa xxx.com
-
查询txt记录:host -t txt xxx.com
-
要求NS记录中的DNS向我进行域传输:
-
- nsDns = host -t ns xxx.com
-
- nsDnsIp = host -t a “nsDns”
-
- host -t axfr xxx.com “nsDnsIp”
-
-
-
找线索
-
网页上本来就有的旁站入口
-
代码中的链接、注释
-
-
通过字典暴力猜测子域名并向DNS验证(对泛解析的处理、字典的处理和包含度参考(https://security.tencent.com/index.php/blog/msg/161
-
(dnsenum、dnsrecon、fierce的使用:https://www.freesion.com/article/67901540078/)