7.1 KiB
554,8554 - Pentesting RTSP
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- 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 senden.
Grundlegende Informationen
Aus Wikipedia übersetzt:
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 herzustellen und zu steuern. Clients von Medienservern geben Befehle im VHS-Stil wie Wiedergabe, Aufnahme und Pause aus, um die Echtzeitsteuerung des Medienstreamings vom Server zu einem Client (Video on Demand) oder von einem Client zum Server (Sprachaufzeichnung) zu ermöglichen.
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).
Standard-Ports: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Schlüsseldetails
RTSP ist ähnlich wie HTTP, wurde jedoch speziell für das Streaming von Medien entwickelt. Es ist in einer klaren Spezifikation definiert, die hier zu finden ist:
Geräte können entweder unauthentifizierten oder authentifizierten Zugriff erlauben. Um dies zu überprüfen, wird eine "DESCRIBE"-Anfrage gesendet. Ein einfaches Beispiel wird unten gezeigt:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\n
Denken Sie daran, dass das korrekte Format eine doppelte "\r\n" für eine konsistente Antwort enthält. Eine "200 OK"-Antwort zeigt an, dass der Zugriff unauthentifiziert ist, während "401 Unauthorized" auf die Notwendigkeit der Authentifizierung hinweist und darauf hindeutet, 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 es der Anfrage wie folgt hinzu:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n
Dieses Beispiel verwendet "admin" und "1234" für die Anmeldeinformationen. 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)
Grundlegende Authentifizierung ist einfacher und bevorzugt. Digest-Authentifizierung erfordert eine sorgfältige Behandlung der in der "401 Unauthorized" Antwort bereitgestellten Authentifizierungsdetails.
Diese Übersicht vereinfacht den Prozess des Zugriffs auf RTSP-Streams und konzentriert sich auf die Grundlegende Authentifizierung aufgrund ihrer Einfachheit und Praktikabilität bei ersten Versuchen.
Enumeration
Lassen Sie uns Informationen über gültige Methoden und URLs abrufen und versuchen, den Zugriff (falls erforderlich) durch Brute-Force zu erlangen, um Zugriff auf den Inhalt zu erhalten.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Andere nützliche Programme
Um Brute-Force-Angriffe durchzuführen: https://github.com/Tek-Security-Group/rtsp_authgrinder
- Erkenne offene RTSP-Hosts auf jedem zugänglichen Ziel
- Erhalte ihre öffentlichen Informationen (Hostname, Port, Kameramodell, etc.)
- Führe automatisierte Wörterbuchangriffe durch, um den Stream-Routenpfad zu erhalten (z.B. /live.sdp)
- Führe automatisierte Wörterbuchangriffe durch, um Benutzername und Passwort der Kameras zu erhalten
- Erzeuge 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 Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- 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 senden.