SNMP口令的利用

    [晴 February 20, 2008 09:50 | by ]
来源:ITLab
很多人开始明白对于WIN2K来说,关闭了TCP139和445端口以后,安全性会提高很多,起码很多对系统信息的刺探扫描也无法进行了。
  
一般来说,的确是这样。但要做到真正完善的安全,还需要从每一个细节去考虑是否会存在隐患。
  
比如,对于完全安装的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,就可以方便的获得非常多的信息。

在这里可以下载:http://www.patching.net/abu/tools/win/snmputil.exe
  
   Highslide JS


呵呵,简单介绍一下用法
  
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
  
    Highslide JS


尝试获得对方机器系统用户列表
  
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 列出系统信息
  
   Highslide JS


三、一些工具的推荐
  
  snmputil的功能已经完全足够用来进行对网络主机的刺探扫描了,只是因为它是命令行下的工具而且,超常的oid标识符也并不是那么方便输入。
  
这里我推荐两款非常不错的网络管理工具,当然,它们的另一个作用就是snmp的刺探。
  
  SolarWinds 2001的IP Network Browser
  
  IP Network Browser是一款snmp浏览工具,它可以提供在输入正确的community strings“查询密码”后的运行着snmp服务的WIN2K/NT系统上的任何可得的信息。
  
在下图中,我们可以看到“查询密码”为:public
  
而在Accounts(账号)表单里,我们已经获得了同上面snmputil命令行方式一样的反馈信息。
  
   Highslide JS


功能强大噢。
  
整个SolarWinds 软件套件更包含了更多的网络管理工具,以后我将在其他的文章里继续介绍。
  
LANguard Network Scanner 2.0
  
这是一个网络安全综合扫描工具,主要功能:显示每台主机的NETBIOS主机名,MAC地址,搜寻共享,操作系统类型判断,并测试共享密码的安全性等等,以html格式输出。
  
主功能界面:
  
   Highslide JS


选中左边SNMP选项,右键呼出SNMPWalk功能
  
  呵呵,出现了很直观的图形界面的MIB树的结构,直接通过选择进入相应的目录树或者直接输入oid号,就可以查询出对方主机的相应信息。
  
如账号信息:
  
    Highslide JS


当然,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\ValidCommunities]下,将public的名称修改成其它的名称就可以了。
  
如果要限定允许的ip才可以进行SNMP查询,可以进入[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\PermittedManagers]添加字符串,名称为“1”,内容为要允许的主机IP.
  
当然,如果允许多台机器的话,就要名称沿用“2、3、4”等名称了。
  
到这里,基于SNMP的信息刺探与防护策略也基本说完了。
  
文章里面有很多名称或者解释都是我自己表述的,不够全面和正式,但对初学者来说,应该还是有些帮助的吧

Download ( 905 downloads)
Technology | Comments(0) | Trackbacks(0) | Reads(10419)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive