通过hping3build立TCP连接

当客户端通过hping3(非欺骗)发送10个TCP SYN数据包时,服务器响应并发送10个TCP SYN + ACK数据包。 现在客户端应该回答服务器和build立连接通过发送10个ACK数据包,但客户端发送10 RST并终止半打开连接(我猜这是因为Linux内核响应)。

我怎么能每秒发送10个SYN数据包(到不同的源端口相同的目的地),并作为对SYN + ACK的响应,发送ACK并build立连接? 非常感谢

您不能在本地TCP / IP堆栈之外的用户空间创build数据包,并期望内核接受未经请求的SYN / ACK数据包作为响应。 内核是正确的RST数据包根据RFC标准 。 我怀疑hping3将能够实现你正在寻找的东西。

如果你对Python感到满意,你可以看看Scapy ,它将允许你在用户空间发送接收数据包。 下面是在Scapy中创build一个三方握手的简单例子 。

hping3通常被用作攻击工具,试图破坏正常的做事方式 – 在所描述的情况下,三次握手 – 以造成对目的地的损害。

有一个工具来build立大量的TCP连接可能被归类为压力testing工具而不是攻击工具。

-S这是hping3最受欢迎的选项,是指SYN泛滥攻击,我会猜测这是你使用的。 在这种模式下,hping3发送大量的SYN消息,但是故意避免发送三次握手的最后一个消息。 这些关系是“半开放”的,受害者已经为这些关系的整体承担了大量的资源(理论上)。

在你的情况下,攻击机器的内核几乎立即发出RST消息,防止攻击完成。 这是由@MarkoPolo提到的原因。 如果这种攻击行得通,那么实际上你应该会看到来自与每个SYN对应的受害者的SYN-ACK消息的几次重传尝试。

如果您的计划实际上是成功执行攻击,那么我build议您input防火墙规则,以有效地丢弃您的传出RST消息。

 iptables –A OUTPUT –p tcp –s 192.168.56.101 --tcp-flags RST RST –j DROP