gpt4 book ai didi

python - 使用 scapy 在 tcp 中添加选项

转载 作者:可可西里 更新时间:2023-11-01 02:43:35 24 4
gpt4 key购买 nike

在收到这样的 TCP ACK(带有选项实验)时

enter image description here

我想生成一个 TCP SYN+ACK(带有选项实验和快速打开 Cookie),如下所示

enter image description here

我想用 scapy 生成 TCP SYN+ACK,所以我添加了

所以我在/usr/share/pyshared/scapy/layers/inet.py 中添加了 254 : ("RFC3692-style Experiment","!HHH") > 像这样

TCPOptions = (
{ 0 : ("EOL",None),
1 : ("NOP",None),
2 : ("MSS","!H"),
3 : ("WScale","!B"),
4 : ("SAckOK",None),
5 : ("SAck","!"),
8 : ("Timestamp","!II"),
14 : ("AltChkSum","!BH"),
15 : ("AltChkSumOpt",None),
25 : ("Mood","!p"),
254 : ("Experiment","!HHHH")
},
{ "EOL":0,
"NOP":1,
"MSS":2,
"WScale":3,
"SAckOK":4,
"SAck":5,
"Timestamp":8,
"AltChkSum":14,
"AltChkSumOpt":15,
"Mood":25,
"Experiment":254
} )

在收到 TCP ACK(带有实验选项)后,我执行以下 scapy 函数:

TCP_SYNACK=TCP(sport=Ddport, dport=Ssport, flags="SA", seq=SeqNr, ack=AckNr, options=[('Experiment',0xf989,0xcafe,0x0102,0x0002),('NOP',0),('NOP',0)])
ANSWER=sr1(ip/TCP_SYNACK)

但是我遇到了 python 错误。看起来我在 scapy 的 TCP 数据包中定义选项字段时出错了。我做错了什么?

最佳答案

我认为您需要以 tuple 格式指定可选字段的值,如下所示:

TCP_SYNACK = TCP(sport=Ddport, dport=Ssport, flags="SA", seq=SeqNr, ack=AckNr, options=[('Experiment', (0xf989, 0xcafe, 0x0102, 0x0002)), ('NOP', 0), ('NOP', 0)])

关于python - 使用 scapy 在 tcp 中添加选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30098954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com