我知道它会向目标机器的已知打开和关闭端口发送不同的TCP,UDP和ICMP探测器。我正在尝试使用nmap来查找网络中所有计算机的操作系统,但它们位于防火墙后面,因此需要知道我需要在防火墙中打开哪些端口。目前没有猜到任何东西,而且大多数都在运行某种Windows版本。
答案 0 :(得分:0)
Nmap的OS fingerprinting基于匹配对异常TCP,UDP和ICMP探测的响应。 Nmap根据端口扫描阶段的结果选择使用哪些端口,这就是为什么在不执行某种端口扫描的情况下无法检测远程操作系统的原因。为了获得良好的匹配,您需要尽可能多地满足这些条件:
-sS
或-sT
获取此结果)-sU
扫描UDP端口)这些按重要性排序。如果没有TCP扫描,您将无法获得准确的匹配,但即使目标正在过滤所有UDP端口或阻止ICMP Echo请求,您也可能偶尔接近。
重要的是,对这些探针的所有回复都来自要进行指纹识别的单个系统。防火墙和其他安全设备经常欺骗回复,特别是对Nmap发送的一些异常数据包。其他设备会改变数据包,改变Do not Fragment位或TTL之类的东西,这可能会导致匹配不准确。