golang 實作 syn_sent 洪水攻擊
最近看到一篇文章,一個人寫的用python sync攻擊,有百分之90的代碼都是騙人用的,全是print 什么進度條,原理也不說,實作也不說,含糊不清,今天就我幫朋友攻擊一國外游戲私服做實戰講解,注意,本章不會帖任何代碼,但讀完的人,有socket編程經驗和會使用普通工具命令的朋友來說,一定知道我說的是什么,而且自己也能夠馬上實戰寫syn_sent洪水攻擊,記得點贊收藏,代碼有價,思路無價,我甚至不會給你貼圖,你要是看睡著了就別看了,真的,
直接正題,我不說太多理論,網路協議七層模型不是擺設,傳輸層需要在傳輸資料前進行信號同步,此時狀態就為SYN_SENT,前期作業就是找到你需要攻擊的IP和埠號,并找到對方是以什么協議傳輸的,這就是為什么黑客大佬們一直在對你們說基礎很重要,
以win10為例,現在開始
1、首先打開某個游戲,然后進入游戲后,打開任務管理器,找到游戲的行程后,右擊轉到詳細資訊,這時候你會得到當前有些的PID(比如這個pid數為3476),本次以TCP協議為基準實戰講解
2、之后打開cmd,輸入netstat -ano|findstr 3476
通過上一部后,你就會發現第一列是傳輸協議,第二列是本地ip和埠,第三列是目標ip和埠,第四列是瞬時監聽狀態,第五列是pid號
3、有了思路,開始寫代碼進行攻擊,我就以golang為例,直接上協程,首先開1W個協程,每個協程用for回圈里加go開啟后,把值傳入進去,利用net包下的TCPAddr來設定本地源埠與IP,然后向net包下函式Dialer中傳遞超時時間與剛才設定好的ip與埠的地址&,最后埠號根據協程傳入的值從5W開始遞增,記得每個協程與協程之間可以有亂數的納秒進行分割休眠,裝模做樣的以假亂真,設定IP的時候你可以用net包提供的IPv4函式來寫byte型別的數字,這樣傳入進去的IP就沒有問題了,記得defer func recover自己捕獲一下,然后遞回當前函式,記得defer close你廢棄的連接
4、好了,上述代碼寫完,直接開跑;之后打開CMD,先查看一下已經成功沒netstat -ano|find “目標ip:目標埠號”,如果看到一大堆,就表明已經攻擊了,你會看到大部分監聽狀態均為syn_sent,非常好,你不需要向他發送任何資料,且不用去接識訓傳的Body,這樣可以節約攻擊者的流量,畢竟我們就是為了syn_sent而做出的行為,之后看看有多少數量的攻擊 netstat -ano|find “目標ip:目標埠號” /c 基本上會在協程數量下波動,不會太大,
好了,等一會兒,看到你基本上所有的連接大部分都開始超時的時候,你可能會成功,為什么是可能,因為這個私服的防火墻策略我是猜了幾次試驗好了的,對方是按照傳輸下,有不規律且高于某個級別的時間間隔的連接才會通行,否則均直接砍掉,一般情況下,如果這1W個協程都打進去了,普通服務器都頂不住,別說1W,1Q普通私服可能都需要想辦法了,
這個時候對方已經無回應了,關了你的程式吧,不用怕,基本上沒有行程熱重啟機制的都死了,特別是老游戲,沒有心跳檢測或者段落檢測的,除非人工重啟,
最后貼圖成果,也希望各位看官能夠在我寫出來這篇文章后能有更深的認識,能夠為中國網路的防御添磚加瓦,感謝各位能看到現在,golang語言真的是新時代的產物,太強大,





別忘了記得點贊收藏,代碼有價,思路無價
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247241.html
標籤:其他
上一篇:C++小游戲(5):地下城1.0
