Vulnerability Assessment of SNMP Service – III |
背景 |
这是第三篇关于snmp审计的文章。前面我们已经介绍了基础,探测,及利用工具获取信息。我们已经提到了snmpcheck,使用它可以获取snmp的OID中存储的数据。但是,这个工具多少有点无法满足需求。 |
目标 |
snmpcheck简单易用,可以快速的攻击目标,但是它不能帮助我们了解OID树形结构。这篇文章中,我们将介绍如何探测指定的OID树。这样允许高级用户探测感兴趣的内容,而不是由程序自动发送请求及收集所有信息,不管是有用的,还是无用的。 这篇文章里面,我们会介绍另一款工具snmpwalk.它可以帮助我们对目标做一些细微的探测。 |
目标对象 |
这篇文章针对的是高级读者。假设读者已经深入理解SNMP协议,掌握SNMP,OID树结构等。用户应该知道,什么是OID,如何浏览OID树结构,需要获取什么数据。 稍候会给读者介绍一点OID基础,但要注意这不能取代自我学习。如果不熟悉OID,我强烈推荐阅读MIB& OID,然后结合本文的知识,你将获益匪浅。 |
为何寻找额外的工具 |
确实,使用一个工具这不是什么问题。但是,有时候因为需求,我们需要选择其他的工具;总会有一种方法,能够将任务完成的很漂亮。当我们学习某些东西的时候,需要的不仅仅是工具。这样能够帮我们了解什么时候事情会失败,怎么样做会更好。 snmpcheck已经能够完成任务,如果我们想要获取更多的信息,这样可能会发送许多的请求。我们不想这么做,但是我们无法控制工具的行为,除非我们修改它。 发送许多的请求,这并不是一个好主意,我们更需要的是用最少的数据包去探测目标,这样可以降低触发入侵防护设施的机率。 snmpwalk会发送一个请求,以便获取OID的位置,但如果OID应答中包含子树,snmpwalk会探测下面的所有节点,这样会针对性的发送一些请求。高级用户与新手之间最大的不同就在这里。高级用户知道自己正在做什么,新手不知道自己探测指定OID的过程中,发送了多少网络请求。后面会介绍有子树,与无子树这两种情况。 |
假设 |
|
Object ID(OID) 概述 | |||||||
我将粗略的介绍一下对象标识(OID),因为它是snmpwalk的核心.用户可以通过指定的OID去遍历探测MIB树形结构中的对象。 | |||||||
OID树形结构很清晰。每个snmp对象用数字标识,如下所示: | |||||||
|
ROOT |
| |||||
Iso(1) | |||||||
Org(3) | |||||||
Dod(6) | |||||||
Internet(1) | |||||||
|
|
|
|
| |||
Directory(1) |
Mgmt(2) |
Experimental(3) |
Private(4) |
从上面的结构中,我们了解到,ISO对象的OID是1,root的第三个对象是org。所以,如果想参考Iso,需要指明OID是1;类似的,如果是org,OID则是1.3,dod则是1.3.6。如果你觉得这个没什么用,这意味着,可能需要额外再读一次。下面介绍一下snmpwalk如何从远程主机的SNMP服务获取信息。 |
SNMPWALK |
snmpwalk 可以针对性的查询网络设备,获取树信息。发送GETNEXT请求,snmpwalk会查询OID下面的所有变量,并将根据请求结果返回给用户。这个工具有许多的开关,大部分都很重要。 |
root@gnu:~# snmpwalk -c public192.168.1.105 -v1 1 iso.3.6.1.2.1.1.1.0 = STRING: "Linuxruby 2.6.32-5-686 #1 SMP Tue May 13 16:33:32 UTC 2014 i686" iso.3.6.1.2.1.1.2.0 = OID:iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks:(2249333) 6:14:53.33 iso.3.6.1.2.1.1.4.0 = STRING: "Me<me@example.org>" iso.3.6.1.2.1.1.5.0 = STRING:"ruby" iso.3.6.1.2.1.1.6.0 = STRING:"Sitting on the Dock of the Bay" iso.3.6.1.2.1.1.7.0 = INTEGER: 72 iso.3.6.1.2.1.1.8.0 = Timeticks: (0)0:00:00.00 iso.3.6.1.2.1.1.9.1.2.1 = OID:iso.3.6.1.6.3.10.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID:iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.3 = OID:iso.3.6.1.6.3.15.2.1.1 iso.3.6.1.2.1.1.9.1.2.4 = OID:iso.3.6.1.6.3.1 iso.3.6.1.2.1.1.9.1.2.5 = OID:iso.3.6.1.2.1.49 iso.3.6.1.2.1.1.9.1.2.6 = OID:iso.3.6.1.2.1.4 iso.3.6.1.2.1.1.9.1.2.7 = OID:iso.3.6.1.2.1.50 iso.3.6.1.2.1.1.9.1.2.8 = OID:iso.3.6.1.6.3.16.2.2.1 iso.3.6.1.2.1.1.9.1.3.1 = STRING:"The SNMP Management Architecture MIB." iso.3.6.1.2.1.1.9.1.3.2 = STRING:"The MIB for Message Processing and Dispatching." iso.3.6.1.2.1.1.9.1.3.3 = STRING:"The management information definitions for the SNMPUser-based Security Model." iso.3.6.1.2.1.1.9.1.3.4 = STRING:"The MIB module for SNMPv2 entities" iso.3.6.1.2.1.1.9.1.3.5 = STRING:"The MIB module for managing TCP implementations" iso.3.6.1.2.1.1.9.1.3.6 = STRING:"The MIB module for managing IP and ICMP implementations" iso.3.6.1.2.1.1.9.1.3.7 = STRING:"The MIB module for managing UDP implementations" iso.3.6.1.2.1.1.9.1.3.8 = STRING:"View-based Access Control Model for SNMP." iso.3.6.1.2.1.1.9.1.4.1 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.2 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.3 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.4 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.5 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.6 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.7 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.8 = Timeticks:(0) 0:00:00.00 iso.3.6.1.2.1.25.1.1.0 = Timeticks:(2572475) 7:08:44.75 iso.3.6.1.2.1.25.1.2.0 = Hex-STRING:07 DE 08 0A 13 0C 1B 00 2D 04 00 iso.3.6.1.2.1.25.1.3.0 = INTEGER:1536 iso.3.6.1.2.1.25.1.4.0 = STRING:"BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-686root=UUID=a01d3689-98bb-47e9-9be0-fe57c7d89628 ro quiet " iso.3.6.1.2.1.25.1.5.0 = Gauge32: 3 iso.3.6.1.2.1.25.1.6.0 = Gauge32:123 iso.3.6.1.2.1.25.1.7.0 = INTEGER: 0 End of MIB |
root@gnu:~# snmpwalk -c public192.168.1.105 -v1 1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Linux ruby 2.6.32-5-686 #1SMP Tue May 13 16:33:32 UTC 2014 i686" |
we can also use iReasoning MIB Browser and SnmpB.
参考链接
http://resources.infosecinstitute.com/vulnerability-assessment-of-snmp-service-part-4/
http://pen-testing.sans.org/blog/2013/05/31/invasion-of-the-network-snatchers-part-i