Python 协议攻击脚本(六): STP攻击

STP

生成树协议(英语:Spanning Tree ProtocolSTP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太网中无环路的逻辑拓扑结构.从而避免了广播风暴,大量占用交换机的资源.

STP的工作过程如下:

  • 首先进行根网桥的选举,不断发送BPDU,由桥ID最小的为根桥
  • 计算每个节点到根桥的距离,并由这些路径得到各冗余链路的代价,选择最小的成为通信路径(相应的端口状态变为forwarding),其它的就成为备份路径(相应的端口状态变为blocking)。

桥ID:

  1. 交换机设置的优先级(bridge priority)
  2. 交换机自身的mac,越小优先级越高

优先级优先,优先级相同则比较mac

stp欺骗

发送网桥ID很低的精心设计的BPDU,就可以欺骗交换机,使它以为这是根网桥,这会导致STP重新收敛(reconverge),从而引起回路,导致网络崩溃。

stp dos攻击

利用假冒的BPDU数据来消耗交换机的资源,从而达到破坏网络环境的目的.

数据包抓包

需要配置有生成树的网络环境

利用yersinia工具进行STP攻击,进行抓包分析

YERSINIA工具的使用(VLAN跳跃,STP攻击等)

STP欺骗

yersinia -G

mark

交换机发出来的数据包

mark

Scapy中Dot3对应的就是IEEE 802.3协议

Dot3

  • src: 00:03:0f:91:06:73 交换机mac
  • dst: 01-80-C2-00-00-00

链路层中01-80-C2-00-00-00多播地址

链路层发现协议 | wiki

LLC

  • dsap: 0x42
  • ssap: 0x42

STP

  • bridgeid:0
  • bridgemac:00:03:0f:91:06:73 交换机mac

攻击发出的包

mark

发现对mac进行伪造,mac小于了交换机mac,成功了根桥的欺骗

STP

  • bridgeid:0
  • bridgemac:00:03:0f:90:06:73 伪装的MAC

STP Dos

yersinia -G

mark

抓包

mark

随机生成一些字段

编写脚本

STP欺骗

1.抓取STP数据包,并获取当前根桥mac

sniff() :嗅探数据

sniff的帮助信息里面有这样一段

>>> help(sniff)
[...]
stop_filter: Python function applied to each packet to determine if
                     we have to stop the capture after this packet.
                     --Ex: stop_filter = lambda x: x.haslayer(TCP)
[...]

根据例子,可以得出这样的函数lambda x: x.haslayer(STP)

利用这个来抓取STP的数据包

>>> stp = STP()
>>> tcp = TCP()
>>> stp.haslayer(STP)
True
>>> tcp.haslayer(STP)
0
>>> sniff(stop_filter=lambda x: x.haslayer(STP),count=1)
<Sniffed: TCP:0 UDP:0 ICMP:0 Other:1>

提取根桥mac

>>> packet = sniff(stop_filter=lambda x: x.haslayer(STP),count=1)
>>> packet
<Sniffed: TCP:0 UDP:0 ICMP:0 Other:1>
>>> packet[-1]
<Dot3  dst=01:80:c2:00:00:00 src=00:03:0f:91:06:73 len=38 |<LLC  dsap=0x42 ssap=0x42 ctrl=3 |<STP  proto=0 version=0 bpdutype=0 bpduflags=0 rootid=0 rootmac=00:03:0f
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值