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 only
和 read 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 将会为我们设置这个选项。