使用Scapy进行TCP空扫描

时间:2010-11-04 05:00:22

标签: tcp network-programming scapy port-scanning

有人可以指导我如何将Scapy中的数据包发送到IP地址,并将TCP标头中的所有标志设置为空吗?到目前为止,我尝试发送数据包而没有指定要设置的标志,但似乎每次发送数据包时都会设置Syn标志。

我想知道它,以便我可以了解有关TCP Null Scans的更多信息。非常感谢你的帮助和指导。

3 个答案:

答案 0 :(得分:2)

我没有使用Scapy,但是从文档的快速扫描中可以看到创建TCP数据包的示例,同时在文档的这个页面上指定要设置的标志:

http://www.secdev.org/projects/scapy/doc/usage.html#simple-one-liners
sr( IP(dst="192.168.1.*")/TCP(dport=80,flags="S") )

也许你可以尝试这样的命令,用空字符串“”?即TCP(dport = 80,flags =“”)?

答案 1 :(得分:0)

如果您不想实际发送TCP标头,那么最好只设置IP数据包的协议并在其上粘贴一串零。

sr( IP(dst="192.168.1.", proto="TCP")/"\0"*50)

编辑:我对语法不是很肯定,你可能不得不使用协议号而不是“TCP”

答案 2 :(得分:0)

感谢Andy和Jdizzle的建议。

我早些时候尝试过Andy推荐的东西,但是当我在wireshark上检查时,数据包在某种程度上似乎设置了Syn Flag。

好消息是,我解决了这个问题,在创建要发送的数据包时,可以将标志设置为null。

创建数据包 - > a = TCP()然后通过 - >将标志设置为零; a.flags = 0 在准备要通过网络发送的数据包之前,还可以使用此方式预设许多其他属性。您可以通过 - >查看这些属性ls(a)

其中a =数据包的名称。

这成功了!