Scapy的sr函数没有返回答案

3

我正在尝试使用scapy进行隐形SYN扫描。我在scapy的使用文档中阅读了有关sr函数的内容。它应该为我发送的数据包提供响应。
例如,我尝试运行以下命令:

>>> ans,unans = sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443],flags="S"))

我想向192.168.1.1发送一个SYN数据包,希望立即收到以下答复:
>>> Begin emission:
.......*.**.......Finished to send 3 packets.
**.*.*..*..................
Received 362 packets, got 3 answers, remaining 0 packets

但我没有及时停止,结果SR运行了超过2分钟仍未完成。此外,在强制停止(CTRL + C)后,我得到了以下答案:

Begin emission:
.Finished to send 3 packets.
......................................^C
Received 2040 packets, got 0 answers, remaining 3 packets

我尝试了许多例子,它们最终都出现了这种情况。
有人知道这是为什么吗?我该怎么解决?我的网络配置有问题吗?

另外,我想补充一点,我在两台不同的计算机上的两个不同的Ubuntu虚拟机上尝试过,但在同一个家庭网络上。

谢谢。


你尝试过指定要监听的接口吗?(例如:iface=ethX - Jeff Bencteux
嘿BK。你确定远程机器有响应吗?如果你在scapy旁边打开Wireshark,你能看到响应吗? - Noob123
1个回答

2

你需要添加超时选项,否则sr()会一直运行下去。

ans,unans = sr(IP(dst="192.168.1.1")/TCP(dport=[22,80,443],flags="S", timeout =1))

超时:在最后一个数据包发送后等待的时间。默认情况下,sr将永远等待,用户需要在不再期望收到答案时手动中断(CtrlC)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接