woieha320r的博客

域名

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向我进行域传输:

        1. nsDns = host -t ns xxx.com
        1. nsDnsIp = host -t a “nsDns”
        1. host -t axfr xxx.com “nsDnsIp”
  • 找线索

    • 网页上本来就有的旁站入口

    • 代码中的链接、注释

  • 通过字典暴力猜测子域名并向DNS验证(对泛解析的处理、字典的处理和包含度参考(https://security.tencent.com/index.php/blog/msg/161