Snmp弱口令引起的信息泄露

来自三线的随记

snmp协议简介

snmp协议即简单网络管理协议(SNMP,Simple Network Management Protocol)。目前一共有3个版本:V1,V2c,V3。V3是最新的版本,在安全的设计上有了很大改进。不过目前广泛应用的还是存在较多安全问题的V1和V2c版本,本文讨论的内容也是基于这两个版本。

了解更多snmp协议内容可以参考维基百科 

顾名思义,snmp是用来进行网络管理的。cacti和mrtg等监控工具都是基于snmp协议。snmp协议工作的原理简单点来说就是管理主机向被管理的主机或设备发送一个请求,这个请求包含一个community和一个oid。oid就是一个代号,代表管理主机这个请求想要的信息。比如cpu的使用率的oid可能是112,内存的使用率的oid可能是113.这个oid是约定好的。被管理的主机收到这个请求后,先看请求的community是否和自己保存的一致,如果一致,则把112代表的cpu使用率,或者113代表的内存使用率返回给管理主机。如果不一致,就不会返回任何信息。所以community相当与一个认证的口令。需要提一句的是V1和V2c版本的snmp协议都是明文传输数据的,所以可以通过抓包嗅探等手段获取认证需要的community。

管理主机通过snmp协议除了可以获取被管理主机的信息,还可以修改被管理主机的一些配置信息(通常是路由器等设备)。

通过上面提到的snmp的应用可以总结出snmp弱口令或者口令泄漏引起的安全问题:一是信息泄漏,二是设备的配置可能被修改从而被他人控制。本文讨论第一种情况。

端口

SNMP的端口一般是:snmp get UDP 161 , snmp trap udp 162

标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口

通用的信息泄漏

看一下乌云的几个案例,热热身:

优酷后台访问未设置权限+snmp弱口令

蘑菇街SNMP弱口令一枚

CactiEZ 中文版snmp默认团体名

kingsoft SNMP弱口令

既然大家都说snmp引起信息泄漏,导致服务器可能被入侵。那我们就看看snmp到底可以泄漏那些信息吧。下面是我总结的一些泄漏敏感信息的节点oid(使用snmpwalk指令来获取信息)。欢迎补充指正。

讲人话

snmpwalk -c public -v 2c {设备IP} {OID}

snmpwalk -c public -v 2c 172.xxxxxxx 1.3.6.1.4.1.25506.2.12.1.1.1.1.1

获取到加密后的密码,解密

1.3.6.1.4.1.2011.10.2.12.1.1.1.1.1

1.3.6.1.4.1.2011.10.2.12.1.1.1.2.1

最后一位对应用户,前一位1-2===账号-密码

临时加几个奇怪的参考文献[关于mib 和 oid 从何而来系列]

https://lcx.cc/post/3730/

https://www.freebuf.com/column/144144.html