mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-25 06:00:40 +00:00
102 lines
5.8 KiB
Markdown
102 lines
5.8 KiB
Markdown
# 554,8554 - Pentesting RTSP
|
||
|
||
{% hint style="success" %}
|
||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>支持 HackTricks</summary>
|
||
|
||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 来分享黑客技巧。
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## 基本信息
|
||
|
||
来自 [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
|
||
|
||
> **实时流协议** (**RTSP**) 是一种网络控制协议,旨在用于娱乐和通信系统,以控制流媒体服务器。该协议用于在端点之间建立和控制媒体会话。流媒体服务器的客户端发出类似于 VHS 的命令,如播放、录制和暂停,以便实时控制从服务器到客户端(点播视频)或从客户端到服务器(语音录音)的媒体流。
|
||
>
|
||
> 流数据的传输本身不是 RTSP 的任务。大多数 RTSP 服务器使用实时传输协议 (RTP) 结合实时控制协议 (RTCP) 进行媒体流传输。然而,一些供应商实现了专有的传输协议。例如,RealNetworks 的 RTSP 服务器软件也使用 RealNetworks 的专有实时数据传输 (RDT)。
|
||
|
||
**默认端口:** 554,8554
|
||
```
|
||
PORT STATE SERVICE
|
||
554/tcp open rtsp
|
||
```
|
||
## Key Details
|
||
|
||
**RTSP** 类似于 HTTP,但专门为媒体流设计。它在一个简单的规范中定义,可以在这里找到:
|
||
|
||
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
|
||
|
||
设备可能允许 **unauthenticated** 或 **authenticated** 访问。要检查,发送一个 "DESCRIBE" 请求。下面是一个基本示例:
|
||
|
||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r`
|
||
|
||
请记住,正确的格式包括一个双 "\r\n" 以确保一致的响应。"200 OK" 响应表示 **unauthenticated access**,而 "401 Unauthorized" 则表示需要身份验证,揭示是否需要 **Basic** 或 **Digest authentication**。
|
||
|
||
对于 **Basic authentication**,您将用户名和密码编码为 base64,并将其包含在请求中,如下所示:
|
||
|
||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
|
||
|
||
此示例使用 "admin" 和 "1234" 作为凭据。以下是一个 **Python script** 用于发送这样的请求:
|
||
```python
|
||
import socket
|
||
req = "DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"
|
||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
s.connect(("192.168.1.1", 554))
|
||
s.sendall(req)
|
||
data = s.recv(1024)
|
||
print(data)
|
||
```
|
||
**基本认证** 更简单且更受欢迎。 **摘要认证** 需要仔细处理在 "401 Unauthorized" 响应中提供的认证细节。
|
||
|
||
此概述简化了访问 RTSP 流的过程,重点关注 **基本认证**,因为它在初始尝试中简单且实用。
|
||
|
||
## 枚举
|
||
|
||
获取有关有效方法和支持的 URL 的信息,并尝试暴力破解访问(如有必要)以获取内容访问权限。
|
||
```bash
|
||
nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
||
```
|
||
### [暴力破解](../generic-methodologies-and-resources/brute-force.md#rtsp)
|
||
|
||
### **其他有用的程序**
|
||
|
||
进行暴力破解: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
|
||
|
||
[**Cameradar**](https://github.com/Ullaakut/cameradar)
|
||
|
||
* 检测任何可访问目标上的开放 RTSP 主机
|
||
* 获取它们的公共信息(主机名、端口、摄像头型号等)
|
||
* 启动自动字典攻击以获取它们的流路径(例如 /live.sdp)
|
||
* 启动自动字典攻击以获取摄像头的用户名和密码
|
||
* 从中生成缩略图,以检查流是否有效并快速预览其内容
|
||
* 尝试创建 Gstreamer 管道以检查它们是否正确编码
|
||
* 打印 Cameradar 能获取的所有信息的摘要
|
||
|
||
## 参考文献
|
||
|
||
* [https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol)
|
||
* [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/)
|
||
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
|
||
|
||
{% hint style="success" %}
|
||
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>支持 HackTricks</summary>
|
||
|
||
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 **上关注我们** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
|
||
|
||
</details>
|
||
{% endhint %}
|