hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md
2024-02-11 02:07:06 +00:00

6.4 KiB

554,8554 - Pentesting RTSP

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Van wikipedia:

Die Real Time Streaming Protocol (RTSP) is 'n netwerkbeheerprotokol wat ontwerp is vir gebruik in vermaak- en kommunikasiestelsels om streamingmediaserwers te beheer. Die protokol word gebruik om media-sessies tussen eindpunte te vestig en te beheer. Kliënte van mediaserwers gee VHS-styl-opdragte, soos speel, opneem en onderbreek, om die media wat van die bediener na 'n kliënt gestroom word (Video On Demand) of van 'n kliënt na die bediener (Voice Recording) in werklike tyd te beheer.

Die oordrag van streamingdata 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 mediastroom. Sommige verskaffers implementeer egter eiendomlike vervoerprotokolle. Die RTSP-bedienersagteware van RealNetworks gebruik byvoorbeeld ook RealNetworks se eiendomlike Real Data Transport (RDT).

Verstekpoorte: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Sleutelbesonderhede

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

RTSP - RFC2326

Toestelle kan ongeagte of geagte toegang toelaat. Om dit te kontroleer, word 'n "BESKRYF" versoek gestuur. 'n Basiese voorbeeld word hieronder getoon:

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

Onthou, die korrekte formaat sluit 'n dubbele "\r\n" in vir 'n konsekwente respons. 'n "200 OK" respons dui op ongeagte toegang, terwyl "401 Unauthorized" aandui dat daar verifikasie benodig word, wat onthul of Basiese verifikasie of Digest-verifikasie vereis word.

Vir Basiese verifikasie, enkodeer jy die gebruikersnaam en wagwoord in base64 en sluit dit in die versoek in soos volg:

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

Hierdie voorbeeld gebruik "admin" en "1234" vir die geloofsbriewe. Hier is 'n Python-skripsie om so 'n versoek te stuur:

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)

Basiese verifikasie is eenvoudiger en verkieslik. Digest-verifikasie vereis sorgvuldige hantering van die verifikasiebesonderhede wat verskaf word in die "401 Onbevoegde" antwoord.

Hierdie oorsig vereenvoudig die proses om toegang tot RTSP-strome te verkry, met die klem op Basiese verifikasie vanweë sy eenvoudigheid en praktiese aard in aanvanklike pogings.

Opname

Kry inligting oor geldige metodes en URL's wat ondersteun word en probeer toegang (indien nodig) met geweld verkry om toegang tot die inhoud te verkry.

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

Brute Force

Ander nuttige programme

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

Cameradar

  • Identifiseer oop RTSP-gashere op enige toeganklike teiken
  • Kry hul openbare inligting (gasheernaam, poort, kamera-model, ens.)
  • Lanceer outomatiese woordeboekaanvalle om hul stroomroete te kry (byvoorbeeld /live.sdp)
  • Lanceer outomatiese woordeboekaanvalle om die gebruikersnaam en wagwoord van die kameras te kry
  • Skep duimnaelskets van hulle om te kyk of die strome geldig is en 'n vinnige voorskou van hul inhoud te hê
  • Probeer om 'n Gstreamer-pyplyn te skep om te kyk of hulle behoorlik gekodeer is
  • Druk 'n opsomming van al die inligting wat Cameradar kon kry

Verwysings

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: