当前位置:首页 > 技术与方案 > 安全防范相关

基于SNMP的信息扫描与网络安全

(2012-09-20 06:47:42)

 

SNMP(Simple Network Management Protocol——简单网络管理协议)用于在网络中管理一些配置,如防火墙、计算机系统,以及路由器等,并提供了一种从网络上的设备中收集网络管理信息的方法。从路由器到计算机、打印机,所有连入网络中的设备都可以通过SNMP来监控和管理,因此被网络管理员所广泛使用。笔者在此不介绍SNMP协议的体系结构和在网络中的用途,而是讨论SNMP给网络带来的安全隐患问题。

SNMP存在的安全问题

几乎所有的网络设备和操作系统都支持SNMP,也就是说只要启用了SNMP服务的系统和网络设备都存在或多或少的安全问题——因为一个漏洞已由位于匹兹堡的卡内基梅隆大学的CERT协作中心于2002年2月中旬发现和公布。此漏洞主要位于大多数公司实施的标准协议中。笔者在此只讨论微软的Windows系统的安全问题。

除了Windows ME外,微软为所有版本的Windows系统都提供了SNMP协议。但微软称该协议并不会默认安装在操作系统中,需要用户手动启动SNMP服务。SNMP使用未加密的口令(Community Strings)作为认证的惟一机制。Community Strings是基于SNMP协议信息通信时使用的一种“查询密码”。当使用特殊的客户端应用程序时,通过该Community Strings的验证,将获得对应的权限(只读或者读写),对SNMP中的管理信息库(Management Information Base,MIB)进行访问;而管理信息库中则保存了系统所有的重要信息。也就是说,如果可以知道Community Strings 这个“查询密码”,我们就可以扫描出系统的信息了。遗憾的是,很多网络设备厂商以及操作系统厂商,在初始状态下,都使用比较统一的“查询密码”。大多数SNMP设备的默认口令为“public”,也有少数第三方软件供应商把口令改为“private”,但还是逃脱不了黑客字典的猜解。攻击者可利用SNMP存在的漏洞远程重新配置或关掉设备,通过SNMP扫描可得到远程主机大量的信息,攻击者会通过分析这些扫描的信息制定攻击计划。

另一方面,因系统的其它漏洞也逐渐被发现,网络服务太多,所以SNMP协议引起的网络安全问题很容易被网络管理员所忽视,因此我们建议要从多方面考虑网络安全问题,要经常去浏览安全公告,及时发现新的漏洞,打好官方公布的补丁程序。

对Windows 2000进行SNMP扫描信息的分析
在Windows 2000系统成功安装并启用了SNMP协议后,系统将打开UDP 161和162这两个端口(基于SNMP协议服务),Windows 2000系统支持的初始Community Strings为public。下面笔者将分别介绍使用3个不同的工具软件扫描SNMP的系统信息,并对各扫描信息给出分析。

1.snmputil工具扫描信息分析
snmputil是Microsoft Windows 2000 Resource Kit中的一个工具,可到http://www.microsoft.com/Windows2000/techinfo/reskit/default.asp站点上下载。该工具文件大小只有9kB,小巧实用,是一个DOS命令行工具。我们首先了解一下snmputil的命令行格式及各参数的用法。
Snmputil命令格式:
Snmputil {{get|getnext|walk}agent community oid[oid…]trap}
◆get:获取指定oid当前值的信息。
◆getnext:获取被oid指定项目后在MIB项目中的当前值信息,即下一个信息。
◆walk:分步通过检索在管理信息库中指定的oid所有数据项的值,获取系统信息。
◆agent:查询指定的计算机,如果计算机在主机文件中被指定,该值可以是一个IP地址或主机名。
◆community:指定的一个公用名,通常与管理团体一起使用团体计算机。可以通过选择“控制面版”中的“网络”图标,在“SNMP Service的属性”对话框中看到一个公用名列表,或在注册表中查找SNMPParameters子键的ValidCommunities的键值。默认时,在Windows NT中安装SNMP的时候就创建了一个称为public的Community。通常将Community Strings称为“查询密码”。
◆oid: oid(Object identifier——对象标识符)是管理信息库中各种信息存放树资源的数字标识,是ASN.1名的查询变量,格式为.N.N.N.N,不同的数值对应于不同的信息。
如何通过SNMP得到远程主机的信息呢?有了通用的Community Strings值,当然获取远程主机的信息是相当简单的事情,因为不同的信息对应着不同的oid(oid的数值可以查阅相关的资料),在此列出扫描工具常用的几组oid值。

(1)列出目标主机系统进程信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.25.4.2.1.2
在Windows 2000系统的命令行中输入此命令,执行后将列出远程目标主机的系统进程信息,从这些信息中,攻击者就能判断出目标主机所运行的服务。例如,目标主机是否安装了Web服务以及其他服务信息。
(2)列出目标主机系统用户账号列表
snmputil walk [目标主机IP地址] public .1.3.6.1.4.1.77.1.2.25.1.1
在Windows 2000 的命令行中输入此命令,则将列出远程目标主机的账号信息。
通过这些信息可以清楚地看出目标主机的账号信息,对于黑客来说,取得了系统账号就意味着已经离攻破主机不远了,而对于那些弱口令的账号,更是不堪一击了。
(3)列出目标主机域名信息
snmputil walk [目标主机IP地址] public .1.3.6.1.4.1.77.1.4.1.0
(4)列出目标主机系统安装的软件信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.25.6.3.1.2
在Windows 2000的命令行中输入此命令,则可以列出远程目标主机系统安装的软件列表。
作为攻击者完全可通过这些信息分析出系统的安全性来。如果攻击者分析出远程主机系统没有及时打安全补丁,而再通过(1)中的进程信息发现远程主机也打开了IIS服务,他会轻而易举地判断出IIS的服务漏洞或远程溢出漏洞,通过远程溢出,攻击者可轻易取得Administrator权限,最终控制远程主机。因此,网管员应时时关注系统的安全公告,及时打好系统安全补丁,这样才能防范好黑客入侵行为。
(5)列出目标主机的系统信息
snmputil walk [目标主机IP地址] public .1.3.6.1.2.1.1

上面介绍的是命令行工具,关键是要知道oid的值。然而一些黑客程序可以在用户不参与的情况下查出远程主机所有的服务信息,下面笔者将列举两个相当不错的安全检测工具,目的只是为了让网管能更好地维护自己的系统。
2. LANguard Network Security Scanner
 LANguard Network Security Scanner是一款相当不错的网络安全综合扫描工具,使用该工具可以方便快捷地查出目标主机的系统信息,这些信息包括:每台主机的NetBIOS主机名、网络共享信息、操作系统类型、Windows NT/2000的Null session的用户账号以及口令猜解,另外还包括端口信息和系统所存在的漏洞等,最新的3.0版本不仅可以查出系统的漏洞,还提出了安全维护的建设性建议,另外还给出安全补丁的下载网址,让有漏洞的系统直接去下载安全补丁,可见此工具的功能强大,其程序下载网址是:http://www.gfisoftware.com/,此安全工具更新也相当快。 

                                                                                                                                                                                                                                                                                          作者:徐建军 方红琴

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号