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