【问题标题】:Configure STP protocol via scapy通过 scapy 配置 STP 协议
【发布时间】:2020-07-14 16:11:56
【问题描述】:

我需要使用 scapy 生成和 STP 流量,当我通过 wireshark 对其进行可视化时,我得到的输出类似于下图所示的标题: 当我运行这段代码时:

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,因为我相信这是制造这个问题的人

【问题讨论】:

    标签: python-3.x protocols scapy spanning-tree


    【解决方案1】:

    你忘记了图层 SNAP

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

    • 示例 1:您的代码。
    • 示例 2:添加了 SN​​AP 层

    两个例子:

    from scapy.layers.inet import SNAP
    from scapy.layers.l2 import Ether, LLC, STP
    data = "STP"
    

    示例编号 1:

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

    输出:

    ###[ 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'
    

    你看到 scapy 如何在 LLC 层之后解码一个名为 SNAP 的层吗? 这使得解码之后都错了

    所以让我们添加它,所以所有的解码都是正确的:

    示例 2:添加 SNAP 层

    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()
    

    输出:

    ###[ 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,但至少 scapy 似乎对此很满意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2011-04-10
      • 2014-05-12
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多