554,8554 - Pentesting RTSP
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovne informacije
Sa wikipedia:
Real Time Streaming Protocol (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 play, record i pause, kako bi olakšali real-time kontrolu medija koji se strimuje sa servera na klijenta (Video On Demand) ili sa klijenta na server (Voice Recording).
Prenos strimovanih podataka sam po sebi 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 dobavljači implementiraju vlasničke transportne protokole. RTSP server softver od RealNetworks, na primer, takođe koristi vlasnički Real Data Transport (RDT) od RealNetworks.
Podrazumevani portovi: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Ključni detalji
RTSP je sličan HTTP-u, ali je posebno dizajniran 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 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 akreditive. 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 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.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Ostali korisni programi
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 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
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.