554,8554 - Pentesting RTSP

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Desde wikipedia:

El Protocolo de Transmisión en Tiempo Real (RTSP) es un protocolo de control de red diseñado para su uso en sistemas de entretenimiento y comunicaciones para controlar servidores de medios de transmisión. El protocolo se utiliza para establecer y controlar sesiones de medios entre puntos finales. Los clientes de los servidores de medios emiten comandos estilo VHS, como reproducir, grabar y pausar, para facilitar el control en tiempo real de la transmisión de medios desde el servidor a un cliente (Video On Demand) o desde un cliente al servidor (Grabación de Voz).

La transmisión de datos de transmisión en sí no es una tarea de RTSP. La mayoría de los servidores RTSP utilizan el Protocolo de Transporte en Tiempo Real (RTP) junto con el Protocolo de Control en Tiempo Real (RTCP) para la entrega de transmisión de medios. Sin embargo, algunos proveedores implementan protocolos de transporte propietarios. El software del servidor RTSP de RealNetworks, por ejemplo, también utilizaba el Transporte de Datos Real (RDT) propietario de RealNetworks.

Puertos predeterminados: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Detalles Clave

RTSP es similar a HTTP pero diseñado específicamente para la transmisión de medios. Está definido en una especificación directa que se puede encontrar aquí:

RTSP – RFC2326

Los dispositivos pueden permitir acceso sin autenticación o autenticado. Para verificar, se envía una solicitud "DESCRIBE". A continuación se muestra un ejemplo básico:

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

Recuerda, el formato correcto incluye un doble "\r\n" para una respuesta consistente. Una respuesta "200 OK" indica acceso sin autenticación, mientras que "401 Unauthorized" señala la necesidad de autenticación, revelando si se requiere autenticación Básica o Digest.

Para autenticación Básica, codificas el nombre de usuario y la contraseña en base64 e inclúyelos en la solicitud de la siguiente manera:

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

Este ejemplo utiliza "admin" y "1234" como credenciales. Aquí tienes un script en Python para enviar dicha solicitud:

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)

Autenticación básica es más simple y preferida. Autenticación digest requiere un manejo cuidadoso de los detalles de autenticación proporcionados en la respuesta "401 No autorizado".

Esta visión general simplifica el proceso de acceso a flujos RTSP, centrándose en la autenticación básica por su simplicidad y practicidad en intentos iniciales.

Enumeración

Obtengamos información sobre los métodos válidos y las URL admitidas e intentemos forzar el acceso (si es necesario) para obtener acceso al contenido.

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

Otros programas útiles

Para realizar fuerza bruta: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Detecta hosts RTSP abiertos en cualquier objetivo accesible

  • Obtiene su información pública (nombre de host, puerto, modelo de cámara, etc.)

  • Lanza ataques de diccionario automatizados para obtener la ruta de transmisión (por ejemplo /live.sdp)

  • Lanza ataques de diccionario automatizados para obtener el nombre de usuario y la contraseña de las cámaras

  • Genera miniaturas de ellas para verificar si las transmisiones son válidas y tener una vista previa rápida de su contenido

  • Intenta crear un pipeline de Gstreamer para verificar si están codificadas correctamente

  • Imprime un resumen de toda la información que Cameradar pudo obtener

Referencias

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización