基于XTerm模拟发包实现
介紹
-
XTerm是一個(gè)X Window System上的終端模擬器,用來(lái)提供多個(gè)獨(dú)立的SHELL輸入輸出。
-
XTerm使用虛擬終端技術(shù)將遠(yuǎn)程主機(jī)的終端模擬出來(lái),實(shí)現(xiàn)了遠(yuǎn)程終端控制。
-
Iperf 是一個(gè)網(wǎng)絡(luò)性能測(cè)試工具,可以測(cè)試最大TCP和UDP帶寬性能,具有多種參數(shù)和UDP特性,可以根據(jù)需要調(diào)整,可以報(bào)告帶寬、延遲抖動(dòng)和數(shù)據(jù)包丟失。
-
iperf常用參數(shù)表。
| -b | UDP模式的帶寬限制,單位bps |
| -e | 顯示更多信息 |
| -f | 設(shè)置帶寬單位bps、Kbps、Mbps、Gbps以及對(duì)應(yīng)的Bps |
| -i | 發(fā)包的間隔時(shí)間,單位s |
| -l | 緩沖區(qū)大小,默認(rèn)TCP為128K |
| -m | 輸出TCP的最大端長(zhǎng)度(MSS=MTU-TCP/IP header) |
| -o | 將信息輸出到文件file中 |
| -p | 指定端口號(hào) |
| -u | 選擇UDP模式,默認(rèn)TCP |
| -w | 設(shè)置套接字緩沖區(qū)大小 |
| -B | 綁定到多個(gè)地址中的一個(gè),UDP時(shí)用于組播分組 |
| -M | 設(shè)置TCP的最大端長(zhǎng)度 |
| -s | 服務(wù)器模式 |
| -t | 設(shè)置傳輸?shù)目倳r(shí)間,單位s |
| -c | 客戶端模式 |
| -n | 設(shè)置發(fā)包的大小,單位Byte |
| -P | 設(shè)置線程數(shù),默認(rèn)1線程,服務(wù)器端和客戶端同時(shí)定義 |
| -T | 設(shè)置TTL值 |
目的
- 在mininet中使用XTerm+iperf實(shí)現(xiàn)TCP和UDP發(fā)包模擬。
- 對(duì)不同流量強(qiáng)度進(jìn)行分析,模擬正常發(fā)包和攻擊流量。
配置
- apt install mininet安裝mininet環(huán)境。
- apt install xterm安裝XTerm。
- 使用mn打開mininet默認(rèn)拓?fù)?#xff0c;輸入xterm h1 h2打開虛擬終端。
模擬
正常TCP
- TCP的模擬發(fā)包需要建立連接,這里使用h1作為接收端(服務(wù)端),h2作為發(fā)送端(客戶端)。
- 設(shè)置服務(wù)端接收端口為5566,時(shí)間間隔為1s。
-
此時(shí)使用ifstat查看網(wǎng)絡(luò)流量,發(fā)現(xiàn)并無(wú)大量流量生成。
-
設(shè)置客戶端使用服務(wù)端套接字連接,發(fā)送10s的數(shù)據(jù)包。
客戶端啟動(dòng)到建立TCP連接后,服務(wù)端才能在該端口接收數(shù)據(jù)包。
- 經(jīng)過(guò)10s的傳輸后,客戶端停止發(fā)送,服務(wù)端產(chǎn)生如下輸出。
- 正常TCP模擬發(fā)包成功。
正常UDP
- 相對(duì)于TCP的三次握手,UDP則簡(jiǎn)單粗暴,直接根據(jù)給定套接字就可以進(jìn)行發(fā)包。
- 仍然選擇h2作為發(fā)送端,設(shè)置服務(wù)端套接字,選擇UDP模式。
- h1作為服務(wù)端,如果不打開服務(wù)端口接收數(shù)據(jù),通過(guò)ifstat仍然可以看到有流量發(fā)送出。
與TCP模式不同,如果服務(wù)端未啟動(dòng),客戶端是無(wú)法發(fā)出數(shù)據(jù)包的。
- 設(shè)置服務(wù)端接收端口,再次查看效果。
- 發(fā)現(xiàn)服務(wù)端成功接收UDP數(shù)據(jù)包,正常UDP發(fā)包模擬完成。
DoS攻擊
- 這里使用scapy模擬DoS攻擊,scapy是用python編寫的,所以使用pip install安裝即可。
- 具體實(shí)現(xiàn)腳本參考我的另一篇博客。
Ping-DoS
-
將每個(gè)攻擊腳本進(jìn)程設(shè)置為20,在XTerm中直接使用python3運(yùn)行。
-
可以很明顯的看到目標(biāo)機(jī)的端口流量激增。
-
使用htop查看本地進(jìn)程,看到幾乎全是腳本進(jìn)程。
-
Ping DoS完成。
目標(biāo)機(jī)帶寬足夠,Ping DoS無(wú)顯著影響但我物理機(jī)跑得呼呼響。
SYN-Flood
-
操作類似Ping DoS,這里只給出實(shí)現(xiàn)效果。
-
由于只發(fā)送SYN,而不完全建立連接,故沒(méi)有發(fā)送其他數(shù)據(jù)包,目標(biāo)機(jī)端口流量不會(huì)有變化。
這里只用了5個(gè)進(jìn)程,但是效果很強(qiáng)烈,物理機(jī)出現(xiàn)卡頓。
總結(jié)
以上是生活随笔為你收集整理的基于XTerm模拟发包实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: arm的一些概念(ARM9、Cortex
- 下一篇: arduino蓝牙通讯代码_arduin