批量枚举子域的 DNS 存根解析器

admin 2024年11月15日11:17:11评论15 views字数 2610阅读8分42秒阅读模式
MassDNS 是一个简单的高性能 DNS 存根解析器,针对那些寻求解析大量域的人 名字在数百万甚至数十亿。无需特殊配置,MassDNS 即可解析 每秒 350,000 个名称,使用公开可用的解析器。

批量枚举子域的 DNS 存根解析器
0x01 工具编译

克隆 git 存储库并将其克隆到项目根文件夹中。然后运行以从源代码生成。 如果您不在 Linux 上,请运行 。在Windows上,Cygwin软件包,并且是必需的。

cd /makemake nolinuxgcc-coregit make
0x02 工具使用

1、解析域内域中的所有 AAAA 记录.txt使用 in 和 中的解析器 将结果存储在结果中.txt:resolvers.txt

$ ./bin/massdns -r lists/resolvers.txt -t AAAA domains.txt > results.txt
等同于:

$ ./bin/massdns -r lists/resolvers.txt -t AAAA -w results.txt domains.txt
默认情况下,MassDNS 将以类似于以下内容的文本格式输出响应数据包:

;; Server: 77.41.229.2:53;; Size: 93;; Unix time: 1513458347;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51298;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0;; QUESTION SECTION:example.com. IN A;; ANSWER SECTION:example.com. 45929 IN A 93.184.216.34;; AUTHORITY SECTION:example.com. 24852 IN NS b.iana-servers.net.example.com. 24852 IN NS a.iana-servers.net.
2、PTR 记录

MassDNS 包含一个 Python 脚本,允许您通过将各自的查询打印到标准输出来解析所有 IPv4 PTR 记录。

$ ./scripts/ptr.py | ./bin/massdns -r lists/resolvers.txt -t PTR -w ptr.txt
请注意,内部的标签是相反的。为了解析 的域名,MassDNS 期望作为输入查询名称。 因此,Python 脚本不会按升序解析记录,这是一个优势,因为避免了 IPv4 子网的名称服务器上突然出现严重峰值。

in-addr.arpa1.2.3.44.3.2.1.in-addr.arpa
3、通过暴力强制子域进行侦察

负责任地执行侦测扫描,并调整 -s 参数,以免使权威名称服务器不堪重负。

MassDNS 允许您使用包含的脚本暴力破解子域:subbrute.py

$ ./scripts/subbrute.py lists/names.txt example.com | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt
作为另一种侦测方法,该脚本通过从以下 crt.sh 抓取数据,从证书透明度日志中提取子域: ct.py

$ ./scripts/ct.py example.com | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt
从 subbrute 项目复制的文件 和 包含常用子域的名称。还可以考虑使用Jason Haddix的子域汇编,其中包含超过1,000,000个名称或Assetnote单词列表,其中包含超过9,000,000万个名称。

MassDNS 还在文件夹中包含一个包装脚本(beta 状态),该脚本直接对权威名称服务器执行子域枚举,因此不需要第三方解析器。并发性由 MassDNS 自动确定,支持每秒数十万次查询,同时提供可靠的结果。在廉价的专用服务器上,可以在不到一分钟的时间内枚举资产节点单词列表。当前的限制是区域委派仅在委派点之前进行处理。例如,如果 被枚举并委派给另一个名称服务器,则如果包含在单词列表中,则此脚本将找不到。但是,脚本将报告这一事实,如本例所示。

$ ./scripts/recon.py -d google.com -l lists/best-dns-wordlist.txt > google.txt
0x03 性能调优

MassDNS 是一个简单的单线程应用程序,专为网络是瓶颈的场景而设计。它旨在在具有高上传和下载带宽的服务器上运行。在内部,MassDNS 使用哈希映射来控制查找的并发性。因此,设置 size 参数可以控制查找速率。如果您遇到性能问题,请尝试调整参数以获得更好的成功率。 -s

0x04 限制规避

如果 IPv6 解析器的速率限制存在问题,则可以使用 .然后,MassDNS 将使用原始套接字发送和接收 DNS 数据包,并从每个查询的指定前缀中随机选择一个源 IPv6 地址。这要求 MassDNS 以特权运行。使用此方法时,您应该拥有或删除 MassDNS 接收的 DNS 流量,以便操作系统不会生成 ICMP 响应,例如使用 .请注意,此规则只是检查性的,会丢弃所有 DNS 流量,包括其他应用程序的流量。您可能希望调整规则以更细粒度地适合您的用例。

--rand-src-ipv6 <your_ipv6_prefix>CAP_NET_RAWiptablesnftablesPort unreachableip6tables -p udp --sport 53 -I INPUT -j DROP
0x05 结果真实性

如果结果的真实性非常重要,则不应依赖随附的解析程序列表。相反,设置一个本地未绑定解析器并向 MassDNS 提供其 IP 地址。如果您将 MassDNS 用作侦测工具,您可能希望先使用默认解析器列表运行它,然后使用受信任解析器列表在找到的名称上重新运行它,以消除误报。

如果要枚举单个名称的子域,例如 ,您可能希望省略第三方解析器。在这种情况下,您可以像这样直接探测权威名称服务器:example.com

$ ./bin/massdns -r <(./scripts/auth-addrs.sh example.com) --norecurse -o Je example-com-subdomains.txt > results.txt

获取工具包

https://github.com/blechschmidt/massdns

 

原文始发于微信公众号(白帽学子):批量枚举子域的 DNS 存根解析器

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月15日11:17:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   批量枚举子域的 DNS 存根解析器https://cn-sec.com/archives/1638474.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息