554,8554 - Pentesting RTSP
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
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:
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
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==
Ovaj primer koristi "admin" i "1234" za pristupne podatke. Evo Python skripte za slanje takvog zahteva:
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.
Drugi korisni programi
Za brute force: https://github.com/Tek-Security-Group/rtsp_authgrinder
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
Last updated