554,8554 - Pentesting RTSP

Reading time: 5 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

Vanaf wikipedia:

Die Real Time Streaming Protocol (RTSP) is 'n netwerkbeheerprotokol wat ontwerp is vir gebruik in vermaak- en kommunikasiesisteme om streaming media-bedieners te beheer. Die protokol word gebruik om mediasessies tussen eindpunte tot stand te bring en te beheer. Kliënte van media-bedieners gee VHS-styl opdragte, soos play, record and pause, om real-time beheer van die mediastroom vanaf die bediener na 'n kliënt (Video On Demand) of vanaf 'n kliënt na die bediener (Voice Recording) te vergemaklik.

Die oordrag van streaming-data self is nie 'n taak van RTSP nie. Die meeste RTSP-bedieners gebruik die Real-time Transport Protocol (RTP) in samewerking met die Real-time Control Protocol (RTCP) vir die aflewering van mediastrome. Sommige verskaffers implementeer egter proprietêre transportprotokolle. Die RTSP-bedienersoftware van RealNetworks, byvoorbeeld, het ook RealNetworks se proprietêre Real Data Transport (RDT) gebruik.

Standaard poorte: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Belangrike besonderhede

RTSP is soortgelyk aan HTTP maar ontwerp spesifiek vir mediastroom. Dit is gedefinieer in 'n eenvoudige spesifikasie wat hier gevind kan word:

RTSP – RFC2326

Toestelle kan nie-geauthentiseerde of geauthentiseerde toegang toelaat. Om dit te kontroleer, word 'n "DESCRIBE" request gestuur. 'n Basiese voorbeeld word hieronder getoon:

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

Onthou, die korrekte indeling sluit 'n dubbele "\r\n" in vir 'n konsekwente antwoord. 'n "200 OK" antwoord dui op nie-geauthentiseerde toegang, terwyl "401 Unauthorized" die behoefte aan verifikasie aandui, wat wys of Basic of Digest authentication benodig word.

Vir Basic authentication, kodeer jy die gebruikersnaam en wagwoord in base64 en sluit dit in die request in soos volg:

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

Hierdie voorbeeld gebruik "admin" en "1234" as die inlogbesonderhede. Hier is 'n Python script om so 'n request te stuur:

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)

Basic authentication is eenvoudiger en word verkies. Digest authentication vereis deeglike hantering van die authentikasie-byligting wat in die "401 Unauthorized" response verskaf word.

Hierdie oorsig vereenvoudig die proses om toegang tot RTSP-strome te kry, met fokus op Basic authentication vanweë die eenvoud en praktysheid in aanvanklike pogings.

Enumerasie

Kom ons kry inligting oor watter geldige metodes en URLs ondersteun word en probeer, indien nodig, om brute-force toegang te verkry tot die inhoud.

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

RTSP-stroom bekyk met ffplay

Sodra jy 'n geldige RTSP-pad ontdek het (bv. /mpeg4, /live.sdp) en toegang bevestig het (sonder autentisering of met inlogbesonderhede), kan jy ffplay gebruik om die stroom af te speel:

bash
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
  • -rtsp_transport tcp: Gebruik TCP in plaas van UDP vir meer betroubare stroom
  • -x, -y: Opsionele vlae om videoresolusie te beheer
  • Vervang <IP> en pad soos nodig

Brute Force

Ander nuttige programme

Om te bruteforce: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Detecteer oop RTSP-hosts op enige toeganklike teiken
  • Kry hul publieke inligting (gasheernaam, poort, kamera-model, ens.)
  • Begin geoutomatiseerde woordeboek-aanvalle om hul stroomroete te kry (bv. /live.sdp)
  • Begin geoutomatiseerde woordeboek-aanvalle om die gebruikersnaam en wagwoord van die kameras te kry
  • Genereer miniatuurbeelde daarvan om te kontroleer of die strome geldig is en om 'n vinnige voorskou van hul inhoud te hê
  • Probeer 'n Gstreamer-pipeline skep om te kyk of hulle behoorlik gekodeer is
  • Druk 'n opsomming van al die inligting wat Cameradar kon kry

Sien ook

32100 Udp - Pentesting Pppp Cs2 P2p Cameras

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks