文章总结: 本文介绍了DNS子域名枚举工具dnsmap的安装与使用。通过安装EPEL仓库部署工具,演示了结合SecLists字典扫描目标域名以发现子域名和IP的过程。文章详细讲解了设置线程数、查询延迟及结果保存的参数配置,旨在辅助渗透测试信息收集阶段高效梳理网络资产。 综合评分: 82 文章分类: 渗透测试,WEB安全,安全工具
Dnsmap安装及基本用法
原创
dcnb dcnb
Web安全基础与实践
2026年1月30日 20:30 广东
dnsmap是一款轻量型 DNS 子域名枚举工具,主要用于探测目标域名下的子域名及对应的 IP 地址。它通过字典暴力枚举的方式,尝试匹配目标域名下的子域名,并返回这些子域名对应的 IP,帮助梳理目标的网络资产范围。因此,常被安全人员用于渗透测试的信息收集阶段。
1、安装
以下内容以CentOS7攻击机扫描Windows7靶机为例进行演示。
进入到Linnux系统后,首先需要安装EPEL仓库:
yum install epel-release -y
EPEL (Extra Packages for Enterprise Linux)中包含了很多CentOS 默认仓库中没有的额外软件包,dnsmap就在其中,具体如图1所示。
图1 安装EPEL
当出现“lastes version”则代表EPEL安装成功。
接着,开始安装dnsmap:(其中,-y的作用是自动将交互式回答定为“yes”,避免了手动输入和回车确认的操作)
yum install dnsmap -y
返回的结果如图2所示,当观察到“comlete!”字样,则说明安装成功。
图2 安装dnsmap
另外,可以查看dnsmap的版本号以检查是否安装成功。当出现版本号,则证明dnsmap成功安装,具体如图3所示。
dns --help
图3 验证dnsmap是否安装
2、常用操作
基本语法:
dnsmap <目标域名> [选项]
其中,选项的具体内容如表1所示。
表1 选项的具体内容
| | | |
| — | — | — |
| 选项 | 含义 | 示例 |
| -w <文件路径> | 使用自定义字典文件 | -w/path/to/wordlist.txt |
| -r
2.1 下载查找字典
Dnsmap需要根据所给字典进行搜索子域名,当没有指定字典所在文件路径时,Dnsmap默认使用内置的字典进行扫描。Dnsmap内置字典有约1000个关键词,是 “轻量级基础库”,由于其词汇不再进行更新,我们在渗透测试中常常自定义查找字典。这里我们给出渗透测试时常用的查找字典:
Git clone https://github.com/danielmiessler/SecLists.git
稍等片刻,当观察到“checking out files”步骤完成时,则字典SecLists已经完成安装,成功创建了SecLists文件夹,具体如图4所示。
图4 下载SecLists字典
我们也可以观察是否成功进入SecLists文件夹来判断是否安装成功。
cd SecLists
输入上述代码段,观察到成功进入到SecLists文件夹,因此该字典下载成功,如图5所示。
图5 验证SecLists字典是否成功安装
2.2 搜索指定域名的子域名
为了使用我们下载的SecLists字典,我们需要先进入到其所在的目录下,具体如图6所示。
图6 进入SecLists所在的文件夹
当进入到SecLists所在的文件夹后,我们开始扫描指定域名下的子域名。这里我们以github.com作为例子。输入以下内容:
dnsmap github.com -w subdomains-top1million-5000.txt
其中,subdomains-top1million-5000.txt是SecLists 字典库中最常用的子域名字典之一,它包含了出现频率最高的前 5000 个子域名关键词(比如admin、mail、api、dev等)。使用这个字典,能够明显提高查找速率和命中率。等待片刻后,开始出现查找到的子域名,如图7所示。可以观察到,输出的结果都以“子域名+IP地址”的形式出现。
图7 查找到的子域名(部分)
2.3 设置扫描线程数
为了避免目标域名的权威DNS 服务器判定为恶意高频请求,导致所有请求被拒绝,我们需要降低扫描线程数;为了提高扫描速率,我们可以提高线程数。线程数推荐在8-16之间,过高还会导致本地网络 / ISP 拦截高频 DNS 请求,出现超时、重试,反而大幅降低扫描效率。其中,设置扫描线程数的格式如下:
-r <threads> #threads为用户设置的线程数
我们可以输入以下代码块,可以明显观察到回显的速度变快。
dnsmap github.com -w subdomains-top1million-5000.txt -r 8
2.4 设置延迟参数
在dnsmap扫描过程中,设置不同的延迟参数能够有效避免被目标域名的权威 DNS 服务器或本地网络运营商判定为 恶意高频请求,因此经常被使用于扫描的过程中。一般格式如下:
dnsmap <目标域名> -w <字典路径> -d <延迟数值> -o <结果文件名>
当输入“-d 50”时,表示每发送一次子域名查询请求后,等待 50 毫秒再发送下一次请求。
2.5 保存搜索到的子域名
为了方便查阅,我们通常将扫描到的子域名保存为.txt文件进行查看,因此,我们用“–o
dnsmap github.com -w subdomains-top1million-5000.txt -d 10 -r result.txt
输入上述内容后,则会将扫描到的子域名保存在“SecLists/Discovery/DNS”路径下、名为“result.txt”的文件中,扫描过程如图8所示。
图8 扫描到的子域名
可以输入“ls”,以查看“result.txt”文件是否存在,如图9所示。
图9 检查result.txt是否创建
可以看到,在当前路径下,result.txt文件存在,说明dnsmap已经创建了.txt文件,并且将扫描到的子域名保存至其中。
输入以下内容,查看.txt文件中含有的子域名:
cat result.txt
文本文件包含的内容如图10所示。可以看到,文本文件包含的内容与图8扫描到的内容一致。
图10 result.txt包含的内容
本文由周俊旭同学投稿。
- END –
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Web安全基础与实践 dcnb dcnb《Dnsmap安装及基本用法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论