- A+
SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是著名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
SNMP的通信字符串主要包含两类命令:
GET命令,SET命令。
GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。
SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。但很显然,GET、SET命令都可能被用于拒绝服务攻击(DoS)和恶意修改网络参数。
最常见的默认通信字符串是public(读/写)和private(只读),除此之外还有许多厂商私有的默认通信字符串。几乎所有运行SNMP的网络设备上,都可以找到某种形式的默认通信字符串。
SNMP2.0和SNMP1.0的安全机制比较脆弱,通信不加密,所有通信字符串和数据都以明文形式发送。攻击者一旦捕获了网络通信,就可以利用各种嗅探工具直接获取通信字符串,即使用户改变了通信字符串的默认值也无济于事。
近几年才出现的SNMP3.0解决了一部分问题。为保护通信字符串,SNMP3.0使用DES(DataEncryptionStandard)算法加密数据通信;另外,SNMP3.0还能够用MD5和SHA(SecureHashAlgorithm)技术验证节点的标识符,从而防止攻击者冒充管理节点的身份操作网络。
虽然SNMP3.0出现已经有一段时间了,但目前还没有广泛应用。如果设备是2、3年前的产品,很可能根本不支持SNMP3.0;甚至有些较新的设备也只有SNMP2.0或SNMP1.0。
即使设备已经支持SNMP3.0,许多厂商使用的还是标准的通信字符串,这些字符串对黑客组织来说根本不是秘密。因此,虽然SNMP3.0比以前的版本提供了更多的安全特性,如果配置不当,其实际效果仍旧有限。
SNMP一般使用的是UDP端口161,使用Nessus或者是X-scan等工具可以很方便地找出存在SNMP默认口令的主机,字符串一般都是public或者是private。发现了漏洞之后,我们需要一个工具来进行信息的刺探。
snmputil是一个命令行下的SNMP信息获取工具,使用命令格式为:
snmputil [get|getnext|walk] agent community oid [oid …]
snmputil trap
第一行命令用于刺探信息,第一个参数为字符串方式,有三个可选,walk为显示所有的信息,getnext表示取下一个snmp信息,第二个参数为目标的IP地址 第三个为使用的密码,一般为public,第四个为命令参数,也即所请求的信息,使用oid来表示,是一串数字。典型的命令如下:
snmputil walk 对方ip public .1.3.6.1.2.1.25.4.2.1.2 列出系统进程 snmputil walk 对方ip public .1.3.6.1.4.1.77.1.2.25.1.1 列系统用户列表 snmputil get 对方ip public .1.3.6.1.4.1.77.1.4.1.0 列出域名 snmputil walk 对方ip public .1.3.6.1.2.1.25.6.3.1.2 列出安装的软件 snmputil walk 对方ip public .1.3.6.1.2.1.1 列出系统信息
snmputil还有一个trap的参数,主要用来陷阱捕捉,它可以接受代理进程上主动发来的信息。如果我们在命令行下面输入snmputil trap后回车,然后用错误的团体名来访问代理进程,这时候就能收到代理进程主动发回的报告。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫