从网络级别阻止访问
如果你不能对上述注册表进行修改,那么你可以通过windows防火墙或者网络防火墙阻止空会话攻击,这可以通过组织与NetBIOS和SMB TCP/IP有关的端口来实现,这些端口包括:
· TCP Port 135
· UDP Port 137
· UDP Port 138
· TCP Port 139
· TCP和 UDP Port 445
这些端口用于windows的各种网络功能,包括文件共享,网络打印功能、集群和远程管理等。话虽如此,在关闭这些端口之前应该进行全面的测试,以确保系统正常运行。
使用IDS识别空会话
如果上述注册表修改或者防火墙政策破坏了网络应用程序的功能性,那么你必须将防御工作调整为被动方式,而不是主动方式。除了阻止空会话枚举之外,最后的希望就是在发生枚举的时候我们能够阻止它。
如果你正在使用Snort,也就是现在最常用的IDS,那么进行以下操作就可以检测所有空会话枚举:
alert tcp $EXTERNAL_NET any -> $HOME_NET 139 (msg:”NETBIOS NT NULL session”; flow:to_server.establshed;
content: ‘|00 00 00 00 57 00 69 00 6E 00 64 00 6F 00 77 00 73 00 20 00 4E 00 54 00 20 00 31 00 33 00 38 00 31|’; classtype:attempted-recon;)
这不能够阻止空会话枚举的发生,但是会提醒你枚举的发生,从而采取适当行动。
总结
空会话攻击概念并不是新的攻击方式,但是却常常被忘记和误解。这种方式对于攻击者而言,仍然是非常可行的攻击策略,了解空会话攻击的方式是系统管理员的必修课。
相关阅读