python - 如何使用 python scapy 创建示例 IPSec 数据包

标签 python python-2.7 python-requests scapy

我将在两个路由器之间创建一条 VPN 隧道。所以我需要通过 VPN 隧道发送 scapy 生成的一些原始数据包。基本上我需要生成一些原始 IPSec 数据包。

最佳答案

这是 scapy 的 IPSec 测试文件 https://github.com/secdev/scapy/blob/master/test/ipsec.uts

它提供了很多示例,例如

import socket

p = IP(src='1.1.1.1', dst='2.2.2.2')
p /= TCP(sport=45012, dport=80)
p /= Raw('testdata')
p = IP(raw(p))
p

sa = SecurityAssociation(ESP, spi=0x222,
                         crypt_algo='NULL', crypt_key=None,
                         auth_algo='NULL', auth_key=None)

e = sa.encrypt(p)
e

assert(isinstance(e, IP))
assert(e.src == '1.1.1.1' and e.dst == '2.2.2.2')
assert(e.chksum != p.chksum)
assert(e.proto == socket.IPPROTO_ESP)
assert(e.haslayer(ESP))
assert(not e.haslayer(TCP))
assert(e[ESP].spi == sa.spi)
assert(b'testdata' in e[ESP].data)

d = sa.decrypt(e)
d

关于python - 如何使用 python scapy 创建示例 IPSec 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51414752/

相关文章:

python - 从 Bigquery 中读取几行作为辅助输入,得到 None

python - 如何使用 Python 从 .aspx 页面检索数据?

python - Renpy 和请求

python - Python 3.x 的 HTTP 请求库

python - requests-mock:如何匹配模拟端点中的 POSTed 有效负载

python - 在python中根据字典映射赋值

python - 由于环境错误 : [Errno 2] No such file or directory\\METADATA,无法安装包

python - 如何删除 matplotlib 中轴值中的指数文本?

Python Pandas 检查一个值是否在同一天出现多次

python - 乙状结肠运行时警告 : overflow encountered in exp