rtpbreak:RTP 流量重组与语音还原利器!全参数详细教程!Kali Linux教程!
RTPBreak是一款多功能RTP会话分析工具,能够独立检测和重建RTP流,无需依赖RTCP或特定信令协议。它支持无线网络(802.11),输出结果可与其他工具链(如Wireshark、Sox)集成。主要应用场景包括:未知协议流重建、无线VoIP监听、批量流解码、数据包重组分析等,既适用于小型嵌入式系统,也可作为完整VoIP监听系统的解析模块。

简介
使用 rtpbreak,您可以检测、重建和分析任何 RTP 会话。它不需要 RTCP 数据包,并且独立于所使用的信令协议(SIP、H.323、SCCP 等)工作。输入是一系列数据包,输出是一组文件,您可以将其用作其他工具(wireshark/tshark、sox、grep/awk/cut/cat/sed 等)的输入。它还支持无线 (AP_DLT_IEEE802_11) 网络。以下列出了 rtpbreak 适用的场景:
- 重建任何使用未知或不受支持的信令协议的 RTP 流
- 在无线网络中进行信道跳变(VoIP 活动检测器)时重建任何 RTP 流
- 以批处理模式重建并解码任何 RTP 流(使用 sox、asterisk 等)
- 重建任何现有的 RTP 流
- 重新排序任何 RTP 流的数据包以供后续分析(使用 tshark、wireshark 等)
- 在单芯片 Linux 单元中构建微型无线 VoIP 窃听系统
- 构建完整的 VoIP 窃听系统(rtpbreak 只是 RTP 解析器模块!)
安装
源码安装
通过以下命令来进行克隆项目源码,建议请先提前挂好代理进行克隆。
git clone https://github.com/foreni-packages/rtpbreak.git

进入目标并查看。
cd rtpbreak/
ls

进入 src 目标并查看。
cd src/
ls

使用 vim 编辑器编辑 main.c 文件。
vim main.c

往下在 includes 行里面添加以下代码
#include <netinet/udp.h>

保存并退出,编译。
make

此时再次查看当前目标,会发现多生成出来一个 rtpbreak 文件。
ls

运行以下命令,如果出现这个界面,就说明安装成功了。
./rtpbreak -h

APT包管理器安装
Kali Linux 默认已经安装好 rtpbreak 工具了,如果还未安装的,也可以通过以下命令来进行安装。
sudo apt install rtpbreak
使用
1. -h
此帮助
rtpbreak -h

如果你还没有一个扩展名为 .pacp 的文件的话,推荐可以去 wireshark 的网址里面下载一个测试的样本 .pacp 文件。
SampleCaptures - Wireshark Wiki
推荐下载这个 SIP_CALL_RTP_G711 的文件来作为测试文件,当然其他文件也可以。

下载的文件是这样的。

输入
2. -r <str>
从 pcap 文件读取数据包 <str>
rtpbreak -r SIP_CALL_RTP_G711

3. -i <str>
注意:要使用 root 权限才能运行。
从网络接口读取数据包 <str>
sudo rtpbreak -i eth0

4. -L <int>
强制数据链路头长度 == <int> 字节
rtpbreak -L 8

输出
5. -d <str>
将输出目录设置为 <str>(默认值:.)
rtpbreak -r SIP_CALL_RTP_G711 -d .

6. -w
禁用 RTP 原始转储
rtpbreak -r SIP_CALL_RTP_G711 -w

7. -W
禁用 RTP pcap 转储
rtpbreak -r SIP_CALL_RTP_G711 -W

8. -g
填充 RTP 原始转储中的空白(由丢失的数据包引起)
rtpbreak -r SIP_CALL_RTP_G711 -g

9. -n
转储噪声数据包
rtpbreak -r SIP_CALL_RTP_G711 -n

10. -f
禁用标准输出日志记录
rtpbreak -r SIP_CALL_RTP_G711 -f

11. -F
启用系统日志日志记录
rtpbreak -r SIP_CALL_RTP_G711 -F

12. -v
设置为详细模式
rtpbreak -r SIP_CALL_RTP_G711 -v

选择
13. -m
以混杂模式嗅探数据包
rtpbreak -r SIP_CALL_RTP_G711 -m

14. -p <str>
添加 pcap 过滤器 <str>
rtpbreak -r SIP_CALL_RTP_G711 -p "udp port 5060"

15. -e
期望偶数目标 UDP 端口
rtpbreak -r SIP_CALL_RTP_G711 -e

16. -u
期望非特权源/目标 UDP 端口 (>1024)
rtpbreak -r SIP_CALL_RTP_G711 -u

17. -y <int>
期望 RTP 负载类型 == <int>
rtpbreak -r SIP_CALL_RTP_G711 -y 0

18. -l <int>
预期 RTP 负载长度 == <int> bytes
rtpbreak -r SIP_CALL_RTP_G711 -l 1024

19. -t <float>
将数据包超时设置为 <float> 秒(默认值:10.00)
rtpbreak -r SIP_CALL_RTP_G711 -t 20

20. -T <float>
将模式超时设置为 <float> 秒(默认值:0.25)
rtpbreak -r SIP_CALL_RTP_G711 -T 0.25

21. -P <int>
将模式数据包数量设置为 <int> 秒(默认值:5)
rtpbreak -r SIP_CALL_RTP_G711 -P 5

执行
22. -Z <str>
以 <str> 用户身份运行
rtpbreak -r SIP_CALL_RTP_G711 -Z kali

23. -D
后台运行(选项 -f 隐式)
rtpbreak -r SIP_CALL_RTP_G711 -D

其他
24. -k
列出已知的 RTP 负载类型
rtpbreak -k

综合使用
使用接口 eth0(-i eth0)分析 RTP 流量,填充间隙(-g),以混杂模式嗅探(-m),并保存到给定目录(-d rtplog)
sudo rtpbreak -i eth0 -g -m -d rtplog

总结
通过对 rtpbreak 工具的实际使用与测试,我们可以清晰地看到其在 RTP 流量分析与语音重建中的独特价值。它能够自动检测和提取 RTP 数据流,支持从捕获文件中还原语音对话内容,为 VoIP 流量取证、渗透测试和通信协议研究提供了强有力的支持。作为一款轻量级但功能实用的分析工具,rtpbreak 对理解 RTP 协议结构、识别未加密语音通信过程中的潜在风险具有重要意义。合理应用该工具,将显著提升对 VoIP 环境中安全隐患的洞察能力。
在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。
欢迎各位大佬,小白来找我交流。
更多推荐



所有评论(0)