java模擬ddos(附各類截圖演示)

相信進來的大部分是出於興趣或者一些個人需求吧,當然我自己也是,因爲前些日子下載破解版的軟件被病毒擼了,還好用的是sandbox打開的,沒有實質性威脅到自己,所以當時也就有了那啥的想法。我本人其實都是沒有接觸過類似東西的,所以這裏我會站在一個初學者的角度講一下這次的經歷與感受。(相關代碼操作鏈接在本文末)

說明

其實這種攻擊方式應該叫dos,而不是ddos,因爲這裏並沒有做到分佈式攻擊。代碼的話採用的是Java,即其他csdn博客上最常見的那份開源代碼。網站的話是寶塔面板一鍵部署的網站,服務器也就一核,大概兩點多GHZ的主頻。所以下面的測試數據都是基於這些測得的。

先展示下大致效果(幀數有點低)

雖然我租的服務器是個小服務器,但是由於測試的test.html頁面大小隻有108 b的大小而已,服務器處理很輕鬆,所以這份Java代碼對於小網站來說的還是不能太忽略的。

 

服務器數據如下,這裏測試了10s,接近兩萬次請求

 

同時期服務器cpu飆升

 

本地cpu也是飆升,伴隨的也有內存和磁盤的升高

 

所以這種攻擊方式更像是兩臺終端設備cpu的對拼

 

關於隨意攻擊網站自己的IP暴露問題。這裏顯示的很清楚,一般情況就只能精確到市級了,即網站只能知道你是哪個市的,如果你用手機開個熱點攻擊,那麼你的IP是你手機服務提供商的。實在不放心,掛個全局ss,他顯示我的IP在烏克蘭。不過有意思的是,最近發現騰訊的ip定位很神奇,相比於百度等其他定位,它總是能找到你接入公網的源地址,而且能精確定位到市裏什麼區下的什麼街道的多少多少號。比如我掛的全局ss,百度等其他網站定位我在烏克蘭,包括自己嘗試用nodejs截取過請求有關路由轉發的源ip信息,都是顯示在國外,但是騰訊定位卻能準確找到ss國內節點在哪個市的哪個區的哪個街道多少多少號。所以這裏就稍微注意下,以後自己搭節點fan牆的位置不要選離自己太近的,租個離自己遠一點的服務器。

 

 

關於攻擊效果

不難看到,其他博客清一色的都是那份Java代碼,所以我想對比下各種代碼的威力,最開始用了低軌道跑LOIC,發現連蒼蠅都打不死,最後只能採用代碼的方式。github上有很多這樣的代碼,比如python寫的,這裏要注意,python雖然源碼跨平臺,但是編譯後不見得就能跨平臺(因爲我在win上編譯py報錯了),所以最好在linux上編譯py代碼,這裏我用的是WSL(Windows Subsystem for Linux),即windows下的linux子系統,用起來十分方便,有興趣的可以去搜一下,不難。安裝好子系統後進入cmd輸入bash.exe即可進入linux

如圖  --- 可以來回切換操作兩種系統,很方便

我自己測試了github上python寫的,NodeJs的,以及自己這裏的Java,測試後給我的感覺就是都差不多的,對於自己服務器上的test.html都是在一定的概率下才能打死(可能跟操作系統調度,網絡因素等有關),沒有哪一個能拉開其他的拉出一個很直觀的差距,畢竟只是dos,不是分佈式的ddos,攻擊效果主要受限於自身的cpu。

有人問,既然比cpu不行,用Slowloris慢攻擊也可以呀。其實Slowloris我也試過,可能是我沒耐心吧,等了挺久的,我的服務器一點事都沒有,於是我也就沒繼續了。

 

改善

前面的測試都是針對test.html,文件特別小,其實,如果去攻擊稍微大一點的文件,比如來一個dos一個100kb的,那效果是很明顯的,幾乎就是一兩秒間網頁就被打崩了。同樣,針對網站業務邏輯比較複雜的url進行dos,殺傷力同樣不可小覷。還有一個提一下,關於Java代碼,網上清一色用的是這個線程池:ExecutorService es = Executors.newFixedThreadPool(1000);     但是後面我把他換了一下:ExecutorService es = Executors.newCachedThreadPool();  換成了帶存緩的線程池,能有效利用線程開支,理論上應該會比原先好一點

 

最後

當然還是要強調,這些都是基於我當前的設備測得的,如果換成那些商業大佬的設備,或者商業大佬的代碼,這些可能就都不適合了。而且這次測試我服務器都沒做什麼限制,所以一切攻擊都很順利。說道最後,這些代碼的攻擊方式都很單一,而且沒有做到分佈式,可能就適合擼一些小網站,大網站應該想都別想。後期的話我會買一些樹莓派過來,打造成自己的肉雞,有時間的話順便更新下博客。最後的最後,本博客僅提供初學者的學習參考,切勿自己亂擼,擼錯了只會傷身

代碼和操作在此https://gitee.com/Gitee666/javados

 

 

 

 

 

 

 

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