默认安装带来安全漏洞
记得有一次在和一位网管聊天的过程中他坚持认为自己Windows 2000 Server系统是不可能被入侵的。“我已经把IPC$的连接共享都禁止,入侵者根本无法得到我系统上的账户信息了,保证没有问题。”而经过我检查发现TCP 139和445端口确实被禁止了,但通过扫描器我却发现了一个重大漏洞――UDP 161D端口上的SNMP。询问管理员后得知是正在试用某公司的网络管理软件。我们知道Windows 2000后续的版本都可以通过“添加/删除程序→管理和监视工具”安装上SNMP,但在Windows系统中选择默认安装是非常不安全的。
默认安装SNMP的密码都是一样的。而入侵者从SNMP代理服务中会轻易的完成入侵前的准备工作。还有一点提醒各位,SNMP的消息是以明文形式发送的,而这些消息很容易被Microsoft网络监视器或者Sniffer这样的网络分析程序截取并解码。入侵者可以轻易的捕获服务的密码,以获取有关网络资源的重要信息。
获取SNMP服务信息非常容易
1.Snmputil命令
如果我们知道默认的SNMP服务密码,通过Resource Kit工具包里的Snmputil工具可以轻易地通过SNMP服务把Windows账户罗列出来,以便进行进一步的安全检测。语法如下:snmputil walk .1.3.6.1.4.1.77.1.2.25,例如输入:snmputil walk 192.168.0.1 ××××.1.3.6.1.4.1.77.1.2.25 命令后将得到所有的用户名,如图1所示。
另外通过Snmputil Getnext可以用来检测 Windows 2000 SNMP服务内存消耗拒绝服务攻击的缺陷,有兴趣的朋友可以尝试一下。
2.图形界面的IP Network Browser工具
IP Network Browser工具是Solar Winds公司出品的一个检测工具,通过该程序可以对自己的系统了如指掌。而这个工具包中还包括可以向目标系统里的MIB写入信息等功能,可以轻易更改系统的配置。
加固SNMP服务的方法
由于SNMP服务为管理员带来了很多方便,我们也不能为了相对的安全而停止使用该服务,所以对于它的安全防范至关重要,而最简单的方法就是更改服务的密码和针对IP地址提供有效服务。
运行Services.msc命令,找到SNMP Service,右键选择“属性”,切换到“安全”选项卡。修改Community Strings,也就是 “团体名称”改写,然后添加授权访问地连接地址,如图2所示。
如果是NT的操作系统就要麻烦些,修改下面注册表的键值。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCommunities ] 中将public改名。
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers ] 添加字符串,名称为“1”,内容为授权访问地连接地址。
另外,在入侵者企图利用SNMP入侵时,我们可以让系统日志记录入侵信息,Windows事件日志中的可用来创建包含这一事件的SNMP陷阱,所谓“陷阱”就是SNMP 事件转换器的意思。由于篇幅的限制,这里显示出界面,细节内容可以参考“日志与审核”的相关帮助,如图3所示。
加密SNMP的通信的方法
除了上述关于主机加固的内容,为了不使用明文形式发送SNMP消息。可以利用IP Sec策略保护SNMP服务的安全。
1. 选择“管理工具→本地安全策略”,右键点击“IP安全策略”,选择“本地计算机→管理IP筛选器列表和筛选器操作”。
2. 选择“管理IP筛选器列表”然后单击“添加”按钮。在“IP筛选器列表”中的名称栏输入“SNMP的管理”,去除“添加向导”复选框,然后点“添加”按钮,(一定要选择“镜像。需要选择匹配具有正好相反的源和目标地址的数据包”复选框。)生成策略。
3. 根据需要在“协议”选项卡中配置,协议类型为UDP,端口输入161。单击“到此端口”,然后输入161,用同样的方法再次添加162的端口,如图4所示。
总结:在网络管理中,非常小的安全漏洞的疏忽将导致整个系统崩溃,“细心”是要求我们每位管理员必须做到的。同时,值得庆幸的是Windows Server 2003对于SNMP的默认安装作了很大改进,能够抵御到上文提到的所有攻击手段。
图1 显示Windows账户列表
图2 添加授权访问连接地址
图3 创建SNMP陷阱连接地
图4 管理IP筛选