首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过scapy配置STP协议

通过scapy配置STP协议
EN

Stack Overflow用户
提问于 2020-07-14 16:11:56
回答 1查看 341关注 0票数 0

我需要使用替罪羊生成和STP流量,当我通过wireshark可视化它时,我得到一个类似于下面所示的标题的输出:

当我运行这段代码时:

代码语言:javascript
复制
from scapy.all import STP
import scapy
from scapy.all import *

data='STP'
sendp(Ether(dst="01:80:c2:00:00:00")/LLC(dsap=0xaa, ssap=0xaa)/STP(bpdutype=0x00, bpduflags=0x01, portid=0x8002)/data, iface="eth1", count=200)

这是我的wireshark输出

我不知道如何将组织代码更改为00:00:0c,因为我相信是它造成了这个问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-16 22:16:19

你忘了那层SNAP

这里有两个示例帮助我调试:

  • 示例1:您的代码.
  • 示例2:添加了SNAP层

这两个例子都是:

代码语言:javascript
复制
from scapy.layers.inet import SNAP
from scapy.layers.l2 import Ether, LLC, STP
data = "STP"

示例number1:

代码语言:javascript
复制
packet = (
    Ether(dst="01:80:c2:00:00:00")
    / LLC(dsap=0xAA, ssap=0xAA)
    / STP(bpdutype=0x00, bpduflags=0x01, portid=0x8002)
    / data
)
packet.show2()

产出:

代码语言:javascript
复制
###[ Ethernet ]### 
  dst       = 01:80:c2:00:00:00
  src       = 4c:d9:8f:77:3b:33
  type      = 0x8870
###[ LLC ]### 
     dsap      = 0xaa
     ssap      = 0xaa
     ctrl      = 3
###[ SNAP ]### 
        OUI       = 0x0
        code      = 0x1
###[ 802.3 ]### 
           dst       = 00:00:00:00:00:00
           src       = 00:00:00:00:00:00
           len       = 0
###[ Padding ]### 
              load      = '\x00\x00\x00\x00\x00\x00\x80\x02\x01\x00\x14\x00\x02\x00\x0f\x00STP'

你看到替罪羊如何在LLC层之后解码一个名为SNAP的层吗?这使得解码后的所有错误。

所以让我们把它加进去,这样所有的解码都是真的:

示例2:添加SNAP层

代码语言:javascript
复制
packet = (
    Ether(dst="01:80:c2:00:00:00")
    / LLC(dsap=0xAA, ssap=0xAA)
    / SNAP()
    / STP(bpdutype=0x00, bpduflags=0x01, portid=0x8002)
    / data
)
packet.show2()

产出:

代码语言:javascript
复制
###[ Ethernet ]### 
  dst       = 01:80:c2:00:00:00
  src       = 4c:d9:8f:77:3b:33
  type      = 0x8870
###[ LLC ]### 
     dsap      = 0xaa
     ssap      = 0xaa
     ctrl      = 3
###[ SNAP ]### 
        OUI       = 0x0
        code      = 0x10b
###[ Spanning Tree Protocol ]### 
           proto     = 0
           version   = 0
           bpdutype  = 0
           bpduflags = 1
           rootid    = 0
           rootmac   = 00:00:00:00:00:00
           pathcost  = 0
           bridgeid  = 0
           bridgemac = 00:00:00:00:00:00
           portid    = 32770
           age       = 1.0
           maxage    = 20.0
           hellotime = 2.0
           fwddelay  = 15.0
###[ Raw ]### 
              load      = 'STP'

看起来好多了。我没有和wireshark试过,但至少替罪羊似乎对此很满意。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62899419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档