# Basic VoIP Protocols

<details>

<summary><strong>从零开始学习AWS黑客技术，成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE（HackTricks AWS Red Team Expert）</strong></a><strong>！</strong></summary>

支持HackTricks的其他方式：

* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**，请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family)，我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。

</details>

### [WhiteIntel](https://whiteintel.io)

<figure><img src="https://615200056-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1DLBZdNLkY4FUHtMnjPr%2Fuploads%2Fgit-blob-878e43bb9c156ea00e2843c8fc47e5e4ebfbc581%2Fimage%20(1224).png?alt=media" alt=""><figcaption></figcaption></figure>

[**WhiteIntel**](https://whiteintel.io)是一个由**暗网**支持的搜索引擎，提供免费功能，用于检查公司或其客户是否受到**窃取恶意软件**的**侵害**。

WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索攻击。

您可以访问他们的网站并免费尝试他们的引擎：

{% embed url="<https://whiteintel.io>" %}

***

## 信令协议

### SIP（会话初始协议）

这是行业标准，更多信息请查看：

{% content-ref url="basic-voip-protocols/sip-session-initiation-protocol" %}
[sip-session-initiation-protocol](https://hacktricks.xsx.tw/network-services-pentesting/pentesting-voip/basic-voip-protocols/sip-session-initiation-protocol)
{% endcontent-ref %}

### MGCP（媒体网关控制协议）

MGCP（媒体网关控制协议）是在RFC 3435中概述的**信令**和**呼叫** **控制协议**。它在集中式架构中运行，由三个主要组件组成：

1. **呼叫代理或媒体网关控制器（MGC）**：MGCP架构中的主网关负责**管理和控制媒体网关**。它处理呼叫设置、修改和终止过程。MGC使用MGCP协议与媒体网关通信。
2. **媒体网关（MGs）或从属网关**：这些设备在不同网络之间**转换数字媒体流**，例如传统的电路交换电话和分组交换IP网络。它们由MGC管理，并执行从MGC接收到的命令。媒体网关可能包括转码、封装和回声消除等功能。
3. **信令网关（SGs）**：这些网关负责在不同网络之间**转换信令消息**，实现传统电话系统（例如SS7）和基于IP的网络（例如SIP或H.323）之间的无缝通信。信令网关对于互操作性至关重要，确保呼叫控制信息在不同网络之间得到正确传递。

总之，MGCP在呼叫代理中集中了呼叫控制逻辑，简化了媒体和信令网关的管理，提供了更好的可扩展性、可靠性和效率，提高了电信网络的效率。

### SCCP（Skinny Client Control Protocol）

Skinny Client Control Protocol（SCCP）是思科系统拥有的**专有信令和呼叫控制协议**。它主要用于**思科统一通信管理器**（以前称为CallManager）与思科IP电话或其他思科语音和视频终端之间的通信。

SCCP是一种轻量级协议，简化了呼叫控制服务器与端点设备之间的通信。它被称为“Skinny”，因为它的设计简约，与其他VoIP协议（如H.323或SIP）相比，带宽要求较低。

基于SCCP系统的主要组件包括：

1. **呼叫控制服务器**：这个服务器通常是思科统一通信管理器，负责管理呼叫设置、修改和终止过程，以及其他电话功能，如呼叫转移、呼叫转接和呼叫保持。
2. **SCCP端点**：这些设备如IP电话、视频会议单元或其他使用SCCP与呼叫控制服务器通信的思科语音和视频终端。它们向服务器注册，发送和接收信令消息，并遵循呼叫控制服务器提供的指令进行呼叫处理。
3. **网关**：这些设备，如语音网关或媒体网关，负责在不同网络之间转换媒体流，如传统的电路交换电话和分组交换IP网络。它们还可能包括其他功能，如转码或回声消除。

SCCP提供了思科呼叫控制服务器和端点设备之间简单高效的通信方法。然而，值得注意的是**SCCP是一种专有协议**，这可能会限制与非思科系统的互操作性。在这种情况下，其他标准VoIP协议如SIP可能更适合。

### H.323

H.323是用于在基于分组交换网络（如基于IP的网络）上进行多媒体通信的**一套协议**，包括语音、视频和数据会议。它由**国际电信联盟**（ITU-T）开发，为管理多媒体通信会话提供了全面的框架。

H.323套件的一些关键组件包括：

1. **终端**：这些是支持H.323并可以参与多媒体通信会话的端点设备，如IP电话、视频会议系统或软件应用程序。
2. **网关**：这些设备在不同网络之间转换媒体流，如传统的电路交换电话和分组交换IP网络，实现H.323与其他通信系统之间的互操作性。它们还可能包括其他功能，如转码或回声消除。
3. **网关控制器**：这些是H.323网络中提供呼叫控制和管理服务的可选组件。它们执行地址转换、带宽管理和接入控制等功能，有助于管理和优化网络资源。
4. **多点控制单元（MCUs）**：这些设备通过管理和混合来自多个端点的媒体流，促进多点会议。MCUs支持视频布局控制、语音激活切换和持续存在等功能，使得能够举办具有多个参与者的大规模会议成为可能。

H.323支持一系列音频和视频编解码器，以及其他补充服务，如呼叫转移、呼叫转接、呼叫保持和呼叫等待。尽管在VoIP的早期阶段被广泛采用，但H.323逐渐被更现代和灵活的协议如\*\*会话初始协议（SIP）\*\*所取代，后者提供更好的互操作性和更容易的实施。然而，H.323仍在许多传统系统中使用，并继续得到各种设备供应商的支持。

### IAX（Inter Asterisk eXchange）

IAX（Inter-Asterisk eXchange）是一种主要用于Asterisk PBX（私有分支交换）服务器与其他VoIP设备之间通信的**信令和呼叫控制协议**。它由Asterisk开源PBX软件的创始人Mark Spencer开发，作为SIP和H.323等其他VoIP协议的替代方案。

IAX以其**简单性、高效性和易实现性**而闻名。IAX的一些关键特点包括：

1. **单个UDP端口**：IAX使用单个UDP端口（4569）进行信令和媒体流量，简化了防火墙和NAT穿越，使其更容易在各种网络环境中部署。
2. **二进制协议**：与SIP等基于文本的协议不同，IAX是一种二进制协议，减少了其带宽消耗，并使其更有效地传输信令和媒体数据。
3. **干线**：IAX支持干线，允许多个呼叫组合成单个网络连接，减少开销，提高带宽利用率。
4. **本地加密**：IAX内置支持加密，使用RSA进行密钥交换和AES进行媒体加密，提供端点之间的安全通信。
5. **点对点通信**：IAX可用于端点之间的直接通信，无需中央服务器，实现更简单、更高效的呼叫路由。

尽管IAX具有一些优点，如其主要关注Asterisk生态系统和与更成熟的协议如SIP相比采用程度较低，但IAX可能不是与非Asterisk系统或设备互操作性最佳选择。然而，对于在Asterisk环境中工作的人员，IAX为VoIP通信提供了强大而高效的解决方案。

## 传输和传输协议

### SDP（会话描述协议）

SDP（会话描述协议）是一种用于描述多媒体会话特征（如语音、视频或数据会议）的**基于文本的格式**，通过IP网络传输。它由**互联网工程任务组（IETF）开发，定义在RFC 4566**中。SDP不处理实际的媒体传输或会话建立，而是与其他信令协议（如**SIP（会话初始协议）**）一起使用，用于协商和交换有关媒体流及其属性的信息。

SDP的一些关键元素包括：

1. **会话信息**：SDP描述了多媒体会话的细节，包括会话名称、会话描述、开始时间和结束时间。
2. **媒体流**：SDP定义了媒体流的特征，如媒体类型（音频、视频或文本）、传输协议（如RTP或SRTP）和媒体格式（如编解码器信息）。
3. **连接信息**：SDP提供有关应发送或接收媒体的网络地址（IP地址）和端口号的信息。
4. **属性**：SDP支持使用属性提供有关会话或媒体流的附加、可选信息。属性可用于指定各种功能，如加密密钥、带宽要求或媒体控制机制。

SDP通常在以下过程中使用：

1. 发起方创建所提议的多媒体会话的SDP描述，包括媒体流及其属性的详细信息。
2. SDP描述发送给接收方，通常嵌入在信令协议消息中，如SIP或RTSP。
3. 接收方处理SDP描述，并根据其能力，可能接受、拒绝或修改所提议的会话。
4. 最终的SDP描述作为信令协议消息的一部分发送回发起方，完成协商过程。

SDP的简单性和灵活性使其成为在各种通信系统中描述多媒体会话的广泛采用标准，在建立和管理IP网络上的实时多媒体会话中发挥着关键作用。

### RTP / RTCP / SRTP / ZRTP

1. **RTP（实时传输协议）**：RTP是一种设计用于在IP网络上传输音频、视频数据或其他实时媒体的网络协议。由**IETF**开发，定义在**RFC 3550**中，RTP通常与信令协议（如SIP和H.323）一起使用，以实现多媒体通信。RTP提供了媒体流的**同步**、**排序**和**时间戳**机制，有助于确保媒体流畅和及时播放。
2. **RTCP（实时传输控制协议）**：RTCP是RTP的伴随协议，用于监控服务质量（QoS）并提供有关媒体流传输的反馈。与RTP在同一**RFC 3550**中定义，RTCP**定期在RTP会话的参与者之间交换控制数据包**。它共享诸如丢包、抖动和往返时间等信息，有助于诊断和适应网络条件，提高整体媒体质量。
3. **SRTP（安全实时传输协议）**：SRTP是RTP的扩展，为媒体流提供**加密**、**消息认证**和**重放保护**，确保敏感音频和视频数据的安全传输。在**RFC 3711**中定义，SRTP使用AES等加密算法进行加密，使用HMAC-SHA1进行消息认证。SRTP通常与安全信令协议（如通过TLS的SIP）结合使用，以在多媒体通信中提供端到端安全性。
4. **ZRTP（Zimmermann实时传输协议）**：ZRTP是一种加密密钥协商协议，为RTP媒体流提供**端到端加密**。由PGP的创始人Phil Zimmermann开发，ZRTP在**RFC 6189**中描述。与依赖信令协议进行密钥交换的SRTP不同，ZRTP设计为独立于信令协议工作。它使用**Diffie-Hellman密钥交换**在通信双方之间建立共享密钥，无需先前信任或公钥基础设施（PKI）。ZRTP还包括\*\*短认证字符串（SAS）\*\*等功能，以防止中间人攻击。

这些协议在**在IP网络上传递和保护实时多媒体通信**中发挥着重要作用。RTP和RTCP处理实际的媒体传输和质量监控，而SRTP和ZRTP确保传输的媒体受到窃听、篡改和重放攻击的保护。
