一、介绍
1、简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议,工作在UDP 161端口,用于监控目标设备的操作系统、硬件设备、服务应用、软硬件配置、网络协议状态、设备性能及资源利用率、设备报错事件信息、应用程序状态等软硬件信息。
2、SNMP的通信字符串主要包含两类命令:GET命令,SET命令。
1)GET命令从设备读取数据,这些数据通常是操作参数,例如连接状态、接口名称等。
2)SET命令允许设置设备的某些参数,这类功能一般有限制,例如关闭某个网络接口、修改路由器参数等功能。
3)但很显然,GET、SET命令都可能被用于拒绝服务攻击(DoS)和恶意修改网络参数。
二、默认配置
由上面介绍的SNMP服务可以看出SNMP对于渗透测试者来说简直就是信息宝藏,一旦这个服务协议被利用,那么目标的大部分配置信息都会暴露无遗,对于企业来说这是致命的,而想要利用这个协议的弱点只需要服务器管理员缺乏安全意识做一些默认配置。
三、snmp协议攻击
常见攻击场景:
- 暴力破解场景攻击
- 通过非法手段获取用户权限,从而执行未经授权的管理操作
- 拒绝服务式攻击
- 非法报文攻击
- SNMP getbulk反射放大DOS攻击
- 基于snmp的刺探扫描
1、snmp-check
A、snmp-check 支持对windows、类Unix、网络设备、打印机等安装SNMP服务的设备进行攻击。
B、攻击原理:snmp-check通过发送各种预定义的OID对目标进行探测,收集目标SNMP管理的信息。
C、基础语法:snmp-check 192.168.1.109 -c public -v 2c
参数:
-p 指定SNMP服务端口
-c 指定community(默认 public)
-v 指定snmp版本(1、2c,默认1)
-w 检查是否可写
-r 重试次数(默认1次)
-t 超时时长(默认5秒)
2、snmpwalk或snmpget
在kali下可以用snmpwalk或snmpget命令来和snmp主机进行交换数据。
Snmpwalk –c public –v2c IP oid
1.snmputilwalk对方ippublic.1.3.6.1.2.1.25.4.2.1.2列出系统进程
这样就可以使入侵者在入侵之前就知道你系统运行的软件,有没有装杀毒软件,
从而知己知彼,百战不殆!
2.snmputilwalk对方ippublic.1.3.6.1.4.1.77.1.2.25.1.1列系统用户列表
有了这个更好了,入侵者可以根据你的用户表编一个密码表进行探测,
减少了入侵的盲目性。
3.snmputilget对方ippublic.1.3.6.1.4.1.77.1.4.1.0列出域名
这个可以列出系统的域名,是入侵者得到了主机名,
可以根据此设置探测的密码字典,增加了成功率。
4.snmputilwalk对方ippublic.1.3.6.1.2.1.25.6.3.1.2列出安装的软件
用这个入侵者可以看你装的sp是什么,有没有装防火墙等信息,
可以据此判断应该有的系统漏洞,增加了入侵的成功率。
5.snmputilwalk对方ippublic.1.3.6.1.2.1.1列出系统信息
这个可以使入侵者了解系统状况以及主机的稳定性,可以从主机的uptime里得知你系统开机了多长时间,从而确定是否入侵。