我试图使用Scapy发送创建的MACSec数据包,以模拟重放保护故障。我不打算接收和处理它们,只是为了发送和捕获(使用tcpdump)。
Scapy的MACSec实现的问题是,我找不到一种方法来增加每个数据包的PN数,在这一端似乎都是静态的,这是一个问题,因为我不能模拟无序事件。
循环是如何动态修改PN的(例如,添加1)?
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()发布于 2022-05-01 11:44:16
您可以在一个循环中创建替罪羊SA,为每个SA增加PN,并为每个SA发送一个数据包。
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 packetshttps://stackoverflow.com/questions/70984996
复制相似问题