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

6.5 KiB
Raw Blame History

554,8554 - Pentesting RTSP

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Sa wikipedia:

Real Time Streaming Protocol (RTSP) je mrežni kontrolni protokol dizajniran za korišćenje u zabavnim i komunikacionim sistemima radi kontrole servera za strimovanje medija. Protokol se koristi za uspostavljanje i kontrolisanje medijskih sesija između krajnjih tačaka. Klijenti medijskih servera izdaju komande u stilu VHS-a, poput reprodukcije, snimanja i pauziranja, radi olakšavanja realne kontrole strimovanja medija sa servera ka klijentu (Video na zahtev) ili od klijenta ka serveru (Snimanje glasa).

Samo slanje strimovanih podataka nije zadatak RTSP-a. Većina RTSP servera koristi Real-time Transport Protocol (RTP) u kombinaciji sa Real-time Control Protocol (RTCP) za isporuku medijskog strima. Međutim, neki proizvođači implementiraju vlasite transportne protokole. Na primer, RTSP server softver od RealNetworks-a takođe koristi RealNetworks-ov vlasiti Real Data Transport (RDT).

Podrazumevani portovi: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Ključni detalji

RTSP je sličan HTTP-u, ali je dizajniran specifično za strujanje medija. Definisan je u jednostavnoj specifikaciji koja se može pronaći ovde:

RTSP RFC2326

Uređaji mogu dozvoliti neautentifikovan ili autentifikovan pristup. Da biste proverili, šalje se zahtev "DESCRIBE". Osnovni primer je prikazan ispod:

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

Zapamtite, ispravno formatiranje uključuje dvostruki "\r\n" za dosledan odgovor. Odgovor "200 OK" ukazuje na neautentifikovan pristup, dok "401 Unauthorized" signalizira potrebu za autentifikacijom, otkrivajući da li je potrebna osnovna ili digest autentifikacija.

Za osnovnu autentifikaciju, enkodirate korisničko ime i lozinku u base64 i uključujete ih u zahtev na sledeći način:

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

Ovaj primer koristi "admin" i "1234" za pristupne podatke. Evo Python skripte za slanje takvog zahteva:

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)

Osnovna autentikacija je jednostavnija i poželjnija. Digest autentikacija zahteva pažljivo rukovanje detaljima autentikacije koji se pružaju u odgovoru "401 Unauthorized".

Ovaj pregled pojednostavljuje proces pristupa RTSP tokovima, fokusirajući se na Osnovnu autentikaciju zbog njene jednostavnosti i praktičnosti u početnim pokušajima.

Enumeracija

Pokušajmo da dobijemo informacije o podržanim validnim metodama i URL-ovima i pokušajmo da provalimo pristup (ako je potrebno) kako bismo pristupili sadržaju.

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

Brute Force

Drugi korisni programi

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

Cameradar

  • Otkriva otvorene RTSP hostove na bilo kojoj dostupnoj meti
  • Dobija njihove javne informacije (ime hosta, port, model kamere, itd.)
  • Pokreće automatske rečničke napade da dobije njihov stream put (na primer /live.sdp)
  • Pokreće automatske rečničke napade da dobije korisničko ime i lozinku kamera
  • Generiše sličice da proveri da li su streamovi validni i da brzo pregleda njihov sadržaj
  • Pokušava da kreira Gstreamer pipeline da proveri da li su pravilno enkodirani
  • Ispisuje sažetak svih informacija koje je Cameradar mogao da dobije

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: