简介 🪶
dnsx 是一个由 ProjectDiscovery 构建的快速且多用途的 DNS 工具包,专为通过 retryabledns 库进行各种探测而设计。这个工具特别适合需要高效处理大量 DNS 请求的场景。dnsx 支持多种 DNS 查询,包括 A、AAAA、CNAME、PTR、NS、MX、TXT、SRV 和 SOA 等记录的查询。此外,它还支持 DNS 解析和暴力破解功能,允许用户自定义输入解析器,并具有对多种解析器格式(如 TCP、UDP、DOH、DOT)的支持。
核心功能
多种 DNS 查询支持:除了常用的 A 和 AAAA 记录,dnsx 还支持 CNAME、PTR、NS、MX、TXT 等多种 DNS 记录查询。 自定义解析器支持:用户可以指定自定义 DNS 解析器以进行查询,大大提高了工具的灵活性。 DNS 扫描和暴力破解:支持对一个域名或域名列表进行 DNS 查询和子域名暴力破解,以发现更多潜在的网络资产。 自动通配符处理:dnsx 能够智能识别和处理具有多级 DNS 通配符的域,以减少垃圾数据的输出。
安装 🍂
1. 使用 Go 语言安装
dnsx
可以通过 Go 语言工具安装,只需执行以下命令:go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
注意: 安装
dnsx
需要最新版本的 Go。确保你的 Go 版本是最新的,否则请先更新 Go。要确保 Go 的 bin 路径在系统 PATH 中,请在终端中执行以下命令(适用于 macOS 或 Linux):
echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bashrc source $HOME/.bashrc
对于 Windows 系统,建议参考相关的指南来更新系统 PATH。
2. 使用 Homebrew 安装 (适用于 macOS)
brew tap projectdiscovery/tap brew install projectdiscovery/tap/dnsx
3. 使用 Docker 安装
如果你使用 Docker,则可以通过以下命令运行
dnsx
:docker pull projectdiscovery/dnsx:latest docker run projectdiscovery/dnsx:latest
4. 通过预编译二进制文件安装
你也可以从 GitHub 发布页面 下载适合你操作系统的预编译二进制文件,然后根据说明进行安装和配置。
使用 🌿
使用 dnsx
dnsx
提供了一系列强大而灵活的功能,以下是一些常见的命令和用例:
查询 A 记录 可以通过以下命令查询某个域名的 A 记录:
echo 'example.com' | dnsx -a
Bruteforce 子域名 使用单词列表进行子域名暴力破解:
dnsx -d example.com -w wordlist.txt
DNS 响应筛选 根据状态码筛选 DNS 响应:
echo 'example.com' | dnsx -rcode noerror
输出选项 将结果输出到文件中:
echo 'example.com' | dnsx -o output.txt
案例 1: DNS 解析
在进行渗透测试时,了解目标域名的解析信息是非常重要的一步。dnsx 可以帮助轻松获取目标域名及其子域名的 A 记录信息。
例如,我们可以通过以下命令从
hackerone.com
的子域列表中筛选出所有活动的主机名:subfinder -silent -d hackerone.com | dnsx -silent
该命令将利用 subfinder 工具寻找被动子域,并通过 dnsx 对其解析,以获得活跃的子域。
案例 2: 提取特定 DNS 记录
dnsx 可以根据需求提取多种类型的 DNS 记录。以下示例展示了如何获取
hackerone.com
的子域的 A 记录:subfinder -silent -d hackerone.com | dnsx -silent -a -resp
该命令将打印每个子域的 A 记录响应,包括主机名及其对应的 IP 地址。
此外,如果只想提取 IP 信息,可以使用
-resp-only
标志:subfinder -silent -d hackerone.com | dnsx -silent -a -resp-only
案例 3: DNS 暴力破解
dnsx 支持 DNS 暴力破解。通过 wordlist(字典)配合
-w
标志,用户可以对目标域名进行子域名爆破:dnsx -silent -d facebook.com -w dns_worldlist.txt
该命令将利用提供的字典文件
dns_worldlist.txt
,对facebook.com
进行子域爆破,挖掘可能存在的子域。案例 4: 使用通配符过滤
在面对多级 DNS 通配符时,dnsx 提供的功能可以有效减少请求数量。在处理某些情况时,您可能会遇到所有子域名都被解析的情况,这会产生大量垃圾输出。dnsx 通过跟踪指向 IP 的子域数量,如果数量超过某一阈值,会迭代地检查所有级别的主机以过滤掉通配符条目:
dnsx -l subdomain_list.txt -wd airbnb.com -o output.txt
参考链接 🌲
github.com/projectdiscovery/dnsx
https://docs.projectdiscovery.io/tools/dnsx/overview
原文始发于微信公众号(人遁安全):dnsx工具包详解:快速处理DNS请求,助力网络安全测试
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论