Scapy SYN发送我们自己的IP地址

Nol*_*ian 6 python generator scapy send packet

我尝试在我的本地网络上发送SYN数据包并使用Wireshark监控它们,一切正常,除非我尝试将数据包发送到我自己的IP地址,它似乎"工作",因为它说发送1数据包,但它是没有真正发送,我看不到Wireshark中的数据包,也没有任何数据包的答案.我的设置是计算机A(192.168.0.1),其中TCP套接字服务器侦听端口40508,计算机B(192.168.0.2).

在计算机B上我测试:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

它工作正常,我看到Wireshark上的SYN数据包和192.168.0.1的SYN/ACK响应

在计算机A我测试:

ip=IP(src="192.168.0.1",dst="192.168.0.2")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

它工作正常,我看到SYN数据包和RST/ACK(没有服务器侦听192.168.0.2上的端口40508,因此它发送RST/ACK)响应来自192.168.0.2

但是当我尝试使用计算机A:

ip=IP(src="192.168.0.2",dst="192.168.0.1")  
SYN=TCP(sport=40508,dport=40508,flags="S",seq=12345)
send(ip/SYN)
Run Code Online (Sandbox Code Playgroud)

Wireshark中没有任何内容,好像数据包从未发送过,但它像其他测试一样说:发送1个数据包.并且没有任何错误返回.如果我在计算机B上运行相同的测试并尝试将数据包发送到自己的IP地址,我遇到了同样的问题.

对于我的程序,我真的需要将SYN数据包发送到我自己的IP地址,有没有办法做到这一点还是不可能?

提前致谢,

Nolhian

Ale*_*lli 2

您的 Wireshark 安装正在侦听什么网络设备?我怀疑它正在监听实际的网卡(以太网、wifi 或其他,根据 Wireshark FAQ)——当从计算机发送到自身时,操作系统当然可以绕过设备(为什么要费心呢?)通过在内核内存中的 TCP/IP 堆栈中复制位来执行“发送”。

换句话说,我怀疑你的数据包发送正常,只是 Wireshark 可能看不到它。为了验证这个假设,您可以尝试(例如)使用浏览器访问本地计算机上存在和不存在的端口,并查看 Wireshark 是否看到这些数据包

  • 非常感谢您的帮助,在那里找到了答案的第二部分:http://www.secdev.org/projects/scapy/doc/troubleshooting.html#i-can-t-ping-127-0-0- 1-scapy-does-not-work-with-127-0-0-1-or-on-the-loopback-interface 如果路过的人也在搜索解决方案:) (2认同)