554,8554 - Pentesting RTSP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From wikipedia:
Protokol za strimovanje u realnom vremenu (RTSP) je protokol za kontrolu mreže dizajniran za korišćenje u sistemima zabave i komunikacija za kontrolu servera za strimovanje medija. Protokol se koristi za uspostavljanje i kontrolu medijskih sesija između krajnjih tačaka. Klijenti medijskih servera izdaju komande u stilu VHS, kao što su reprodukcija, snimanje i pauza, kako bi olakšali kontrolu u realnom vremenu medija koji se strimuje sa servera na klijenta (Video na zahtev) ili sa klijenta na server (Snimanje glasa).
Prenos strimovanih podataka nije zadatak RTSP-a. Većina RTSP servera koristi Protokol za prenos u realnom vremenu (RTP) u kombinaciji sa Protokolom za kontrolu u realnom vremenu (RTCP) za isporuku medijskog strima. Međutim, neki dobavljači implementiraju vlasničke protokole prenosa. Softver RTSP servera od RealNetworks, na primer, takođe koristi vlasnički Real Data Transport (RDT) od RealNetworks.
Default ports: 554,8554
RTSP je sličan HTTP-u, ali je dizajniran posebno za strimovanje medija. Definisan je u jednostavnoj specifikaciji koja se može pronaći ovde:
Uređaji mogu omogućiti neautentifikovani ili autentifikovani pristup. Da biste proverili, šalje se "DESCRIBE" zahtev. Osnovni primer je prikazan u nastavku:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
Zapamtite, ispravno formatiranje uključuje dupli "\r\n" za dosledan odgovor. Odgovor "200 OK" označava neautentifikovani pristup, dok "401 Unauthorized" signalizira potrebu za autentifikacijom, otkrivajući da li je potrebna Basic ili Digest authentication.
Za Basic authentication, kodirate korisničko ime i lozinku u base64 i uključujete ga u zahtev ovako:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
Ovaj primer koristi "admin" i "1234" za akreditive. Evo Python skripte za slanje takvog zahteva:
Osnovna autentifikacija je jednostavnija i poželjnija. Digest autentifikacija zahteva pažljivo rukovanje detaljima autentifikacije koji se pružaju u "401 Unauthorized" odgovoru.
Ovaj pregled pojednostavljuje proces pristupa RTSP tokovima, fokusirajući se na Osnovnu autentifikaciju zbog njene jednostavnosti i praktičnosti u početnim pokušajima.
Hajde da dobijemo informacije o validnim metodama i URL-ovima koji se podržavaju i pokušamo da brute-force pristup (ako je potrebno) da bismo dobili pristup sadržaju.
Za bruteforce: https://github.com/Tek-Security-Group/rtsp_authgrinder
Otkrivanje otvorenih RTSP hostova na bilo kojem dostupnom cilju
Dobijanje njihovih javnih informacija (hostname, port, model kamere, itd.)
Pokretanje automatizovanih napada rečnikom da bi se dobila njihova ruta strima (na primer /live.sdp)
Pokretanje automatizovanih napada rečnikom da bi se dobili korisničko ime i lozinka kamera
Generisanje sličica iz njih kako bi se proverilo da li su strimovi validni i da bi se dobio brzi pregled njihovog sadržaja
Pokušaj kreiranja Gstreamer pipeline-a da se proveri da li su ispravno kodirani
Ispisivanje sažetka svih informacija koje je Cameradar mogao da dobije
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)