Scapy TCP握手

问题描述 投票:0回答:1

想法

我试图与Scapy建立一个3路TCP握手协议

问题

我在Wireshark中看到SYN-ACK包,但sr1从未终止,似乎也没有收到任何包。

编码

我有一个简单的设置来测试与Scapy的TCP握手。

DESTINATION_HOST = "194.232.104.142" 
DESTINATION_PORT = 80

SOURCE_PORT = 50210
SOURCE_HOST = "192.168.0.31"



#create a TCL Handshake
#SYN
ip = IP(src=SOURCE_HOST,dst=DESTINATION_HOST)
SYN = TCP(sport=SOURCE_PORT, dport=DESTINATION_PORT, flags='S', seq=1000)
SYNACK =sr1(ip/SYN) #send the package and wait for the answer

#ACK
ACK = TCP(sport=SOURCE_PORT, dport=DESTINATION_PORT, flags='A', seq=SYNACK.ack, ack=SYNACK.seq + 1)
send(ip/ACK)

设置

My setup and wanted behaviour另外,作为一个也许很重要的评论,我在Windows 10上运行。

Wireshark

因为好像包永远到不了我的电脑,我打开wireshark,在那里找到了想要的包,但是nethertheless,sr1没有终止,甚至。

ans = sniff(filter=f"tcp port {DESTINATION_HOST}",lfilter=match_packet,count=12,timeout=10)
print(ans)

甚至:

def match_packet(self, pkt):
    if pkt.haslayer(IP) and pkt[IP].dst == SOURCE_HOST \
            and pkt.haslayer(TCP) and pkt[TCP].dport == SOURCE_PORT:
            #and pkt[TCP].ack == self.seq_next:
        return True
    return False

返回

<Sniffed: TCP:0 UDP:0 ICMP:0 Other:0>

Wireshark protocoll

python networking tcp scapy
1个回答
0
投票

解决办法

好吧,我解决了重装NPcap的问题,我以WinPcap兼容模式安装。我不知道只用普通的方式安装,而不使用兼容性模式是否会成功,因为我已经安装了最新的版本。

© www.soinside.com 2019 - 2024. All rights reserved.