freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

MassDNS:一款功能强大的高性能DNS子域名查询枚举侦察工具
Alpha_h4ck 2020-02-12 15:00:41 462592

MassDNS是一款功能强大的高性能DNS stub解析工具,它可以帮助研究人员解析数百万甚至上亿个域名。在没有特殊配置的情况下,MassDNS可以利用公共可用的解析器每秒钟解析超过350000个域名。

项目编译

首先,使用下列命令将MassDNS源码克隆至本地目录中:

git clone https://github.com/blechschmidt/massdns.git

使用cd命令切换到本地项目目录中:

cd massdns

接下来,运行"make"命令构建源码。

如果你使用的不是Linux操作系统,那么则需要运行下列命令:

make nolinux

在Windows平台下,你还需要安装Cygwin包、gcc-core、git和make。

工具使用

Usage: ./bin/massdns [options] [domainlist]

  -b  --bindto           Bind to IP address and port. (Default: 0.0.0.0:0)

      --busy-poll        Use busy-wait polling instead of epoll.

  -c  --resolve-count    Number of resolves for a name before giving up. (Default: 50)

      --drop-group       Group to drop privileges to when running as root. (Default: nogroup)

      --drop-user        User to drop privileges to when running as root. (Default: nobody)

      --flush            Flush the output file whenever a response was received.

  -h  --help             Show this help.

  -i  --interval         Interval in milliseconds to wait between multiple resolves of the same

                         domain. (Default: 500)

  -l  --error-log        Error log file path. (Default: /dev/stderr)

      --norecurse        Use non-recursive queries. Useful for DNS cache snooping.

  -o  --output           Flags for output formatting.

      --predictable      Use resolvers incrementally. Useful for resolver tests.

      --processes        Number of processes to be used for resolving. (Default: 1)

  -q  --quiet            Quiet mode.

      --rcvbuf           Size of the receive buffer in bytes.

      --retry            Unacceptable DNS response codes. (Default: REFUSED)

  -r  --resolvers        Text file containing DNS resolvers.

      --root             Do not drop privileges when running as root. Not recommended.

  -s  --hashmap-size     Number of concurrent lookups. (Default: 10000)

      --sndbuf           Size of the send buffer in bytes.

      --sticky           Do not switch the resolver when retrying.

      --socket-count     Socket count per process. (Default: 1)

  -t  --type             Record type to be resolved. (Default: A)

      --verify-ip        Verify IP addresses of incoming replies.

  -w  --outfile          Write to the specified output file instead of standard output.

Output flags:

  S - simple text output

  F - full text output

  B - binary output

  J - ndjson output

如果你需要查看更详细的操作选项以及帮助手册(尤其是输出格式),你可以使用“--help”命令。

工具使用样例

解析目标域名(位于lists的resolvers.txt中)的AAAA记录,并将结果存储至result.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.

输出结果包含了解析的IP地址,可以帮助我们轻松对输出结果进行过滤。

数据解析

代码库中包含了一个名为resolvers.txt的文件,其中包含了一套有subbrute项目提供的已过滤的解析器子集。请注意,MassDNS的使用可能会提升系统/网络负载,因为需要加载大量解析器,具体将取决于你的ISP。

MassDNS的DNS解析实现目前还不完整,只支持最常见的一些记录类型。欢迎您通过代码贡献来帮助改变这种状况。

PTR记录

MassDNS包含了一个Python脚本,允许我们解析所有的IPv4 PTR记录:

$ ./scripts/ptr.py | ./bin/massdns -r lists/resolvers.txt -t PTR -w ptr.txt

请注意,in-addr.arpa中的标签会被反转。为了解析域名为1.2.3.4的地址,MassDNS将需要以“4.3.2.1.in-addr.arpa”的方式来作为输入查询名称。此时,Python脚本并不会按升序解析记录,这样可以避免在IP v4子网的域名服务器上突然出现的负载激增。

网络侦察&爆破子域名

注意:请不要随意使用该工具,适当调整-s参数以避免给权威域名服务器造成负载压力。

subbrute类似,MassDNS允许我们使用subbrute.py脚本来对子域名进行爆破枚举:

$ ./scripts/subbrute.py lists/names.txt example.com | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt

作为一种额外的网络侦察手段,ct.py脚本可以从crt.sh中抓取数据,并从证书透明日志中提取子域名:

$ ./scripts/ct.py example.com | ./bin/massdns -r lists/resolvers.txt -t A -o S -w results.txt

工具运行截图

安全性

MassDNS的运行不需要Root权限, 我们建议用户以非特权用户的身份运行MassDNS。除此之外,我们不建议大家使用“--root”参数来运行。另外,除了Master以外的其他分支不适用于生产环境。

项目地址

MassDNS:【GitHub传送门

* 参考来源:blechschmidt,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


# windows # 子域名 # MassDNS
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
冷兵器
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录