简介
dnsmap 使用内置或外部扫描域中的常见子域单词列表(如果使用 -w 选项指定)。内部词汇表大约有1000个 英语和西班牙语中的单词为 ns1、firewall servicios 和 smtp。所以将会是可以自动在 example.com 中搜索 smtp.example.com。结果可以保存为 CSV 和人类可读的格式以供进一步处理。dnsmap 不需要 root 权限才能运行,也不应该以这样的权限运行出于安全原因的特权。
dnsmap 最初于 2006 年发布,其灵感来自于虚构的保罗·克雷格的故事 "The Thief No One Saw" (无人看见的小偷),可以在书中找到"Stealing the Network - How to 0wn the Box(窃取网络 - 如何拥有盒子)"。
dnsmap 主要供渗透测试人员在信息获取期间使用基础设施安全评估的收集/枚举阶段。枚举期间 阶段,安全顾问通常会发现目标公司的IP网段、域名、电话号码等。
子域暴力破解是另一种应该在枚举阶段,因为当其他域枚举时它特别有用,诸如区域传输之类的技术不起作用(顺便说一句,我现在很少看到公开允许区域转移)。
可能发生的有趣的事情:
- 寻找有趣的远程访问服务器 (例如:https://extranet.example.com)。
- 查找配置错误和/或未打补丁的服务器 (例如:test.example.com)。
- 寻找可以让您进行映射的新域名目标组织的不明显/难以找到的网络块 (注册表查找 - 又名 whois 是您的朋友)。
- 有时您会发现一些暴力子域解析为内部IP地址(RFC 1918)。这很棒,因为有时它们是真正最新的 "A"记录意味着可以枚举内部服务器仅使用标准 DNS 从 Internet 获取目标组织的信息 解决(例如与区域传输相反)。
- 发现使用动态 DNS 服务配置的嵌入式设备 (例如:IP 摄像机)。此方法是通过以下方式查找设备的替代方法谷歌黑客技术。
该软件包提供了两个可能的命令:dnsmap 和 dnsmap-bulk。
该程序对于渗透测试人员、道德黑客和取证专家非常有用。 它还可以用于安全测试。
构建和安装
要构建和安装,请运行以下命令:
bash
git clone https://github.com/resurrecting-open-source-projects/dnsmap.git
./autogen.sh
./configure
make
make install
#要返回原始源代码,您可以使用"$ make distclean"命令。
Kali Linux系统里面默认已经安装好了。如果没有安装的话可以通过以下命令进行安装。在 Debian 系统上同样也适用。
bash
sudo apt install dnsmap
使用
dnsmap
使用暴力破解技术扫描子域
在终端输入dnsmap可以查看使用帮助。
bash
dnsmap
输入以下命令可以查看详细帮助
bash
man dnsmap
使用 dnsmap 内置单词表对子域名进行暴力破解
bash
dnsmap example.com
使用用户提供的单词表对子域名进行暴力破解
-w <wordlist-file>
使用外部单词表代替内置单词表。您可以使用 crunch 或 cupp 等程序来生成个性化单词表。
bash
dnsmap example.com -w wordlist.txt
使用内置单词表对子域名进行暴力破解并将结果保存到 /tmp
-r <regular-results-file>
将结果保存到纯文本文件。如果未提供文件名,dnsmap 将创建一个包含当前时间戳的唯一文件名。例如:dnsmap_example_com_br_2019_11_15_214812.txt。因此,您可以仅提供目录名称,如 -r /tmp。
bash
dnsmap example.com -r /tmp
使用内置单词表对子域名进行暴力破解的示例,将结果保存到 /tmp/,并在每次请求之间等待随机最长 300 毫秒
-d <delay-millisecs>
连续查询之间的随机延迟限制(以毫秒为单位)。延迟值是最大随机值。例如,如果您输入 1000,则每个 DNS 请求将延迟 *最大* 1 秒。默认情况下,dnsmap 使用 DNS 查找之间的最大延迟值为 10 毫秒。建议在 dnsmap 干扰您的在线体验的情况下使用 -d(以毫秒为单位的延迟)选项。即:切断您的带宽。如果使用,延迟必须介于 1 到 300000 毫秒(5 分钟)之间。
bash
dnsmap example.com -r /tmp/ -d 300
延迟 0.8 秒对子域名进行暴力破解,以常规和 CSV 格式保存结果,过滤 2 个用户提供的 IP 并使用用户提供的单词表
-c <csv-results-file>
将结果以 CSV 格式保存在文件中。如果未提供文件名,dnsmap 将创建类似 dnsmap_example_com_br_2019_11_15_220114.csv 的文件。这与 -r 选项的行为类似。
-i <ips-to-ignore>
在结果中忽略的 IP 地址(如果您获得误报,则很有用)。使用逗号(不带空格)分隔 IP 地址。要过滤的最大 IP 数量为 5。示例:203.0.113.10,198.51.199.65
bash
dnsmap example.com -d 800 -r /tmp/ -c /tmp/ -i 10.55.206.154,10.55.24.100 -w ./wordlist_TLAs.txt
dnsmap-bulk
使用 dnsmap 进行批量扫描
输入dnsmap-bulk查看帮助
bash
dnsmap-bulk
输入以下命令查看dnsmap-bulk的详细帮助
bash
man dnsmap-bulk
以批量方式对目标域列表进行暴力破解,将所有结果保存在目录中
domain-file
包含要扫描的域的文件,每行一个。
results-path
将保存结果的路径。 dnsmap 将使用 -r选项命名文件,并为每个域创建一个文件。此项是可选的,如果不提供,dnsmap 将不会创建文件。
bash
dnsmap-bulk domains.txt /tmp/results/
总结
作为一款强大的 DNS 子域名枚举工具,dnsmap 能够快速发现目标域名的潜在子域,从而为后续的渗透测试提供有效的情报支持。
在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。
欢迎各位大佬,小白来找我交流。