当前位置:文档之家› snmp简单网络管理协议漏洞分析

snmp简单网络管理协议漏洞分析

snmp简单网络管理协议漏洞分析字体: | 发表于: 2008-4-10 01:23 作者: menyuchun 来源: IXPUB技术博客简单网络管理协议(SNMP)是一个可以远程管理计算机和网络设备的协议.有两种典型的远程监控模式.他们可以粗略地分为"读"和"写"(或者是PUBLIC和PRIVATE).如果攻击者能猜出一个PUBLIC团体串值,那么他就可以从远程设备读取SNMP数据.这个信息可能包括系统时间,IP地址,接口,运行着的进程,etc等.如果攻击者猜出一个PRIVATE团体串值(写入或"完全控制",他就有更改远程机器上信息的能力.这会是一个极大的安全漏洞,能让攻击者成功地破坏网络,运行的进程,ect.其实,"完全控制"会给远程攻击者提供在主机上的完全管理权限.更多信息请参见:___________________________________________________________________SNMP Agent responded as expected with community name: publicCVE_ID : CAN-1999-0517, CAN-1999-0186, CAN-1999-0254, CAN-1999-0516BUGTRAQ_ID : 11237, 10576, 177, 2112, 6825, 7081, 7212, 7317, 9681, 986 NESSUS_ID : 10264Other references : IAVA:2001-B-0001SNMP服务在UDP 161/162端口监听用法:snmputil walk IP public [OID][----------OID-----------------------含义-------].1.3.6.1.2.1.25.4.2.1.2 获取系统进程.1.3.6.1.4.1.77.1.2.25.1.1 获取用户列表.1.3.6.1.4.1.77.1.4.1.0 获取域名.1.3.6.1.2.1.25.6.3.1.2 获取安装的软件.1.3.6.1.2.1.1 获取系统信息--------------------------------------------------------------------扫描到的一个报告:. 端口"snmp (161/udp)"发现安全漏洞:Snmp口令:"public". 端口"snmp (161/udp)"发现安全提示:sysDescr.0 = Draytek V3300 Advanced RoutersysUpTime.0 = 3 Days, 1 Hours, 53 Minutes, 10 SecondssysContact.0 = admin@routersysName.0 = V3300csysLocation.0 = Hsin ChusysServices.0 = 0目的:得到远程目标的系统敏感信息简单利用方法这里的public使用来查询对方信息时所用到的密码具体的做法:要用到一个叫snmputil的东西,这个东西在win2000的resource kit中有,通过它我们可以通过snmp服务来查看对方的一些信息格式:snmputil get(or walk or getnext) public oidget和括号里的时获取对方机器信息的一种方法,public就是查寻的时候要用的密码。

oid是被查询设备的ID号码例如:snmputil walk 111.111.111.111 public .1.3.6.1.2.1.25.4.2.1.2snmputil walk ip public .1.3.6.1.2.1.25.4.2.1.2(列出系统进程)snmputil walk ip public .1.3.6.1.4.1.77.1.2.25.1.1(列出系统用户列表)snmputil get ip public .1.3.6.1.4.1.77.1.4.1.0(列出域名)snmputil walk ip public .1.3.6.1.2.1.25.6.3.1.2(列出安装软件)snmputill walk ip public .1.3.6.1.2.1(列出系统信息)------------------------------------------------------------关于扫描中snmp信息的利用对于完全安装的WIN2K或者说启动了简单网络管理协议(SNMP)的系统来说,仍然将存在非常致命的隐患,完全将你的系统暴露给所有人。

一、从SNMP说起SNMP,Simple Network Management Protocol,简单网络管理协议。

用于管理IP网络上结点的协议。

几乎所有的网络设备和网络操作系统都支持SNMP。

接下来要介绍的是:community strings,理解成为基于SNMP协议信息通信时使用的一种“查询密码”应该不为过吧。

当使用特殊的客户端应用程序,通过该“查询密码”community strings的验证,将获得对应的权限(只读或者读写)对SNMP中管理信息库(MIB)进行访问。

而管理信息库(MIB)中则保存了系统所有的重要信息。

也就是说,如果可以知道community strings 这个“查询密码”,我们就可以刺探系统的信息了。

比较遗憾的是,很多网络设备厂商以及操作系统厂商,在初始状态下,都使用比较统一的“查询密码”呵呵,这也就给我们提供了足够的方便。

二、对WIN2K进行刺探扫描以WIN2K来说,一旦安装并启动了简单网络管理协议,系统将打开UDP 161 snmpUDP 162 snmptrap两个端口。

具体做什么我们不去细究。

需要注意的是,这里使用的是UDP端口,而不是TCP端口。

同时,WIN2K系统支持初始的“查询密码”community strings 为:public我们只要通过一款Resource Kit里面的工具snmputil,就可以方便的获得非常多的信息。

在这里可以下载:简单介绍一下用法snmputil,就是程序名拉,呵呵。

get,就理解成获取一个信息。

getnext,就理解成获取下一个信息。

walk,就理解成获取一堆信息(嗯,应该说所有数据库子树/子目录的信息)agent,具体某台机器拉。

community,嗯就是那个“community strings”“查询密码”拉。

oid,这个要多说一下,这个呢,就是物件识别代码(Object Identifier)。

可以把oid理解成MIB管理信息库中各种信息分类存放树资源的一个数字标识。

尝试获得对方机器当前进程列表snmputil.exe walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2尝试获得对方机器系统用户列表snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1整理一些列在下面:snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表snmputil get 对方ip public .1.3.6.1.4.1.77.1.4.1.0 列出域名snmputil walk 对方ip public .1.3.6.1.2.1.25.6.3.1.2 列出安装的软件snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息三、一些工具的推荐snmputil的功能已经完全足够用来进行对网络主机的刺探扫描了,只是因为它是命令行下的工具而且,超常的oid标识符也并不是那么方便输入。

这里我推荐两款非常不错的网络管理工具,当然,它们的另一个作用就是snmp的刺探。

SolarWinds 2001的IP Network BrowserIP Network Browser是一款snmp浏览工具,它可以提供在输入正确的community strings“查询密码”后的运行着snmp服务的WIN2K/NT系统上的任何可得的信息。

在下图中,我们可以看到“查询密码”为:public而在Accounts(账号)表单里,我们已经获得了同上面snmputil命令行方式一样的反馈信息。

功能强大噢。

整个SolarWinds 软件套件更包含了更多的网络管理工具,以后我将在其他的文章里继续介绍。

LANguard Network Scanner 2.0这是一个网络安全综合扫描工具,主要功能:显示每台主机的NETBIOS主机名,MAC地址,搜寻共享,操作系统类型判断,并测试共享密码的安全性等等,以html格式输出。

当然,LANguard Network Scanner还有一些更高级更适用的功能比如暴力破解community strings,呵呵自己配置一个字典的话会非常有效的。

四、如何防范基于snmp的刺探扫描首先需要注意的是,snmp服务的通讯端口是UDP端口,这也就是大部分网络管理人员很容易忽略的地方。

往往某些网管配置服务器阻断了NetBIOS空会话的建立,就认为系统安全有了相当的保障,可由于安装了SNMP服务,不知不觉中,就给系统带去了极大的隐患。

最方便和容易的解决方法,就是关闭SNMP服务,或者卸载掉该服务。

如果关掉SNMP服务不方便的话,那么可以通过修改注册表或者直接修改图形界面的SNMP服务属性进行安全配置。

开始——程序——管理工具——服务——SNMP Service——属性——安全在这个配置界面中,可以修改community strings,也就是微软所说的“团体名称”,呵呵,也就是我所说的“查询密码”。

或者可以配置是否从某些安全主机上才允许SNMP查询。

不过NT4环境下的朋友就必须修改注册表了。

修改community strings,在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ValidCo mmunities]下,将public的名称修改成其它的名称就可以了。

如果要限定允许的ip才可以进行SNMP查询,可以进入[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\Permitte dManagers]添加字符串,名称为“1”,内容为要允许的主机IP。

相关主题