snmp&snmpwalk

161端口——snmp协议

参考资料:

SNMP = simple network manage protocol = 简单网络管理协议

一个路由器,用SNMP协议报告带宽利用率、冲突率等信息。当snmp协议 配置不当,会泄露系统信息。

?该服务的目的。为了管理网络设备。

案例

开启msfconsole后

use scanner/snmp/snmp_enum

set RHOSTS 192.168.1.0/24(配合zmap寻找目标)

set THREADS 50

run 开始扫描

一连找了7、8个161开放的主机,但是snmp请求总是超时。

…… 可能是哪里出现了问题。

! snmp_enum是用来寻找161开放主机的…… 它效率还不高

在已获得目标的情况下,用snmp_login尝试登陆

在我几乎要放弃的时候,奇迹发生了:》

可以看到它的权限是 read-only只读,如果运气好找到 read-write 那就更好了。

默认账号和密码:public、private

snmp弱口令探测(这里的弱口令是指snmp管理时用到的团体字符串。一般可读权限的为public,可读可写的默认为private)

snmpwalk 使用snmp协议,请求OID对象标识。

snmpwalk -c public -v 1 10.10.10.105

Metasploit的snmp辅助模块

原文

   继续我们的信息搜集,让我们看看 SNMP扫描。snmp在寻找具体的系统信息方面 ,或者实际的获取远程设备权限方面很有用。如果你能够发现cisco设备运行着 private字符串,你可以下载整个设备的设置,更改它,并且上传你自己的恶意代码。通常密码是7等级加密,这意味着它们很容易就能解密并获取登陆密码。

Metasploit内置了辅助模块用来扫描snmp设备。这里有许多要点需要知道在我们开始snmp扫描之前。

首先read onlyread write public字符串对于什么类型的信息能够被获取或者更改很重要。如果你能‘猜’出只读或者读写字符串,你可以获取很多平常方法获取不到的入口。并且,如果基于windows的设备配置了snmp,经常是 只读或者读写团体字符串,你可以获取补丁等级,运行的服务,上一次关机时间,系统的用户名,途径,和许多对于攻击者很有用的方法。

注意:默认的Metasploitable(用来测试meta的linux靶机,译者注) 的smnp设备仅仅监听localhost。这里有许多示范来使你改变这些默认设置。开启并编辑“/etc/defauld/snmpd”

并且改变下面的:

SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1’

变为:

SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 0.0.0.0’

设置需要重启生效。一旦重启,你可以在攻击机器上扫描这个设备了。

什么MIB?

当探索snmp时,这里有叫做mib的API。MIB代表management information base,管理信息库。

SNMP协议有3种方式在客户端和远程SNMP设备之间进行身份验证,在SNMP v1和SNMPv2版本中,使用可读的字符串数据类型即社区字符串(公开或私有)来进行认证。

而在SNMP_v3中,用户则可以选择用户名、密码和身份认证方式进行安全验证。另外,像对象标识符(oids)和陷阱消息(traps)等其它内容信息将会统一保存在管理信息库(MIB)中进行存储。译者注_

这个界面允许你探寻设备并且提取信息。Matasploit载入了一些默认的MIBs,在数据库里,meta使用它们来寻找更多的信息取决于获取的入口的等级。让我们来看看辅助模块。

search snmp 使用snmp_login爆破登陆名

use auxiliary/scanner/snmp/snmp_login

set RHOSTS ip范围

set THREADS 10

run

……

[*]**192.168.1.50 ‘public’ **’APC Web/SNMP Management Card (MB:v3.8.6 PF:v3.5.5 PN:apc_hw02_aos_355.bin AF1:v3.5.5 AN1:apc_hw02_sumx_355.bin MN:AP9619 HR:A10 SN: NA0827001465 MD:07/01/2008) (Embedded PowerNet SNMP Agent SW v2.2 compatible)’[*]Auxiliary module execution completed

(上面是有用的部分的扫描结果)我们可以找到一个团体字符串‘public’。这最可能是read-only 并且没有揭示很多信息。我们知道了这个设备是APC Web/SNMP设备,和运行的版本。

SNMP Enum

当运行snmp扫描模块,我们可以搜集到许多信息例如开放端口,服务,主机名,进程,和正常运行时间。

使用metasploitable虚拟机作为我们的目标,我们将运行 auxiliary/scanner/snmp/snmp_enum模块,并且看看会提供给我们什么信息。首先我们加载模块并且设置RHOST选项,使用存储在我们的workspace里的信息。

使用 host -R 将会为我们设置这个选项。