當前位置:
首頁 > 最新 > 黑客利用Python和C實現syn flood攻擊

黑客利用Python和C實現syn flood攻擊

俗話說,知己知彼,百戰不殆。學習攻擊代碼的編寫邏輯,反向實現防攻是每一個運維工程師所要學習的。

了解SYN/ACK Flood 攻擊

這種攻擊方法是經典最有效的 DDOS 方法, 可通殺各種系統的網路服務, 主要是通過向

受害主機發送大量偽造源 IP 和源埠的 SYN 或 ACK 包,導致主機的緩存資源被耗盡或忙

於發送回應包而造成拒絕服務, 由於源都是偽造的故追蹤起來比較困難, 缺點是實施起來有

一定難度, 需要高帶寬的殭屍主機支持。 少量的這種攻擊會導致主機伺服器無法訪問, 但卻

可以 Ping 的通, 在伺服器上用 Netstat -na 命令會觀察到存在大量的 SYN_RECEIVED 狀態,

大量的這種攻擊會導致 Ping 失敗、TCP/IP 棧失效,並會出現系統凝固現象,即不響應鍵盤

和滑鼠。普通防火牆大多無法抵禦此種攻擊。

HOSTSPACE 把python和c的源碼都發出來,如果是學習就用python的代碼,更方便修改其中的內容,如果是做壓力測試的話就用c的代碼,性能比較好威力也比較大。

python攻擊代碼

環境:ubuntu/kali +python 2.7.11

使用方法如下:mode有三種模式 syn攻擊、ack攻擊、混合攻擊,多個線程反而不如單線程快。

i7-6700單線程的速度如下。cpu1已經使用89%了

看一下抓包情況吧,因為只是測試用我也沒帶tcp的options欄位,報文長度也不夠64位元組,不過也能傳到目的地址。

下面是代碼:

C語言攻擊代碼

環境:ubuntu/kali gcc version 6.1.1 20160802 (Debian 6.1.1-11)

使用方法:支持兩個參數 目的ip和目的埠

性能:限制發包速度的是帶寬(我這是100M的網,除去報文的前導碼和幀間隔極限速度差不多就是9m左右了),cpu利用才27%,我在1000Mbps的網速下測試,單線程的話速度能到40m左右,cpu佔用率大約85%左右。所以說在這件事上(syn flood)C的性能要好過python10倍以上。

抓包情況:c的攻擊代碼模擬了真實的chrome發起tcp請求的情況,不僅僅是標準的ip頭+tcp頭還加上了tcp options欄位,mss最大段大小、sack選擇確認、window scale 窗口規模因子,大小總共66位元組。

C語言代碼:各位可以拿去在修改修改,計算校驗和的部分是我在網上抄來的,產生隨機數的種子srand不能用time(),這樣會造成很多報文隨機數部分重複(時間精度是秒),我用的是clock(),這是cpu時間隨機數每個都不會重複。pstcphdr是tcp的偽首部,只參與計算校驗和而不真的發送,代碼中用了linux定義好的Ip.h和tcp.h中的結構,這可能是程序比較快的原因之一。

0×04 結語

還有些注意事項,就是測試的時候不要通過家用路由器(或者一切NAT設備),不然偽造的源地址全都會被替換成真實的,如果你帶寬大的話c語言那個攻擊代碼威力還是很大的,我測試環境下發包30MB/s,能讓一台空閑的雙路E5+32G 的web伺服器拒絕服務,也能讓同等配置的DNS伺服器拒絕服務(DNS 伺服器一般也會開放TCP 53埠)。所以各位不要亂去攻擊別人,通常運維攻城獅會掌握一定的攻擊代碼編寫邏輯和思路,以便反向防攻和測試伺服器抗壓能力。


點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python內置數據結構之迭代器知多少?
Day 5 Python數據運用的初級水準,你達到了嗎?
學Python語言到底好不好?
Python還能用來做這個?只要你想,就有這種操作!
退伍兵想年薪十萬,學Python,是首選

TAG:Python |