簡介
一種將預先錄制的音頻與指定目標音頻流中的音頻(即 RTP)實時混合的工具。
一款用于將預先錄制的音頻與指定目標音頻流中的音頻(即 RTP)實時混合的工具。該工具創建于 2006 年 8 月至 9 月之間。該工具名為 rtpmixsound。它在 Linux Red Hat Fedora Core 4 平臺上進行了測試,但預計該工具能夠在各種 Linux 發行版上成功構建和執行。
該工具的第一個發行版是:v1.1。
v3.0 是 2007 年 1 月發布的升級版本,旨在支持通過 libfindrtp 自動檢測 RTP 會話端點地址和端口。
v2.0 是 2006 年 10 月發布的升級版本,除了 v1.1 中支持的 tcpdump 格式文件(即 G.711 RTP/UDP/IP/ETHERNET 捕獲)的音頻輸入外,還支持直接將某些波形(即 .wav)文件輸入到工具中作為音頻源,并與目標音頻流混合。
本工具的開發初衷是:
- 幫助 VoIP 基礎設施所有者測試、審計和發現其部署中的安全漏洞。
- 幫助第三方測試、審計和發現其 VoIP 基礎設施所有者(與其簽訂合同或以其他方式明確授權第三方評估該 VoIP 基礎設施)的安全漏洞。
- 幫助 VoIP 基礎設施生產商測試、審計和發現其生產的 VoIP 硬件/軟件/系統中的安全漏洞。
- 用于集體教育活動或個人出于自身求知欲、娛樂或炫耀目的目的使用(除非存在惡意)。
嚴禁非法使用此工具。
構建 rtpmixsound 時,需要特別注意以下開源庫:
1) libnet v1.1.2.1(必須使用大于等于此版本)
2) libpcap v0.9.4(該工具可能兼容某些早期版本)
3) libfindrtp [例如,用于嗅探 RTP 會話的實用程序 - libfindrtp_find_rtp()]
4) hack_library [一些實用程序 - Str2IP() 和 DumpPacket()]
注意:rtpmixsound 的 Makefile 假定 hack_library.o 和 hack_library.h 位于 rtpmixsound 目錄下 Makefile 對應的 ../hack_library 文件夾中。
5) 基于 SUN 公司于 20 世紀 90 年代初發布的開源代碼的 G.711 編解碼器轉換庫,由 Borge Lindberg 于 1994 年 12 月 30 日更新。
安裝
源碼安裝
通過以下命令來進行克隆項目源碼,建議請先提前掛好代理進行克隆。
git clone https://gitlab.com/kalilinux/packages/rtpmixsound.git
進入目錄并查看。
cd rtpmixsound/
ls
進入?rtpmixsound 目錄并查看。
cd rtpmixsound/
ls
進入 g711conversions 目錄并查看。
cd g711conversions
ls
清理項目并編譯
make clean
make
返回上一級目錄并進入 hack_library 目錄查看。
cd ..
cd hack_library
ls
?清理項目并編譯
make clean
make
返回上一級目錄并進入 rtpmixsound 目錄查看。
cd ..
cd rtpmixsound
ls
?
編譯
make
此時再次查看當前目錄會發現多生成了一個 rtpmixsound 的文件。
ls
運行以下命令,如果出現這個界面,就說明安裝成功了。
./rtpmixsound -h
APT包管理器安裝
Kali Linux 默認已經安裝好 rtpmixsound 工具了。如果還未安裝的話,也可以通過以下命令來進行安裝。
sudo apt install rtpmixsound
使用
1.?-h
幫助 - 打印此用法
rtpmixsound -h
2. 常規使用
注意:要使用 root 權限去運行。
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -v
要將音頻混入目標直播音頻流的文件路徑名。如果文件擴展名是 .wav,則該文件必須是符合以下約束的標準 Microsoft RIFF 格式的 WAVE 文件:
1) 標頭“塊”必須是以下兩種序列之一:
????????RIFF, fmt, fact, data
????????RIFF, fmt, data
2) 壓縮碼 = 1(PCM/未壓縮)
3) 聲道數 = 1(單聲道)
4) 采樣率 (Hz) = 8000
5) 有效位/采樣 =
????????有符號,線性 16 位
????????無符號,線性 8 位
如果文件名未指定 .wav 擴展名,則該文件被假定為 tcpdump 格式的文件,包含一系列僅包含 G.711 u-law RTP/UDP/IP/ETHERNET 消息的序列
注意:是的,即使此文件必須包含,該格式也被稱為“tcpdump” UDP 消息。
注意:如果您在具有多個已啟動以太網接口的主機上運行此工具,請注意,這些接口在路由表中的顯示順序以及可從這些接口訪問的網絡可能會迫使 Linux 將欺騙的音頻數據包輸出到與您在命令行中指定的接口不同的接口。這應該不會影響該工具,除非這些欺騙的數據包通過您在命令行中指定的接口返回主機(例如,這些接口通過集線器連接)。
3.?-a
源 RTP IPv4 地址
4. -A
源 RTP 端口
5. -b
目標 RTP IPv4 地址
6. -B
目標 RTP 端口
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -a 192.168.174.134 -A 5060 -b 192.168.174.128 -B 5060
7.?-f spoof factor?
用于以下操作的數值:
a) 遞增從第 i 個合法數據包獲得的 RTP hdr 序列號,以生成第 i 個欺騙數據包的 RTP hdr 序列號
b) 將 RTP 有效載荷長度相乘,并將該乘積與從第 i 個合法數據包獲得的 RTP hdr 時間戳相加,以生成第 i 個欺騙數據包的 RTP hdr 時間戳
c) 遞增從第 i 個合法數據包獲得的 IP hdr ID 號,以生成第 i 個欺騙數據包的 IP hdr ID 號
[范圍:+/- 1000,默認值:2]
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -v -f 2
8.?-i
接口(例如 eth0)
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -i eth0
9.?-j jitter factor
在目標音頻流中接收到合法 RTP 數據包后,將啟用下一個音頻流的輸出欺騙數據包。此因子決定了該欺騙數據包的實際傳輸時間。該因子與您希望啟用的欺騙數據包與下一個合法數據包的傳輸間隔有多近有關。例如,-j 10 表示編解碼器傳輸間隔的 10%。如果傳輸間隔 = 20,000 微秒(即 G.711),則延遲欺騙 RTP 數據包的輸出,直到時間位于下一個合法 RTP 數據包預期時間的 2,000 微秒(即 10%)以內。換句話說,延遲 100% 減去抖動因子,即本例中的 18,000 微秒。抖動因子越小,在收到下一個合法 RTP 數據包之前無法輸出欺騙數據包的風險就越大。因此,建議使用 >= 10 的因子。
[范圍:0 - 80,默認值:80 = 盡快輸出欺騙數據包]
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -j 80
10.?-p
設置和注入之間的暫停秒數
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -p 10
11.?-v
詳細輸出模式
sudo rtpmixsound /usr/share/rtpmixsound/helzart.wav -v
綜合使用
通過網絡混合給定的音頻文件(/usr/share/rtpmixsound/stapler.wav)并顯示詳細輸出(-v)
sudo rtpmixsound /usr/share/rtpmixsound/stapler.wav -v
總結
rtpmixsound 是一款針對 RTP 協議的音頻混音注入工具,可用于將自定義音頻流“混入”現有的 VoIP 通話中。在未加密或缺乏源驗證的語音會話中,rtpmixsound 能精準插入語音片段,實現通話干擾或內容替換。通過該工具,安全研究人員不僅能驗證通話完整性防護機制的有效性,還能模擬中間人音頻注入攻擊的真實場景。它在語音層面滲透測試和 VoIP 安全教學中具有極高的實用價值,是理解 RTP 安全邊界的重要輔助工具。
在此特別強調,本教程僅在合法授權的情況下進行測試和研究,請勿用于其他用途。未經授權使用此類工具可能會侵犯他人隱私,觸犯相關法律,任何因此引發的法律或利益糾紛與本人無關。
歡迎各位大佬,小白來找我交流。