一、介绍
dnsenum 是一款用于执行域名枚举和信息收集的开源工具。它主要用于收集与目标域名相关的信息,包括子域名、主机记录、MX 记录等。dnsenum 使用了多种技术和查询方法,通过枚举 DNS 信息,帮助渗透测试人员、安全研究人员和系统管理员更好地了解目标。
以下是 dnsenum 的一些主要特点和用法:
- 子域名枚举: dnsenum 可以通过字典爆破的方式,尝试枚举目标域的子域名。
- 主机记录信息: 工具还可以获取目标域名的主机记录信息,包括各个主机的 IP 地址。
- MX 记录枚举: dnsenum 可以获取目标域名的邮件服务器 (MX) 记录。
- 域名服务器信息: 工具可以收集目标域名的域名服务器信息。
- 区域传输检测: dnsenum 可以检测目标域名是否允许进行 DNS 区域传输,这是一种常见的信息泄露漏洞。
- WHOIS 信息: 工具可以提供目标域名的 WHOIS 信息,包括注册人、注册机构等。
二、安装 dnsenum
Kail Linux 默认安装了 dnsenum,所以只需安装 Kail Linux 即可使用。若没有可以参考下篇文章进行安装
如何在 VM 虚拟机中安装 Kail Linux 2023.4 操作系统保姆级教程(附链接)
https://eclecticism.blog.csdn.net/article/details/135864762
三、使用 dnsenum
3.1 参数详解
# 通用选项: --dnsserver <server> 使用指定的 DNS 服务器进行 A、NS 和 MX 查询。 --enum 等同于 --threads 5 -s 15 -w 的快捷选项。 -h, --help 打印帮助信息。 --noreverse 跳过反向查找操作。 --nocolor 禁用 ANSI 颜色输出。 --private 在文件 domain_ips.txt 的末尾显示并保存私有 IP 地址。 --subfile <file> 将所有有效子域名写入此文件。 -t, --timeout <value> TCP 和 UDP 超时值,以秒为单位(默认为 10 秒)。 --threads <value> 执行不同查询的线程数。 -v, --verbose 详细输出,显示所有进度和错误消息。 # Google 抓取选项: -p, --pages <value> 从 Google 抓取域名时要处理的搜索页面数,默认为 5 页,必须指定 -s 开关。 -s, --scrap <value> 从 Google 抓取的子域名的最大数量(默认为 15)。 # 暴力破解选项: -f, --file <file> 从此文件中读取子域名以执行暴力破解。(优先于默认的 dns.txt) -u, --update <a|g|r|z> 使用有效的子域名更新使用 -f 开关指定的文件。 a (all):使用所有结果进行更新。 g:仅使用 Google 抓取的结果进行更新。 r:仅使用反向查找的结果进行更新。 z:仅使用区域传输的结果进行更新。 -r, --recursion 对子域进行递归,对所有具有 NS 记录的发现的子域进行暴力破解。 # WHOIS 网段选项: -d, --delay <value> 在 whois 查询之间等待的最大秒数,该值被随机定义,默认为 3 秒。 -w, --whois 对 C 类网络范围执行 whois 查询。 警告:这可能生成非常大的网络范围,执行反向查找将花费很长时间。 # 反向查找选项: -e, --exclude <regexp> 从反向查找结果中排除与正则表达式匹配的 PTR 记录,对于无效的主机名非常有用。 # 输出选项: -o --output <file> 以 XML 格式输出。可以导入 MagicTree(www.gremwell.com)。
3.2 入门案例
dnsenum example.com
3.3 指定 DNS 服务器
dnsenum --dnsserver 8.8.8.8 example.com
3.4 Google 抓取
dnsenum -s 10 -p 30 example.com
3.5 暴力破解
dnsenum -f subdomains.txt example.com
3.6 递归破解
dnsenum -r example.com
3.7 Whois 网段查询
dnsenum -w -d 5 example.com
3.8 输出到文件
dnsenum -o output.xml example.com