Tcp

通過 hping3 建立 TCP 連接

  • March 9, 2017

當客戶端通過 hping3(非欺騙)發送 10 個 TCP SYN 數據包時,伺服器響應並發送 10 個 TCP SYN+ACK 數據包。現在客戶端應該通過發送 10 個 ACK 數據包來響應伺服器並建立連接,但客戶端發送 10 個 RST 並終止半開連接(我猜這是因為 linux 核心響應)。

我如何每秒發送 10 個 SYN 數據包(到具有不同源埠的同一目的地)並響應 SYN+ACK,發送 ACK 並建立連接?非常感謝

您不能在本地 TCP/IP 堆棧之外的使用者空間中製作數據包,並期望核心接受未經請求的 SYN/ACK 數據包作為響應。核心有權按照RFC 標準對數據包進行 RST 。我懷疑 hping3 能否實現您的目標。

如果您對 Python 感到滿意,您可以研究Scapy,它允許您在使用者空間發送接收數據包。這是一個在 Scapy 中創建三次握手的簡單範例。

hping3 通常用作一種攻擊工具,它試圖破壞正常的做事方式(在所描述的情況下為 3 次握手),以便對目的地造成損害。

擁有建立大量 TCP 連接的工具可能會被歸類為壓力測試工具而不是攻擊工具。

-Shping3 最流行的選項是指 SYN 泛洪攻擊,我猜這就是你使用的。在這種模式下,hping3 發送大量 SYN 消息,但有意避免發送 3 次握手的最後一條消息。連接處於“半開”狀態,受害者已經為這些連接的全部投入了大量資源(理論上)。

在您的情況下,攻擊機的核心幾乎立即發出 RST 消息,阻止攻擊完成。@MarkoPolo 提到了這樣做的原因。如果攻擊成功,您實際上應該會看到來自受害者的與每個 SYN 對應的 SYN-ACK 消息的多次重傳嘗試。

如果您的計劃實際上是成功執行攻擊,那麼我建議您輸入防火牆規則以有效地丟棄您傳出的 RST 消息。

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

引用自:https://serverfault.com/questions/779681