利用DNS的ECS功能获取IP地址

ECS(EDNS-Client-Subnet)是DNS服务支持的新协议。该协议会在DNS请求包中附加请求域名解析的用户IP地址。这样,DNS服务器就可以根据该地址返回用户更容易访问的服务器IP地址。该技术广泛应用于CDN应用中。Nmap的dns-client-subnet-scan脚本利用该协议,通过提交不同的IP地址,获取指定域名所有的IP地址。

实施DNS Fuzzing攻击

模糊测试Fuzzing是一种常用的识别软件设计缺陷和安全漏洞的方法。对于DNS服务器,攻击者可以构建符合DNS协议的数据包,但其中数据是任意伪造,甚至是错误的。如果DNS服务不能正常处理,就会导致服务无响应,甚至崩溃。DNS的dns-fuzz脚本可以实施DNS Fuzzing,并允许用户设置攻击时长。

利用DNS PTR记录扫描IPv6网络

相比IPv4,IPv6网络具有更大的地址范围。为了快速搜索IP地址,很多网络借助DNS的ARPA记录模式,进行地址规划。同一个网络的主机使用相同的DNS PTR记录作为IP前缀。通过固定IP前缀,就可以快速扫描该网络的主机。Nmap的dns-ip6-arpa脚本利用这种方式,对指定IPv6前缀的网络进行扫描,发现网络内的所有主机。

测试DNS区域配置

通常一个DNS服务器会解析多个域名。为了方便管理,服务器会将为每个域名设置一个区域Zone。该区域名中包含该域名的正向解析和反向解析信息。Nnap的dns-check-zone脚本可以探测指定域名对应的区域设置,如刷新时间、过期时间等。这些信息会按照DNS记录类型进行分别测试和输出。

判断DNS服务是否启用缓存功能

DNS服务器为了加快域名解析,往往会启用缓存功能,将用户请求过的域名解析信息保存起来。当用户下一次请求,就可以直接从缓存中获取,避免重复查询。Nmap的dns-cach-snoop脚本通过非递归和计时两种模式,用来判断DNS服务器是否开启缓存功能。

检查IP是否被滥用

Distcc是一个免费分布式编译C/C++编译工具。在其2.X版本中,存在配置漏洞,漏洞编号为CVE-2004-2687。一旦没有配置限制端口访问,就会被远程攻击者绕过认证,借助编译任务,执行任意命令。Nmap的distcc-cve2004-2687脚本利用该漏洞,探测目标主机是否存在该漏洞。一旦存在,就可以利用该漏洞执行指定的命令。

利用Distcc端口限制漏洞

Distcc是一个免费分布式编译C/C++编译工具。在其2.X版本中,存在配置漏洞,漏洞编号为CVE-2004-2687。一旦没有配置限制端口访问,就会被远程攻击者绕过认证,借助编译任务,执行任意命令。Nmap的distcc-cve2004-2687脚本利用该漏洞,探测目标主机是否存在该漏洞。一旦存在,就可以利用该漏洞执行指定的命令。

查询DICT服务信息

词典网络服务(DICT)是基于DICT协议的服务,可以提供自然语言词典查询服务。它工作在TCP 2628端口。Nmap的dict-info脚本,通过请求TCP 2628端口,然后执行show server命令,获取服务器和可访问数据库信息,如服务器版本、开启时间、数据库文件信息。