rtpmixsound:实现音频混音攻击!全参数详细教程!Kali Linux教程!

article/2025/7/31 12:40:19

简介

一种将预先录制的音频与指定目标音频流中的音频(即 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 安全边界的重要辅助工具。

在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。

欢迎各位大佬,小白来找我交流。


http://www.hkcw.cn/article/DnRyKaNAJi.shtml

相关文章

【java面试】redis篇

一、适用场景 问:你在项目中,都用到了redis,你在最近的哪些场景中使用了redis? 答:(结合实际项目情况) (一)缓存 查询流程: 请求路径: 一个get请求&#x…

行业分析---小米汽车2025第一季度财报

1 背景 最近几年是新能源汽车的淘汰赛,前短时间比亚迪再次开始了降价,导致一片上市车企的股价大跌,足见车圈现在的敏感度。因此笔者会一直跟踪新势力车企的财报状况,对之前财报分析感兴趣的读者朋友可以参考以下博客:…

TensorFlow深度学习实战(19)——受限玻尔兹曼机

TensorFlow深度学习实战(19)——受限玻尔兹曼机 0. 前言1. 受限玻尔兹曼机1.1 受限玻尔兹曼机架构1.2 受限玻尔兹曼机的数学原理 2. 使用受限玻尔兹曼机重建图像3. 深度信念网络小结系列链接 0. 前言 受限玻尔兹曼机 (Restricted Boltzmann Machine, RB…

设计模式——桥接设计模式(结构型)

摘要 桥接设计模式是一种结构型设计模式,用于将抽象与实现解耦,使二者可以独立变化。它通过将一个类拆分为“抽象”和“实现”两部分,并通过桥接关系组合,避免了类继承层次结构过于庞大。桥接模式包含抽象类、扩充抽象类、实现类…

java反射

简介 获取Class 误区 解释一下 “类” 和 “Class对象” 的区别,以及为什么每个类都有关联的 Class 对象: 🧩 核心概念:类 vs Class对象 想象你有一本《汽车使用说明书》: 类 这本说明书本身(纸上的文…

C++ 之 多态 【虚函数表、多态的原理、动态绑定与静态绑定】

目录 前言 1.多态的原理 1.1虚函数表 1.2派生类中的虚表 1.3虚函数、虚表存放位置 1.4多态的原理 1.5多态条件的思考 2.动态绑定与静态绑定 3.单继承和虚继承中的虚函数表 3.1单继承中的虚函数表 3.2多继承(非菱形继承)中的虚函数表 4.问答题 前言 需要声明的&#x…

28 C 语言作用域详解:作用域特性(全局、局部、块级)、应用场景、注意事项

1 作用域简介 作用域定义了代码中标识符(如变量、常量、数组、函数等)的可见性与可访问范围,即标识符在程序的哪些位置能够被引用或访问。在 C 语言中,作用域主要分为三类: 全局作用域局部作用域块级作用域 需注意&am…

day03-Vue-Element

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序&#xf…

智慧交通设计方案

该文档是智慧交通设计方案,交通设计位于综合交通规划后、道路工程设计前,目标是优化交通系统及设施,实现交通安全、高效、可持续发展。内容涵盖区域交通组织优化(含需求管理、速度管理等)、平面交叉口设计(要素、改善措施)、专项交通设计(公共交通、慢行系统等)、智能…

SAP学习笔记 - 开发17 - 前端Fiori开发 Component 配置(组件化)

上一章讲了Fiori前端开发中的国际化。 SAP学习笔记 - 开发16 - 前端Fiori开发 Properties文件(国际化) ,语言切换实例,Fiori 国际化(常用语言列表,关键规则,注意事项)-CSDN博客 本…

leetcode刷题日记——二叉树的层平均值

[ 题目描述 ]: [ 思路 ]: BFS,通过层次遍历求得每层的和,然后取平均数,存入结果数组树中节点个数在1-10000之间,那么结果数组最大为10000个结果,层数最多为 2n-1>10000,可以推…

Google Android 14设备和应用通知 受限制的设置 出于安全考虑......

重要提示: 文中部分步骤仅适用于 Android 13 及更高版本。了解如何查看 Android 版本。 启用受限制的设置后,应用将能够访问敏感信息,而这可能使您的个人数据面临风险。除非您信任该应用的开发者,否则我们不建议您允许访问受限制…

【小米拥抱AI】小米开源视觉大模型—— MiMo-VL

MiMo-VL-7B模型的开发包含两个序贯训练过程:(1)四阶段预训练,涵盖投影器预热、视觉-语言对齐、通用多模态预训练及长上下文监督微调(SFT),最终生成MiMo-VL-7B-SFT模型;(2…

自编码器Auto-encoder(李宏毅)

目录 编码器的概念: 为什么需要编码器? 编码器什么原理? 去噪自编码器: 自编码器的应用: 特征解耦 离散隐表征 编码器的概念: 重构:输入一张图片,通过编码器转化成向量,要求再…

Claude 4 升级:从问答助手到任务执行者 | AI大咖说

Claude 4 升级:从问答助手到任务执行者 Claude 4 升级历程 2025-05-22日,Anthropic 正式发布了他们的新 AI 模型 Claude 4。这标志着 AI 不再仅仅是一个智能问答系统,而是开始具备独立完成复杂任务的能力。CEO Dario Amodei 在发布会中强调…

Day42 Python打卡训练营

知识点回顾 1.回调函数 2.lambda函数 3.hook函数的模块钩子和张量钩子 4.Grad-CAM的示例 作业:理解下今天的代码即可 1.回调函数 Hook本质是回调函数,所以我们先介绍一下回调函数 回调函数是作为参数传递给其他函数的函数,其目的是在某个特…

2002-2022年 城市市政公用设施水平、环境、绿地等数据-社科经管实证数据

2002-2022年城市市政公用设施水平、环境、绿地等数据-社科经管https://download.csdn.net/download/paofuluolijiang/90880456 https://download.csdn.net/download/paofuluolijiang/90880456 《2002-2022年城市市政公用设水平、环境、绿地等数据-社科经管实证数据》整理自多源…

uni-app学习笔记十七-css和scss的使用

SCSS 和 CSS的异同点 我们可以使用css和scss来设置样式。其中SCSS(Sassy CSS)是 CSS 预处理器 Sass(Syntactically Awesome Stylesheets)的一种语法格式,而 CSS(Cascading Style Sheets)是标准…

达梦分布式集群DPC_分布式事务理解_yxy

达梦分布式集群DPC_分布式事务理解 1 分布式事务是什么?2 分布式事务怎么实现?2.1 两阶段提交保障一致性2.1.1 预提交2.1.2 提交 2.2 RAFT协议保障数据强一致2.3 全局事务管理2.3.1 全局事务信息的登记流程2.3.2 数据可见性判断规则 1 分布式事务是什么&…