我知道它会向目标机器的已知打开和关闭端口发送不同的 TCP、UDP 和 ICMP 探测。我正在尝试使用 nmap 找出网络中所有计算机的操作系统,但它们位于防火墙后面,因此需要知道我需要在防火墙中打开哪些端口。目前无法猜测任何内容,其中大多数都在运行某种 Windows 版本。
问问题
279 次
1 回答
0
Nmap 的操作系统指纹识别基于对异常 TCP、UDP 和 ICMP 探测的匹配响应。Nmap 根据其端口扫描阶段的结果选择要使用的端口,这就是为什么如果不执行某种端口扫描就无法检测到远程操作系统的原因。为了获得良好的匹配,您需要尽可能多地满足以下条件:
- 至少一个打开和一个关闭的 TCP 端口。(使用
-sS
or-sT
得到这个结果) - 一个封闭的 UDP 端口。(
-sU
用于扫描 UDP 端口) - 对 ICMP Echo Request(又名 Ping)数据包的响应。
这些是按重要性排序的。如果没有 TCP 扫描,您将无法获得准确的匹配,但即使目标正在过滤所有 UDP 端口或阻止 ICMP Echo 请求,您有时也会接近。
重要的是,对这些探测的所有回复都来自要进行指纹识别的单个系统。防火墙和其他安全设备经常欺骗回复,尤其是对 Nmap 发送的一些不寻常的数据包。其他设备会更改数据包,更改“不分片”位或 TTL 等内容,这可能会导致匹配不准确。
于 2014-05-28T14:54:02.200 回答