Sockstress腳本DoS攻擊原理及實戰演示

首先說一說放大攻擊及Sockstress相應原理

放大攻擊原理:攻擊者向目標發送一個很小的流量,但是會造成產生的攻擊流量是一個巨大的、成百上千倍上萬倍流量被放大的一個效果,才適合作爲一個拒絕服務攻擊效果。(實現攻擊者很小的流量打垮一個看似很大的被攻擊者)

 

對於主題Sockstress主要作用即:建立了連接,但是不傳數據,而且這個連接不會斷開,佔用資源,最後導致拒絕服務攻擊
————————————————
Sockstress是2008年由Jack C. Louis發現的,其主要針對TCP服務的拒絕服務攻擊
目的在於:消耗被攻擊目標系統資源,但不消耗網絡帶寬資源,會產生大量TCP連接但不會產生大量流量;在與攻擊目標建立大量socket鏈接;當完成三次握手、最後的ACK包window大小爲0(客戶端不接收數據)(再回數據的時候,客戶端與服務器端都會各自相對方確認自己的空間大小,防止雙方各自傳送內容過大,主要是流控的作用)

對於攻擊者的優勢:

1、攻擊者資源消耗小(CPU、內存、寬帶)
2、異步攻擊,單機可拒絕服務高配資源服務器

主要機理在於:window窗口實現的TCP流控(在第三次傳送ACK包的時候出現)
:利用流控的攻擊特性,造成攻擊:攻擊者將ACK包中的流控大小修改爲0,然後促使ACK不停發向服務器,那麼就會造成拒絕服務。在服務器看來就是客戶端暫時沒有空間來接受數據流量,所以服務器一直處於等待狀態;但是攻擊者只需要發完ACK包就行,不需要維持這麼一個連接,所以對於攻擊者就不會消耗巨量的CPU內存、帶寬資源(以小搏大,放大)。

 

 

接下來用實戰進行演示:

準備工具:kali、metasploitable靶機、Jack C. Louis的c腳本

腳本下載地址:https://github.com/defuse/sockstress 

首先:確定好兩個機器ip地址,下載腳本並對腳本c文件進行編譯,,同時靶機進行top監視系統資源。

git clone https://github.com/defuse/sockstress 
gcc -Wall -c sockstress.c 
gcc -pthread -o sockstress sockstress.o 

 

使用./sockstress可以查看相關的參數: 

 接下來需要對防火牆規則進行限制:

因爲當腳本對目標發起攻擊時,主機是不會響應ACK包,但在操作系統內部如果不對其限制,默認是會由系統響應RST包表示連接可以斷開,這樣達不到一直建立連接的效果。

iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP
iptables -L     #查看配置

當完成配置後就可以執行程序了,然後就可以看到對比靶機上的效果,主要是cup內存、free空間、交換空間的變化,當一直減小那麼說明效果已經體現了。

————————————————————

以上便是對Sockstress攻擊的利用及原理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章