我们的一个网络服务器未能满足 PCI-DSS 合规要求,因为漏洞扫描检测到其操作系统是 Windows Server 2003 Service Pack 1(显然非常过时!)。
我的问题是漏洞扫描如何检测到这一点,因为我似乎无法找到一种方法来获取相同的信息,而无需对该框进行 AD 访问(它在服务提供商网络上)。即使使用 nmap,它也只能提供对操作系统版本的猜测:
激进的操作系统猜测:Microsoft Windows Server 2003 SP1 或 SP2 (99%) 那么在向我们的提供商发送非常非常愤怒的电子邮件之前,我该如何验证这一点? 如果这是准确的,那么我会说这是疏忽,我给他们的电子邮件语气不会很好。
我没有这个盒子的登录权限。
答案1
关闭所有端口。重新分配端口 RDP。修改 TTL。并且很可能您的系统无法根据响应进行判断)。
修改TTL:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters]
DefaultTTL 64 DWORD
重新分配端口 RDP (mstsc:3333):
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
PortNumber 3333 DWORD
重新分配 VPN 端口:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0003]
TCPPortNumber <VPN port number> DWORD
禁用 IPv6
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
DisabledComponents 0xffffffff DWORD
命令,禁用 IPv6 Teredo、6to4、ISATAP:
netsh interface teredo set state disabled
netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled
netsh interface ipv6 isatap set state state=disabled
变更响应服务等等......
关闭所有不需要的端口。