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: public
CVE_ID : CAN-1999-0517, CAN-1999-0186, CAN-1999-0254, CAN-1999-0516
BUGTRAQ_ID : 11237, 10576, 177, 2112, 6825, 7081, 7212, 7317, 9681, 986 NESSUS_ID : 10264
Other references : IAVA:2001-B-0001
SNMP服务在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 Router
sysUpTime.0 = 3 Days, 1 Hours, 53 Minutes, 10 Seconds
sysContact.0 = admin@router
sysName.0 = V3300c
sysLocation.0 = Hsin Chu
sysServices.0 = 0
目的:得到远程目标的系统敏感信息
简单利用方法
这里的public使用来查询对方信息时所用到的密码
具体的做法:要用到一个叫snmputil的东西,这个东西在win2000的resource kit中有,通过它我们可以通过snmp服务来查看对方的一些信息
格式:snmputil get(or walk or getnext) public oid
get和括号里的时获取对方机器信息的一种方法,public就是查寻的时候要用的密码。oid是被查询设备的ID号码
例如:snmputil walk 111.111.111.111 public .1.3.6.1.2.1.25.4.2.1.2
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(列出安装软件)
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 snmp
UDP 162 snmptrap
两个端口。
具体做什么我们不去细究。需要注意的是,这里使用的是UDP端口,而不是TCP端口。
同时,WIN2K系统支持初始的“查询密码”community strings 为:public
我们只要通过一款Resource Kit里面的工具snmputil,就可以方便的获得非常多的信息。
在这里可以下载: