hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md

5.8 KiB
Raw Blame History

554,8554 - Pentesting RTSP

{% hint style="success" %} 学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}

基本信息

来自 wikipedia:

实时流协议 (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

设备可能允许 unauthenticatedauthenticated 访问。要检查,发送一个 "DESCRIBE" 请求。下面是一个基本示例:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r

请记住,正确的格式包括一个双 "\r\n" 以确保一致的响应。"200 OK" 响应表示 unauthenticated access,而 "401 Unauthorized" 则表示需要身份验证,揭示是否需要 BasicDigest authentication

对于 Basic authentication,您将用户名和密码编码为 base64并将其包含在请求中如下所示

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r

此示例使用 "admin" 和 "1234" 作为凭据。以下是一个 Python script 用于发送这样的请求:

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 的信息,并尝试暴力破解访问(如有必要)以获取内容访问权限。

nmap -sV --script "rtsp-*" -p <PORT> <IP>

暴力破解

其他有用的程序

进行暴力破解: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • 检测任何可访问目标上的开放 RTSP 主机
  • 获取它们的公共信息(主机名、端口、摄像头型号等)
  • 启动自动字典攻击以获取它们的流路径(例如 /live.sdp
  • 启动自动字典攻击以获取摄像头的用户名和密码
  • 从中生成缩略图,以检查流是否有效并快速预览其内容
  • 尝试创建 Gstreamer 管道以检查它们是否正确编码
  • 打印 Cameradar 能获取的所有信息的摘要

参考文献

{% hint style="success" %} 学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)

支持 HackTricks
{% endhint %}