在 stackoverflow 上发布了这个问题,但后来被指示将其发布在这里:
我正在使用 Rapid7 的 Nexpose 扫描我们的一台网络服务器(Windows Server 2008),并发现时间戳响应漏洞。
根据 Rapid7,时间戳响应应被禁用:http://www.rapid7.com/db/vulnerabilities/generic-tcp-timestamp
到目前为止我已经尝试了几件事:
编辑注册表,在HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中添加“Tcp1323Opts”键,并将其设置为0。http://technet.microsoft.com/en-us/library/cc938205.aspx
使用此命令:netsh int tcp set global timestamps=disabled
尝试了 powershell 命令:Set-netTCPsetting -SettingName InternetCustom -Timestamps disabled(出现错误:Set-netTCPsetting:术语“Set-netTCPsetting”未被识别为 cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。)以上尝试均未成功,重新扫描后我们仍然收到相同的警报。
Rapid7 建议使用能够阻止它的防火墙,但我们想知道 Windows 上是否有设置可以实现它。
它是通过特定端口进行的吗?如果是,端口号是多少?如果不是,您能推荐一款能够阻止它的第三方防火墙吗?
非常感谢。
答案1
我想你误解了这个建议。它没有说“禁用 TCP 时间戳响应”,它只是说“你可能想要禁用 TCP 时间戳响应”。除非你已将主机的正常运行时间声明为机密信息,否则你真的不应该费心。至于指纹识别,有很多其他来源提供比 TCP 时间戳更详细的信息。
但关于您的问题:不,时间戳响应不是通过 TCP 端口提供的服务,它是 TCP 本身提供的选项,并通过现有连接的 TCP 标头进行请求和回答。禁用 TCP 时间戳可能会破坏一些 TCP 优化。
仅过滤时间戳请求数据包并不是一个好主意,因为它可能会中断连接。唯一明智的方法是操纵 TCP 标头以伪造适当的响应或确保在建立连接时不协商 RFC 1323 扩展。我不知道哪些产品会这样做。
看来参数Tcp1323Opts 已被弃用,不再评估Rapid7 网站本身针对 Windows Server 2008 声明如下:
无法在此操作系统上可靠地禁用 TCP 时间戳。