SNMP扫描


title: SNMP扫描
date: 2016-06-10 09:56
tags: kali渗透测试 主动信息收集


0x00 SNMP扫描

简单网络管理协议扫描,SNMP的客户端通常使用的是162端口,而服务器通常使用的是161端口。有些类似于DHCP协议(基于UDP之上的应用层协议,服务端使用67port,客户端使用68port)了。一个小发现,服务端喜欢使用单数,而客服端会是双数。

当一网络环境已经初具规模时,若是还是使用人工进行网络的管理的,效率会很低的。这是便需要基于SNMAP的网络监控机制,负责监控内部网络的比如网络交换机,服务器,防火墙,cpu,带宽,并发连接数等系统资源。

SNMP无论是对网络管理员还是hacker而言都是信息的金矿宝地。但是很多的网络管理者往往错误的对待SNMP的配置规则,只是简单的以为只要网络连通了边万事大吉了。

比如SNMP的默认配置中会使用public来作为communicate的默认秘钥。如果是private的话,那便更好玩了,直接更改它的SNMP配置。要是manager,那简直不可想像。。。对于这些简单的SNMP配置,简单的字典爆破就可以搞定了。


0x01 SNMP 的MIB库

SNMP的工作原理其实就是通过SNMP的客户端(但是客户端必须先导入对应的MIB库),然后通过MIB库来获得服务器信息。

国际标准组织制定了一个MIB(Management Information Base) Tree的SNMP查询标准库(树形网络设备管理功能数据库)。通过该库可以查询OS或者服务器的一些常用信息。有的设备商也会有自己的MIB库,如思科等。


0x02 SNMP的服务端

在Windows下打开添加删除程序,添加windows组件,管理和监控工具,安装SNMTP服务。然后打开服务,可以看到现在多出了,snmp servers和

snmp中的陷进,一台电脑一旦安装snmp便成为snmp的服务端了,此时我们可以通过客户端对其发起查询请求。若是服务端没有收到查询请求,那么该服务器上关于电脑性能,流量等参数信息是不会主动向外发送的。

但若是我们对snmp的陷阱进行配置,既是对团体主机(目标主机:该主机一般会是一台监控主机)和陷阱目标进行配置,snmp变回将系统性能参数(我的某个进程down了,内存快慢了,我要没电了)发送给该目标主机。

再来看看snmp的安全选项,这是我们最感兴趣的选项,向吸血鬼闻到血一般,毫无抗拒之力,哈哈。

首先snmp,安全选项的默认设置本身就是不安全的,因为他允许接收来自任何主机的SNMP数据包。验证信息也是将默认的public\作为communicate。这将会埋下极大的安全隐患。

需要知道的是SNMP使用的明文传输。


0x03 onesixtyone

Kali里面也集成了一款常用的MIT查询工具onesixtyone(161)。161是SNMP服务端的端口。
但是onesixtyone并没有很强大,会想NMAP般获得大量的信息,onesixtyone主要作用是用于探测目标服务器的communicate是否是基于弱密码的,比如public:

➜  ~ onesixtyone 192.168.0.113 public

若是没有任何返回信息,那么代表目标没有使用mor的commnicate,或者目标没有安装SNMP服务端。

对于第一种情况我们可以结合字典对其进行爆破

{ Usage $: onesixtyone -c dict.txt -i hosts -o my.log -w 100
}

  • -i hosts:表示待扫描的主机列表。
➜  ~ dpkg -L onesixtyone   
#查询onesixtyone自带的字典信息                          
/usr/share/doc/onesixtyone/dict.txt
➜  ~ onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 
192.168.0.103 -o my.log -w 100 
#使用字典对其进行爆破

0x04 snmpwalk

snmpwalk可以查询到的系统参数信息将会远远多于161扫描。

{ Usage $: snmpwalk host -c communicate -v 2c }

  • -c:表示使用的communicate
  • -v:表示使用的snmpwalk版本,目前有三个版本:1c,2c,3c。
➜  ~ snmpwalk 192.168.0.113 -c public -v 2c

使用MIB中特定的UID号查询目标主机中的特定信息。

➜  ~ snmpwalk -c public -v 2c 192.168.0.113 uid

0x05 snmapcheck

snmpcheck 获得的信息可读性会优于snmapwalk。

➜  ~ snmpcheck -t hosts

可是使用snmpcheck -h查询更多使用方式,

你可能感兴趣的:(SNMP扫描)