如何使用scapy将选项缩放添加到tcp数据包

时间:2015-04-17 16:54:51

标签: python linux tcp scapy

我的tcp包是:

SYN=IP(dst=dest)/TCP(sport=sp, dport=dp, flags="S", window=65535)

我想以这种方式将选项窗口缩放添加到我的TCP数据包中:

enter image description here

我如何用scapy

做到这一点

1 个答案:

答案 0 :(得分:1)

在文件scapy/layers/inet.py中,有一个可以添加到数据包的TCP选项列表:

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")
                },
              { "EOL":0,
                "NOP":1,
                "MSS":2,
                "WScale":3,
                "SAckOK":4,
                "SAck":5,
                "Timestamp":8,
                "AltChkSum":14,
                "AltChkSumOpt":15,
                "Mood":25
                } )

添加了window scale选项WScale的数据包示例:

x=Ether()/IP()/TCP(sport=sp, dport=dp, options=[('WScale', 100)])

Wireshark正确识别该选项。