1、Snmputil知识Snmputil知识 Snmputil是一个命令行下的软件,使用语法如下: usage: snmputil get|getnext|walk agent community oid oid . snmputil trap 其中agent表示代理进程的IP地址,community表示团体名,oid表示MIB对象ID。 举例说明: 1)查看本地计算机(IP地址为192.168.0.3)的系统信息 通过对系统组的MIB对象的查阅,我们知道系统信息所对应的MIB对象为.1.3.6.1.2.1.1.1(参看系统组对象),我们使用get参数来查询: C:snmputil get 192
2、.168.0.3 public .1.3.6.1.2.1.1.1.0 Variable = system.sysDescr.0 Value = String Hardware: x86 Family 15 Model 2 Stepping 7 AT/AT COMPATIBLE - Software: Windows 2000 Version 5.1 (Build 2600 Uniprocessor Free) 其中public是192.168.0.3计算机上的团体名,.1.3.6.1.2.1.1.1.0是对象实例,注意对象ID前面要加一个点.,后面还要加一个0。如果不在对象ID末尾加上一个0,
3、那么用get参数查询就会出错。从查询结果中我们能够看出操作系统版本和CPU类型。 2)查询计算机连续开机多长时间C:snmputil get 192.168.0.3 public .1.3.6.1.2.1.1.3.0 Variable = system.sysUpTime.0 Value = TimeTicks 447614 如果我们在对象ID后面不加0,使用getnext参数能得到同样的效果: C:snmputil getnext 192.168.0.3 public .1.3.6.1.2.1.1.3 Variable = system.sysUpTime.0 Value = TimeTic
4、ks 476123 3)查询计算机的联系人C:snmputil get 192.168.0.3 public .1.3.6.1.2.1.1.4.0 Variable = system.sysContact.0 Value = String administrator 以上简单介绍了用snmputil查询代理进程的方法,由于在命令行下使用,可能大家感到颇为不方便,但命令行的一个好处就是可以促进大家主动查阅MIB对象,加深对SNMP网络管理的认识。 4)使用walk查询设备上所有正在运行的进程:C:snmputil walk 192.168.0.3 public .1.3.6.1.2.1.25.4
5、.2.1.2 Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.1 Value = String System Idle Process Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.4 Value = String System Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.292 Value = String snmputil.exe Variable =
6、host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.308 Value = String RavTimer.exe Variable = host.hrSWRun.hrSWRunTable.hrSWRunEntry. hrSWRunName.336 Value = String RavMon.exe 限于篇幅笔者就不把所有进程列出来,大家可以在自己的计算机上面实验,以加强感性认识。 5)查询计算机上面的用户列表C:snmputil walk 192.168.0.3 public .1.3.6.1.4.1.77.1.2.25.1.1 Varia
7、ble = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server. svUserTable.svUserEntry.svUserName.4.117.115.101.114 Value = String user Variable = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server.svUserTable.svUserEntry.svUserName.5.71.117.101.115.116 Value = Strin
8、g Guest Variable = .iso.org.dod.internet.private.enterprises. lanmanager.lanmgr-2.server.svUserTable.svUserEntry. svUserName.13.65.100.109.105.110. 105.115.116.114.97.116.111.114 Value = String Administrator 从中我们可以得知该计算机共有三个用户,它们分别为user、guest和administrator。 Snmputil还有一个trap的参数,主要用来陷阱捕捉,它可以接受代理进程上主动发
9、来的信息。如果我们在命令行下面输入snmputil trap后回车,然后用错误的团体名来访问代理进程,这时候就能收到代理进程主动发回的报告。 在MIBII中总共有175个对象,每个对象均有其不同的含义,我们只有通过查阅MIB才能知道它们各自的作用。MIB对象是SNMP网络管理中的核心内容,只有深入了解MIB对象的含义我们才有可能知道如何去驾驭SNMP网络管理。SNMP探测工具snmputil.exe命令记录 列出系统进程snmputil walk 75.126.184.77 public .1.3.6.1.2.1.25.4.2.1.2列系统用户列表snmputil walk 75.126.18
10、4.75 public .1.3.6.1.4.1.77.1.2.25.1.1列出域名snmputil get 75.126.184.75 public .1.3.6.1.4.1.77.1.4.1.0列出安装的软件snmputil walk 75.126.184.75 public .1.3.6.1.2.1.25.6.3.1.2列出系统信息snmputil walk 75.126.184.75 public .1.3.6.1.2.1.1解释:snmputil,就是程序名;get,就理解成获取一个信息;getnext,就理解成获取下一个信息;walk,就理解成获取一堆信息(应该说所有数据库子树/子
11、目录的信息)agent,具体某台机器拉。community,就是那个“community strings”“查询密码”;oid,就是物件识别代码(Object Identifier)。可以把oid理解成MIB管理信息库中各种信息分类存放树资源的一个数字标识。 一、 SNMP的概念,功能 SNMP(Simple Network Management Protocol)是被广泛接受并投入使用的工业标准, 它的目标是保证管理信息在任意两点中传送,便于网络管理员在网络上的任何节点检索 信息,进行修改,寻找故障;完成故障诊断,容量规划和报告生成。它采用轮询机制, 提供最基本的功能集。最适合小型、快速、低
12、价格的环境使用。它只要求无证实的传输层 协议UDP,受到许多产品的广泛支持。 本文将讨论如何在Win2K安装使支持SNMP功能,SNMP技术对于提升整体安全水准是有益的, 但也可能存在风险,本文将同时检验这两个方面。另外,除了介绍一些开发工具外, 还将图解通过SNMP收集信息的可能用法,以及如何提高安全性。 二、在Win2K中安装SNMP 提供一个支持SNMP的Win2K设备与增加一个额外的Windows组件同样简单,只需要进入开始/设置/控制面板/, 选择添加/删除程序,然后选择添加/删除Windows组件,随之出现一个对话框,在其中选择管理和监视工具, 最后点击下一步,依照提示安装: OK
13、,现在Win2K就可以通过SNMP来访问了. 三、对snmp信息的刺探方法 1、Snmputil get 下面我们在命令行状态下使用Win2K资源工具箱中的程序snmputil.exe ( 来获取安装了SNMP的Win2K机器的网络接口数目,命令参数是get: 前提是对方snmp口令是public snmputil.exe提供基本的、低级的SNMP功能,通过使用不同的参数和变量,可以显示设备情况以及管理设备。 下面来看看这个例子都包含了哪些参数和变量: 最后一个参数是SNMP变量,值为1.3.6.1.2.1.2.1.0,被称为物件识别代码OID(object identifier)。 OID有
14、对应的字符串表达式,也就是在SNMPUTIL输出内容的第一行,在这个例子中,即是interfaces.ifNumber.0。 这个字符串对于用户来说,就要易记易读多了。你可以发现,这种对应关系与DNS类似。 第二个参数指定将SNMP请求发送给哪个设备,在这里是localhost,即本地主机。 第三个参数指定使用哪个共同体(即验证字符串或口令),在这里是public。 在每个发送到被管理设备的SNMP UDP信息包中,这个口令是以纯文本形式传输的。 当一个Win2K设备安装上SNMP支持后,缺省的SNMP共同体名称为 public,这表明允许用户读取现有的所有变量。 因为即便是设备中的网络接口数
15、目也是一个敏感数据,所以这就成为第一个安全问题。 2、Snmputil getnext 接着,我们试一试snmputil的另一个命令参数getnext: getnext的功能是获取指定SNMP变量的下一个变量的值及其OID。因为一个设备的所有SNMP变量都是规则排列的, 所以使用getnext命令参数就可以获取一个设备中的所有变量值及OID,而不需要事先知道它们的准确OID值。 另外Snmputil getnext可以用来测试 Windows 2K SNMP内存消耗拒绝服务攻击缺陷 受影响的系统有: - Microsoft lmmib2.dll 5.00.2134.1 - Microsoft
16、Windows 2000 Server SP2 - Microsoft Windows 2000 Server SP1 - Microsoft Windows 2000 Server 具体方法: snmputil getnext localhost public .1.3.6.1.4.1.77.1.2.28.0 请谨慎使用。 当心被警察叔叔K哦 3、snmputil walk 知道了next指令的用途,我们可以编写一个程序自动获取一个设备的所有OID及其数值,而不用一行行地敲入那么长的命令。 但幸运的是,snmputil的walk指令帮助我们实现了这个想法。在命令行状态下敲入下面的命令,将显示
17、出本地机器几乎所有的变量: C: snmputil walk localhost public .1.3 你会看到一行行的文字在黑白窗口中不停地滚动 . 直到最后出现End of MIB subtree的信息: 其他指令含义: 1.snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程 这样就可以使入侵者在入侵之前就知道你系统运行的软件,有没有装杀毒软件, 从而知己知彼,百战不殆! 2.snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表 有了这个更好了,入侵者可以根据
18、你的用户表编一个密码表进行探测, 减少了入侵的盲目性。 3.snmputil get 对方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 列出安装的软件 用这个入侵者可以看你装的sp是什么,有没有装防火墙等信息,可以据此判断应该有的系统漏洞,增加了入侵的成功率。 5.snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息 这个可以使
19、入侵者了解系统状况以及主机的稳定性,可以从主机的uptime里得知你系统开机了多长时间,从而确定是否入侵。 其他的工具: 1:SolarWinds 2002的IP Network Browser _id=82 _id=83 2:LANguard Network Scanner 3. _id=103 3:X-scan2.3cn 以上用x-scan就得到了系统信息 _id=13 四、如何提高Win2K SNMP的安全性 1:首先需要注意的是,snmp服务的通讯端口是UDP端口,这也就是大部分网络管理人员很容易忽略的地方。 往往某些网管配置服务器阻断了NetBIOS空会话的建立,就认为系统安全有了相
20、当的保障,可由于安装 了SNMP服务,不知不觉中,就给系统带去了极大的隐患。 最方便和容易的解决方法,就是关闭SNMP服务,或者卸载掉该服务。 如果关掉SNMP服务不方便的话,那么可以通过修改注册表或者直接修改图形界面的SNMP服务属性 进行安全配置。 开始程序管理工具服务SNMP Service属性安全 在这个配置界面中,可以修改community strings,也就是微软所说的团体名称,呵呵,也就是 我所说的查询密码。或者可以配置是否从某些安全主机上才允许SNMP查询。 不过NT4环境下的朋友就必须修改注册表了。 修改community strings,在 HKEY_LOCAL_MACH
21、INESYSTEMCurrentControlSetServicesSNMPParametersValidCommunities 下,将public的名称修改成其它的名称就可以了。 如果要限定允许的ip才可以进行SNMP查询,可以进入 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSNMPParametersPermittedManagers 添加字符串,名称为1,内容为要允许的主机IP。 当然,如果允许多台机器的话,就要名称沿用2、3、4等名称了 2:在Win2K中,事件日志中的任何事件都可用来创建包含这一事件的SNMP陷阱,Microso
22、ft将这称为SNMP 事件转换器。 可以对一些Win2K设备进行配置,使得当有人试图登录它或者对其共享而未成功时,让这些设备能够发送一个SNMP陷阱信息。 把这些陷阱引导到我们自己的工作站,并设置当收到陷阱信息,用应用程序播放一个报警音调,这样就可以初步建立一个多 媒体安全管理工作站。 配置这些陷阱信息所需要的工具有evntwin.exe和evntcmd.exe,二者都是Win2K标准安装后的一部分: 用evntwin.exe对一些重要事件建立陷阱,然后在管理工作站上启动snmputil.exe: C: snmputil trap snmputil: listening for traps.
23、Incoming Trap: generic = 6 specific = 529 enterprise = .iso.org.8.83.101.99.117.114.105.116.121 agent = 127.0.0.1 source IP = 127.0.0.1 community = public variable = .iso.org.1.0 value = String variable = .iso.org.2.0 value = String SYSTEM variable = .iso.org.3.0 value = String JVO variable = .iso.o
24、rg.4.0 value = String 16 variable = .iso.org.5.0 value = String 2 variable = .iso.org.dod.0 value = String nonexistinguser variable = .iso.org.7.0 value = String ADS variable = .iso.org.8.0 value = String 3 variable = .iso.org.9.0 value = String NtLmSsp variable = .iso.org.10.0 value = String MICROS
25、OFT_AUTHENTICATION_PACKAGE_V1_0 variable = .iso.org.11.0 value = String JVO 要记住,SNMP陷阱只产生于出现在Win2K事件日志中的事件。如果是一个单独的工作站,需要在本地安全策略中配置。 如果是一个域中的设备,要使用AD(活动目录)来设置。 另一个使用SNMP并得到附加安全的方法是主动监控某些SNMP变量,这些变量有: IpForwarding (1.3.6.1.2.1.4.1.0):就是IP转发,这个特性对大多少工作站而言不是个好功能。 IcmpInRedirects (1.3.6.1.2.1.5.7):是否有人正
26、在向设备发送icmp重定向信息。 TcpOutRsts (1.3.6.1.2.1.6.15):一个记数器,表示设备所发送的RST数。当受到端口扫描时,这个记数器会急剧增加。 UdpNoPorts (1.3.6.1.2.1.7.2):一个记数器,表示不提供服务的端口的通信量。同样是一个可能受到端口扫描的信号。 对于一个SNMP管理工作站来说,为这些变量设置阀值就能提供很好的报警信息。snmputil的作用是探测远程主机的相关信息,为入侵做辅助.当然你得有snmp口令.一般默认为public(不带引号). _c VA)I*) (此帖转载自 _c VA)I*) url=黑吧安全网/url _c VA
27、)I*) 黑客动画吧论坛网址 url=/url) _c VA)I*)elliottSNMP工具命令 SNMP,Simple Network Management Protocol,简单网络管理协议。用于管理IP网络上结点的协议。几乎所有的网络设备和网络操作系统都支持SNMP。 接下来要介绍的是:community strings, 也不知道中文翻译是什么意思,呵呵,不过如果理解成为基于SNMP协议信息通信时使用的一种“查询密码”应该不为过吧。 当使用特殊的客户端应用程序,通过该“查询密码”community strings的验证,将获得对应的权限(只读 或者 读写)对SNMP中管理信息库(MI
28、B)进行访问。而管理信息库(MIB)中则保存了系统所有的重要信息。也就是说,如果可以知道community strings 这个“查询密码”,我们就可以刺探系统的信息了。比较遗憾的是,很多网络设备厂商以及操作系统厂商,在初始状态下,都使用比较统一的“查询密码”呵呵,这也就给我们提供了足够的方便。二、对WIN2K进行刺探扫描 以WIN2K来说,一旦安装并启动了简单网络管理协议,系统将打开 UDP 161 snmp UDP 162 snmptrap 两个端口。具体做什么我们不去细究。需要注意的是,这里使用的是UDP端口,而不是TCP端口。 同时,WIN2K系统支持初始的“查询密码”community strings 为:public我们只要通过一款Resource Kit里面的工具snmputil,就可以方便的获得非常多的信息。 在这里可以下载: 呵呵,简单介绍一下用法 snmputil,就是程序名拉,呵呵。 get,就理解成获取一个信息。getnext,就理解成获取下一个信息。 walk,就理解成获取一堆信息(嗯,应该说所有数据库子树/子目录的信息)agent,具体某台机器拉。community,嗯就是那个“community strings”“查询密码”拉。 oid,这个要多说一下,这个呢,就是物件识别代码(Object Identifier)。可以把oid理解成MIB管理信息
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1