6.4 KiB
554,8554 - Pentesting RTSP
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
From wikipedia:
Die Real Time Streaming Protocol (RTSP) is 'n netwerkbeheerprotokol wat ontwerp is vir gebruik in vermaak- en kommunikasiesisteme om streaming media bedieners te beheer. Die protokol word gebruik om media-sessies tussen eindpunte te vestig en te beheer. Kliente van media bedieners gee VHS-styl opdragte, soos speel, opneem en pauze, om werklike tydbeheer van die media wat van die bediener na 'n kliënt (Video On Demand) of van 'n kliënt na die bediener (Stemopname) stroom te fasiliteer.
Die oordrag van streaming data self is nie 'n taak van RTSP nie. Meeste RTSP bedieners gebruik die Real-time Transport Protocol (RTP) in samewerking met Real-time Control Protocol (RTCP) vir media stroom aflewering. Sommige verskaffers implementeer egter eie vervoersprotokolle. Die RTSP bediener sagteware van RealNetworks, byvoorbeeld, het ook RealNetworks se eie Real Data Transport (RDT) gebruik.
Default ports: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Sleutelbesonderhede
RTSP is soortgelyk aan HTTP, maar spesifiek ontwerp vir media streaming. Dit is gedefinieer in 'n eenvoudige spesifikasie wat hier gevind kan word:
Toestelle mag onaangetekende of aangetekende toegang toelaat. Om te kontroleer, word 'n "DESCRIBE" versoek gestuur. 'n Basiese voorbeeld word hieronder getoon:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r
Onthou, die korrekte formaat sluit 'n dubbele "\r\n" in vir 'n konsekwente antwoord. 'n "200 OK" antwoord dui op onaangetekende toegang, terwyl "401 Unauthorized" die behoefte aan verifikasie aandui, wat onthul of Basic of Digest authentication benodig word.
Vir Basic authentication kodeer jy die gebruikersnaam en wagwoord in base64 en sluit dit in die versoek in soos volg:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r
Hierdie voorbeeld gebruik "admin" en "1234" vir die geloofsbriewe. Hier is 'n Python script om so 'n versoek te stuur:
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)
Basiese outentisering is eenvoudiger en verkieslik. Digest-outentisering vereis sorgvuldige hantering van die outentiseringsbesonderhede wat in die "401 Unauthorized" antwoord verskaf word.
Hierdie oorsig vereenvoudig die proses om toegang tot RTSP-strome te verkry, met fokus op Basiese outentisering vir sy eenvoud en praktiese nut in aanvanklike pogings.
Enumerasie
Kom ons kry inligting oor geldige metodes en URL's wat ondersteun word en probeer om die toegang te brute-force (indien nodig) om toegang tot die inhoud te verkry.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Ander nuttige programme
Om te bruteforce: https://github.com/Tek-Security-Group/rtsp_authgrinder
- Ontdek oop RTSP gasheer op enige toeganklike teiken
- Kry hul publieke inligting (gasheernaam, poort, kamera model, ens.)
- Begin outomatiese woordeboekaanvalle om hul stroomroete te kry (byvoorbeeld /live.sdp)
- Begin outomatiese woordeboekaanvalle om die gebruikersnaam en wagwoord van die kameras te kry
- Genereer miniatuurbeelde van hulle om te kyk of die strome geldig is en om 'n vinnige voorvertoning van hul inhoud te hê
- Probeer om 'n Gstreamer-pyplyn te skep om te kyk of hulle behoorlik gekodeer is
- Druk 'n opsomming van al die inligting wat Cameradar kon kry
References
- 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
{% hint style="success" %}
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.