一、介绍
Dnsenum 是一款用于执行域名枚举和信息收集的开源工具。它主要用于收集与目标域名相关的信息,包括主机ip地址、子域名、主机记录、C段、MX 记录等。dnsenum 使用了多种技术和查询方法,通过枚举 DNS 信息,帮助渗透测试人员更好地了解目标。
以下是 dnsenum 的一些主要特点和用法:
- 子域名枚举: dnsenum 可以通过字典爆破的方式,尝试枚举目标域的子域名。
- 主机记录信息: 工具还可以获取目标域名的主机记录信息,包括各个主机的 IP 地址。
- MX 记录枚举: dnsenum 可以获取目标域名的邮件服务器 (MX) 记录。
- 域名服务器信息: 工具可以收集目标域名的域名服务器信息。
- 区域传输检测: dnsenum 可以检测目标域名是否允许进行 DNS 区域传输,这是一种常见的信息泄露漏洞。
- WHOIS 信息: 工具可以提供目标域名的 WHOIS 信息,包括注册人、注册机构等。
二、实操
1、使用dnsenum -【选项】域名
2、dnsenum -enum xxx.com
2.1详解dnsenum -enum xxx.com
(1)域名主机ip发现
(2)主机dns服务器发现
(3)邮箱服务器发现
(4)区域传输,利用主机名称服务器进行获取数据【子域名等】
2.2暴力破解
dnsenum -f /usr/share/dnsenum/dns.txt xxx.com //进行字典爆破
(1)子域名收集
(2)C段分析
2.3 Whois 网段查询
dnsenum -w -d 5 example.com
3.3 指定 DNS 服务器
使用公用的DNS服务器,更快更安全,防止自己主机的DNS服务器被攻击攻击,进行域名重定向
dnsenum --dnsserver example.com
3.4 输出到文件
dnsenum -o output.xml example.com
三、dnsenum参数详解
# 通用选项:
--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)。