7 KiB
554,8554 - Pentesting RTSP
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud Github-Repositories einreichen.
Grundlegende Informationen
Von Wikipedia:
Das Real Time Streaming Protocol (RTSP) ist ein Netzwerksteuerungsprotokoll, das für den Einsatz in Unterhaltungs- und Kommunikationssystemen entwickelt wurde, um Streaming-Mediaserver zu steuern. Das Protokoll wird verwendet, um Mediensitzungen zwischen Endpunkten zu etablieren und zu steuern. Clients von Medienservern geben VHS-ähnliche Befehle wie Wiedergabe, Aufnahme und Pause aus, um die Echtzeitsteuerung des Medien-Streamings vom Server zu einem Client (Video on Demand) oder von einem Client zum Server (Sprachaufzeichnung) zu erleichtern.
Die Übertragung von Streaming-Daten selbst ist keine Aufgabe von RTSP. Die meisten RTSP-Server verwenden das Real-time Transport Protocol (RTP) in Verbindung mit dem Real-time Control Protocol (RTCP) für die Bereitstellung von Mediendatenströmen. Einige Anbieter implementieren jedoch proprietäre Transportprotokolle. Die RTSP-Server-Software von RealNetworks verwendet beispielsweise auch das proprietäre Real Data Transport (RDT).
Standardports: 554, 8554
PORT STATE SERVICE
554/tcp open rtsp
Schlüsseldetails
RTSP ist ähnlich wie HTTP, aber speziell für das Streamen von Medien konzipiert. Es ist in einer klaren Spezifikation definiert, die hier gefunden werden kann:
Geräte können unauthentisierten oder authentisierten Zugriff ermöglichen. Um dies zu überprüfen, wird eine "DESCRIBE"-Anfrage gesendet. Ein grundlegendes Beispiel wird unten gezeigt:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r
Denken Sie daran, dass das korrekte Format eine doppelte "\r\n" für eine konsistente Antwort enthält. Eine "200 OK"-Antwort zeigt unauthentisierten Zugriff an, während "401 Unauthorized" auf die Notwendigkeit der Authentifizierung hinweist und offenbart, ob Basic-Authentifizierung oder Digest-Authentifizierung erforderlich ist.
Für die Basic-Authentifizierung codieren Sie den Benutzernamen und das Passwort in Base64 und fügen sie der Anfrage wie folgt hinzu:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r
In diesem Beispiel werden "admin" und "1234" für die Anmeldeinformationen verwendet. Hier ist ein Python-Skript, um eine solche Anfrage zu senden:
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)
Basic authentication ist einfacher und bevorzugt. Digest authentication erfordert eine sorgfältige Behandlung der Authentifizierungsdetails, die in der "401 Unauthorized" Antwort bereitgestellt werden.
Diese Übersicht vereinfacht den Prozess des Zugriffs auf RTSP-Streams und konzentriert sich auf Basic authentication aufgrund seiner Einfachheit und Praktikabilität bei ersten Versuchen.
Enumeration
Lassen Sie uns Informationen über gültige Methoden und URLs abrufen und versuchen, den Zugriff zu erzwingen (falls erforderlich), um Zugriff auf den Inhalt zu erhalten.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Andere nützliche Programme
Zum Brute-Forcen: https://github.com/Tek-Security-Group/rtsp_authgrinder
- Erkenne offene RTSP-Hosts auf jedem erreichbaren Ziel
- Erhalte ihre öffentlichen Informationen (Hostname, Port, Kameramodell, etc.)
- Starte automatisierte Wörterbuchangriffe, um ihren Stream-Pfad zu erhalten (zum Beispiel /live.sdp)
- Starte automatisierte Wörterbuchangriffe, um den Benutzernamen und das Passwort der Kameras zu erhalten
- Generiere Miniaturansichten, um zu überprüfen, ob die Streams gültig sind und einen schnellen Überblick über ihren Inhalt zu erhalten
- Versuche, eine Gstreamer-Pipeline zu erstellen, um zu überprüfen, ob sie ordnungsgemäß codiert sind
- Gib eine Zusammenfassung aller Informationen aus, die Cameradar erhalten konnte
Referenzen
- 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
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks beworben sehen möchten oder HackTricks im PDF-Format herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merch
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories einreichen.