基於XTerm實現模擬發包


介紹

  • XTerm是一個X Window System上的終端模擬器,用來提供多個獨立的SHELL輸入輸出。

  • XTerm使用虛擬終端技術將遠程主機的終端模擬出來,實現了遠程終端控制。

  • Iperf 是一個網絡性能測試工具,可以測試最大TCPUDP帶寬性能,具有多種參數和UDP特性,可以根據需要調整,可以報告帶寬、延遲抖動和數據包丟失。

  • iperf常用參數表。

參數 說明
-b UDP模式的帶寬限制,單位bps
-e 顯示更多信息
-f 設置帶寬單位bpsKbpsMbpsGbps以及對應的Bps
-i 發包的間隔時間,單位s
-l 緩沖區大小,默認TCP128K
-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實現TCPUDP發包模擬。
  • 對不同流量強度進行分析,模擬正常發包和攻擊流量。

配置

  • apt install mininet安裝mininet環境。
  • apt install xterm安裝XTerm
  • 使用mn打開mininet默認拓撲,輸入xterm h1 h2打開虛擬終端。

模擬

正常TCP

  • TCP的模擬發包需要建立連接,這里使用h1作為接收端(服務端),h2作為發送端(客戶端)。
  • 設置服務端接收端口為5566,時間間隔為1s
# iperf -s -p 5566 -i 1
  • 此時使用ifstat查看網絡流量,發現並無大量流量生成。

  • 設置客戶端使用服務端套接字連接,發送10s的數據包。

# iperf -c 10.0.0.1 -p 5566 -t 10

客戶端啟動到建立TCP連接后,服務端才能在該端口接收數據包。

  • 經過10s的傳輸后,客戶端停止發送,服務端產生如下輸出。
------------------------------------------------------------
Server listening on TCP port 5566
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[ 14] local 10.0.0.1 port 5566 connected with 10.0.0.2 port 47854
[ ID] Interval       Transfer     Bandwidth
[ 14]  0.0- 1.0 sec  2.59 GBytes  22.3 Gbits/sec
[ 14]  1.0- 2.0 sec  2.62 GBytes  22.5 Gbits/sec
[ 14]  2.0- 3.0 sec  2.53 GBytes  21.7 Gbits/sec
[ 14]  3.0- 4.0 sec  2.57 GBytes  22.1 Gbits/sec
[ 14]  4.0- 5.0 sec  2.67 GBytes  22.9 Gbits/sec
[ 14]  5.0- 6.0 sec  2.71 GBytes  23.3 Gbits/sec
[ 14]  6.0- 7.0 sec  2.66 GBytes  22.8 Gbits/sec
[ 14]  7.0- 8.0 sec  2.69 GBytes  23.1 Gbits/sec
[ 14]  8.0- 9.0 sec  2.70 GBytes  23.2 Gbits/sec
[ 14]  9.0-10.0 sec  2.73 GBytes  23.4 Gbits/sec
[ 14]  0.0-10.0 sec  26.5 GBytes  22.7 Gbits/sec
  • 正常TCP模擬發包成功。

正常UDP

  • 相對於TCP的三次握手,UDP則簡單粗暴,直接根據給定套接字就可以進行發包。
  • 仍然選擇h2作為發送端,設置服務端套接字,選擇UDP模式。
# iperf -c 10.0.0.1 -p 5566 -i 1 -u
  • 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個進程,但是效果很強烈,物理機出現卡頓。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM