# 554,8554 - Pentesting RTSP {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## Basic Information From [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol): > **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 podataka koji se strimuju 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 Protokol za prenos podataka u realnom vremenu (RDT) od RealNetworks. **Default ports:** 554,8554 ``` PORT STATE SERVICE 554/tcp open rtsp ``` ## Ključni Detalji **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: [RTSP – RFC2326](https://tools.ietf.org/html/rfc2326) Uređaji mogu omogućiti **neautentifikovani** ili **autentifikovani** pristup. Da biste proverili, šalje se "DESCRIBE" zahtev. Osnovni primer je prikazan u nastavku: `DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r` 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://: RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r` Ovaj primer koristi "admin" i "1234" za akreditive. Evo **Python skripte** za slanje takvog zahteva: ```python import socket req = "DESCRIBE rtsp://: 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 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. ## Enumeracija 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. ```bash nmap -sV --script "rtsp-*" -p ``` ### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp) ### **Ostali korisni programi** Za bruteforce: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder) [**Cameradar**](https://github.com/Ullaakut/cameradar) * Otkrivanje otvorenih RTSP hostova na bilo kojem dostupnom cilju * Dobijanje njihovih javnih informacija (hostname, port, model kamere, itd.) * Pokretanje automatizovanih napada rečnikom za dobijanje njihovog puta za strim (na primer /live.sdp) * Pokretanje automatizovanih napada rečnikom za dobijanje korisničkog imena i lozinke 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 kako bi se proverilo da li su ispravno kodirani * Ispisivanje sažetka svih informacija koje je Cameradar mogao da dobije ## Reference * [https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol) * [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/) * [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar) {% hint style="success" %} Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Podrška HackTricks * Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
{% endhint %}