searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

使用 nmap 对 dns 服务进行混沌测试

2024-11-15 09:18:03
7
0

1. nmap 安装:

官网下载安装包后执行安装命令

rpm -ivh nmap-7.93-1.x86_64.rpm

ps:我安装的时候最新版本为 nmap-7.94-1,这个版本需要安装 python3,但是安装好后依旧会报错:python >= 3.0 is needed by nmap-7.94-1.x86_64,查了下是 7.94-1 的 bug,所以改为安装 7.93-1

2. 测试命令

nmap 官网给出了使用示例:

nmap -sU --script dns-fuzz --script-args timelimit=2h <target>

这个命令会先去扫描所有 UDP 端口(使用抓包工具能看到它在往各个端口发 UDP 包),UDP扫描需要等待超时时间,光执行 nmap -sU 就已经非常耗时了。

dns 服务已经确定了使用 53 端口,完全没有必要测试往其他 UDP 端口发送请求的场景。所以命令中加入 -p 53 参数,指定对 53 端口进行测试:

nmap -sU -p 53 --script dns-fuzz --script-args timelimit=2h <target>

3. 测试结果

(1) xml 输出结果示例

nmap -sU -p 53 -oX output.xml --script dns-fuzz --script-args timelimit=60s x.x.x.x

nmap1.jpg

(2) nse 脚本输入结果示例

nmap -sU -p 53 -oN output.txt --script dns-fuzz --script-args timelimit=60s x.x.x.x

nmap2.jpg

4. 优化方向

dns-fuzz 会构造随机的 dns 请求包,但是有点太过于随机了,我认为对 dns 服务的测试存在局限性。nmap 命令中 --script 参数后可以跟自己写的脚本,可以考虑自己对脚本做一些优化。

5. 关于官网提供的 dns-fuzz 脚本

--script dns-fuzz 使用的脚本可以从官网上下载,但是下载后如果文件名保存为 dns-fuzz.nse,使用 --script dns-fuzz.nse 执行命令,会出现这样的错误:Server didn't response to our probe, can't fuzz。从接收请求的 dns 机器上抓包看到请求的是 scanme.nmap.org,dns 服务中没有这个 zone,所以不响应,超时,导致 nmap 端接收到了这样的报错。

同样的代码,名称叫 dns-fuzz.nse 就发送的是 scanme.nmap.org,换个名称发送的就是错误格式的随机域名查询,直接执行 --script dns-fuzz 也是错误格式随机域名。

大致看了下脚本,脚本中的内容也是对 scanme.nmap.org 的查询,目前还不清楚随机域名的机制是什么。

0条评论
作者已关闭评论
姜梦雪
1文章数
0粉丝数
姜梦雪
1 文章 | 0 粉丝
姜梦雪
1文章数
0粉丝数
姜梦雪
1 文章 | 0 粉丝
原创

使用 nmap 对 dns 服务进行混沌测试

2024-11-15 09:18:03
7
0

1. nmap 安装:

官网下载安装包后执行安装命令

rpm -ivh nmap-7.93-1.x86_64.rpm

ps:我安装的时候最新版本为 nmap-7.94-1,这个版本需要安装 python3,但是安装好后依旧会报错:python >= 3.0 is needed by nmap-7.94-1.x86_64,查了下是 7.94-1 的 bug,所以改为安装 7.93-1

2. 测试命令

nmap 官网给出了使用示例:

nmap -sU --script dns-fuzz --script-args timelimit=2h <target>

这个命令会先去扫描所有 UDP 端口(使用抓包工具能看到它在往各个端口发 UDP 包),UDP扫描需要等待超时时间,光执行 nmap -sU 就已经非常耗时了。

dns 服务已经确定了使用 53 端口,完全没有必要测试往其他 UDP 端口发送请求的场景。所以命令中加入 -p 53 参数,指定对 53 端口进行测试:

nmap -sU -p 53 --script dns-fuzz --script-args timelimit=2h <target>

3. 测试结果

(1) xml 输出结果示例

nmap -sU -p 53 -oX output.xml --script dns-fuzz --script-args timelimit=60s x.x.x.x

nmap1.jpg

(2) nse 脚本输入结果示例

nmap -sU -p 53 -oN output.txt --script dns-fuzz --script-args timelimit=60s x.x.x.x

nmap2.jpg

4. 优化方向

dns-fuzz 会构造随机的 dns 请求包,但是有点太过于随机了,我认为对 dns 服务的测试存在局限性。nmap 命令中 --script 参数后可以跟自己写的脚本,可以考虑自己对脚本做一些优化。

5. 关于官网提供的 dns-fuzz 脚本

--script dns-fuzz 使用的脚本可以从官网上下载,但是下载后如果文件名保存为 dns-fuzz.nse,使用 --script dns-fuzz.nse 执行命令,会出现这样的错误:Server didn't response to our probe, can't fuzz。从接收请求的 dns 机器上抓包看到请求的是 scanme.nmap.org,dns 服务中没有这个 zone,所以不响应,超时,导致 nmap 端接收到了这样的报错。

同样的代码,名称叫 dns-fuzz.nse 就发送的是 scanme.nmap.org,换个名称发送的就是错误格式的随机域名查询,直接执行 --script dns-fuzz 也是错误格式随机域名。

大致看了下脚本,脚本中的内容也是对 scanme.nmap.org 的查询,目前还不清楚随机域名的机制是什么。

文章来自个人专栏
CDN技术
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0