很多人开始明白对于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
呵呵,简单介绍一下用法
snmputil,就是程序名拉,呵呵。
get,就理解成获取一个信息。
getnext,就理解成获取下一个信息。
walk,就理解成获取一堆信息(嗯,应该说所有数据库子树/子目录的信息)
agent,具体某台机器拉。
community,嗯就是那个“community strings”“查询密码”拉。
oid,这个要多说一下,这个呢,就是物件识别代码(Object Identifier)。
可以把oid理解成MIB管理信息库中各种信息分类存放树资源的一个数字标识。
好了,具体的资料可以查阅相关文章。
开始刺探信息:
尝试获得对方机器当前进程列表
snmputil.exe walk 对方ip publi c .1.3 .6.1.2.1.25.4.2.1.2
尝试获得对方机器系统用户列表
snmputil walk 对方ip publi c .1.3 .6.1.4.1.77.1.2.25.1.1
呵呵
是不是很容易的就刺探出了对方的信息?
当然,这样的命令还可以做很多
整理一些列在下面:
snmputil walk 对方ip publi c .1.3 .6.1.2.1.25.4.2.1.2 列出系统进程
snmputil walk 对方ip publi c .1.3 .6.1.4.1.77.1.2.25.1.1 列系统用户列表
snmputil get 对方ip publi c .1.3 .6.1.4.1.77.1.4.1.0 列出域名
snmputil walk 对方ip publi c .1.3 .6.1.2.1.25.6.3.1.2 列出安装的软件
snmputil walk 对方ip publi c .1.3 .6.1.2.1.1 列出系统信息
三、一些工具的推荐
snmputil的功能已经完全足够用来进行对网络主机的刺探扫描了,只是因为它是命令行下的工具
而且,超常的oid标识符也并不是那么方便输入。
这里我推荐两款非常不错的网络管理工具,当然,它们的另一个作用就是snmp的刺探。
SolarWinds 2001的IP Network Browser
IP Network Browser是一款snmp浏览工具,它可以提供在输入正确的community strings“查询密码”
后的运行着snmp服务的WIN2K/NT系统上的任何可得的信息。
在下图中,我们可以看到“查询密码”为:public
而在Accounts(账号)表单里,我们已经获得了同上面snmputil命令行方式一样的反馈信息。
功能强大噢。
整个SolarWinds 软件套件更包含了更多的网络管理工具,以后我将在其他的文章里继续介绍。
LANguard Network Scanner 2.0
这是一个网络安全综合扫描工具,主要功能:显示每台主机的NETBIOS主机名,MAC地址,搜寻
共享,操作系统类型判断,并测试共享密码的安全性等等,以html格式输出。
主功能界面:
选中左边SNMP选项,右键呼出SNMPWalk功能
呵呵,出现了很直观的图形界面的MIB树的结构,直接通过选择进入相应的目录树
或者直接输入oid号,就可以查询出对方主机的相应信息。
如账号信息:
当然,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的信息刺探与防护策略也基本说完了。
文章里面有很多名称或者解释都是我自己表述的,不够全面和正式,但对初学者来说,应该还是有些
帮助的吧