我的网络上需要有一个 Kali 盒子,以便在使用 Nmap 扫描时能够从 DNS 服务器正确检索 DNS 后缀。
当我从自己的计算机运行 Nmap 主机名扫描时,我可以观察 Wireshark 中的流量,并看到 Nmap 正在尝试 CMD 中列出的每个 DNS 后缀ipconfig /all
- 这是预期的行为。
当我使用网络上的 Kali 盒子对相同的主机名运行相同的扫描时,我看到 Nmap 向 DNS 服务器查询主机名,但它从未尝试使用该 DNS 服务器应提供的任何 DNS 后缀的主机名。
DNS 服务器 IP 是正确的并且自动填充,如果我dig dns.suffix
得到预期的结果 - 所以看来至少 Kali 机器本身能够正确查询它们
Nmap 似乎没有向 DNS 服务器查询后缀,或者 DNS 服务器由于某种原因拒绝查询。
我已经使用 --system-dns 指向 DNS 服务器运行 Nmap,但没有得到任何结果。我已验证 resolv.conf 具有正确的 DNS 服务器,并且我已多次重新启动/重新启动网络管理器和解析服务
我是否需要在某处输入所有 DNS 后缀,以便 Nmap 在扫描主机名时自动尝试它们?
答案1
我找到了一个有效的临时解决方案:
将“dns-search”条目添加到 /etc/network/interfaces 以及感兴趣的域,如下所示:
dns-search dns.suffix1 dns.suffix2 dns.suffix3
我仍然不确定为什么 Kali 不从 dns 服务器中提取此信息,如果有人能弄清楚它,我会很感激并将其标记为正确的答案。
另一位用户比我更好地解释了 dns-search(来自https://askubuntu.com/a/265815/1570220):
dns-search 确定为 dns 查找附加哪个域。
通常,您将在此处指定与主机名 -f 返回的域相同的域。
有关详细信息,请参阅 man resolv.conf 中的以下引用:
search 主机名查找的搜索列表。搜索列表一般由本地域名确定; >默认情况下,仅包含本地域名。这可以通过在搜索关键字后面列出所需的域搜索路径并用空格或制表符分隔名称来更改。解析器查询中包含少于 ndots 个点(默认为 1)的解析器查询将依次使用搜索路径的每个组件进行尝试,直到找到匹配项。对于具有多个子域的环境,请阅读下面的选项 ndots:n 以避免中间人攻击和根 dns 服务器不必要的流量。请注意,如果列出的域的服务器不是本地的,则此过程可能会很慢,并且会生成大量网络流量,并且如果其中一个域没有可用的服务器,则查询将超时。
搜索列表目前仅限于 6 个域,总共 256 个字符。