首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修改Scapy (MACSec)发送的每个数据包的PN字段

如何修改Scapy (MACSec)发送的每个数据包的PN字段
EN

Stack Overflow用户
提问于 2022-02-04 10:39:00
回答 1查看 69关注 0票数 0

我试图使用Scapy发送创建的MACSec数据包,以模拟重放保护故障。我不打算接收和处理它们,只是为了发送和捕获(使用tcpdump)。

Scapy的MACSec实现的问题是,我找不到一种方法来增加每个数据包的PN数,在这一端似乎都是静态的,这是一个问题,因为我不能模拟无序事件。

循环是如何动态修改PN的(例如,添加1)?

代码语言:javascript
复制
sa = MACsecSA(sci=b'\x52\x54\x00\x13\x01\x56\x00\x01', an=0, pn=1, key=b'aaaaaaaaaaaaaaaa', icvlen=16, encrypt=1, send_sci=1)

p = Ether(src='02:00:48:e2:00:01', dst='10:0e:7e:c3:c2:40')/IP(src='192.168.0.1', dst='192.168.0.2')/ICMP(type='echo-request')/"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"

m = sa.encap(p)
sendp(m count=5)
m.show()
EN

回答 1

Stack Overflow用户

发布于 2022-05-01 11:44:16

您可以在一个循环中创建替罪羊SA,为每个SA增加PN,并为每个SA发送一个数据包。

代码语言:javascript
复制
packet = Ether(dst=dmac, src='10:20:30:40:50:70') / Dot1Q(vlan=vlan) / \
                     IP(dst='100.100.100.3', src='192.168.0.1') / Raw(load='a' * 1000)
packets = []
for pn in range(100, 200):
    scapy_sa = MACsecSA(sci=ssci, an=0, pn=pn, key=bytes(sak, 'ascii'), encrypt=1, send_sci=1, icvlen=16)
    packets.append(scapy_sa.encrypt(scapy_sa.encap(packet)))
            
            # send your packets
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70984996

复制
相关文章

相似问题

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