【问题标题】:Scapy TCP HandshakeScapy TCP 握手
【发布时间】:2020-09-18 10:00:56
【问题描述】:

想法

我正在尝试与 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)

设置

另外作为一个重要的评论,我在 Windows 10 上运行

Wireshark

因为似乎包裹永远不会到达我的计算机,所以我打开了wireshark并在那里找到了所需的包裹,但是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>

【问题讨论】:

  • 嗯,您是否向 Web 服务器发送了一些内容以便它可以向您发送响应?否则 Web 服务器将无限期地等待请求。因为您使用的this code 建立了一个连接,而不仅仅是发送ACK 和其他东西。
  • 抱歉,您的意思是sr1(ip/SYNC) 挂了?假设我创建了示例中缺少的SOURCE_HOST,此代码似乎可以在我的机器上完美运行。
  • @Torxed 是的,我的 sr1(ip/SYN) 挂起,尽管服务器发送了 SYN-ACK 包,但它没有收到。我在stackoverflow上格式化了错误的代码,所以隐藏了DESTINATION_HOST,但现在代码(没有导入)与我机器上的完全一样。我猜你的意思是 DESTINATION_HOST 不见了?
  • 我有些怀疑它是否真的发送了它,至少没有将它发送到正确的机器。如果你在欺骗 IP 肯定会出现问题,如果你在本地机器上做所有事情可能会出现问题,如果是虚拟机可能会出现问题,如果你有路由器也可能会出现问题 :) 我们知道您的设置没有任何内容,您的问题对于您尝试过的内容以及当前情况的情况含糊不清。
  • 我并没有试图欺骗我的 IP,SOURCE_HOST 是我从路由器获得的实际本地 IP 地址。而且我也不是在虚拟机上,路由器当然可能是个问题,但是我要实现的任务不应该依赖于路由器,我只是想手动创建一个普通的 TLC 握手发送 SYN 并在收到 SYN-ACK 数据包后发送 ACK 数据包。 @Torxed,我很高兴让我的问题更具体或更详细地解释我的设置,但恐怕我不知道如何更具体地解决这个问题,而且我的设置非常标准。

标签: python networking tcp scapy


【解决方案1】:

解决方案

好的,我解决了重新安装 NPcap 的问题,并在 WinPcap 兼容模式下安装了它。我不知道它是否可以仅以普通方式安装,没有兼容模式,因为我已经安装了最新版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2017-07-08
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    相关资源
    最近更新 更多