根据协议栈特征判断操作系统
传统上判断操作系统是通过扫描进行的,例如,发一个SYN+FIN的包,看对方如何回应,由于各式各样的原因,包括性能考虑,或编程上的疏忽,这些包会留有一些特征。这类典型的应用是nmap和NetCraft。
这类方法有它的作用,对于尝试攻击的人来说,这些特征能够给他们相当多的信息,这些信息甚至足以让攻击者找到一击毙命的攻击方法(例如,发现那是一台没有打过补丁、没有防火墙的Windows)。然而,它也有一些不可避免的局限:
- 并不是所有地区的法律都允许网络扫描行为。除此之外,这种行为通常也是不受欢迎的,至少它不是一种友好的行为。(事实上,发生在互联网上的扫描行为几乎都不是友善的)
- 对于NAT后的服务器,它只能判断出NAT网关所用的操作系统,而无法判断其后的系统所用的操作系统。
- 事后的「反击」或「报复」性扫描往往于事无补,在第一击的时候遏制攻击,对于安全相当重要。