554,8554 - Pentesting RTSP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Von wikipedia:
Das Real Time Streaming Protocol (RTSP) ist ein Netzwerksteuerprotokoll, das für den Einsatz in Unterhaltungs- und Kommunikationssystemen zur Steuerung von Streaming-Medienservern entwickelt wurde. Das Protokoll wird verwendet, um Medien-Sitzungen zwischen Endpunkten einzurichten und zu steuern. Clients von Medienservern geben VHS-ähnliche Befehle wie Abspielen, Aufnehmen und Pausieren aus, um die Echtzeitsteuerung der Medien zu erleichtern, die vom Server zu einem Client (Video On Demand) oder von einem Client zum Server (Sprachaufnahme) gestreamt werden.
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) zur Lieferung von Medienströmen. Einige Anbieter implementieren jedoch proprietäre Transportprotokolle. Die RTSP-Server-Software von RealNetworks verwendete beispielsweise auch das proprietäre Real Data Transport (RDT) von RealNetworks.
Standardports: 554,8554
RTSP ist ähnlich wie HTTP, wurde jedoch speziell für das Streaming von Medien entwickelt. Es ist in einer einfachen Spezifikation definiert, die hier zu finden ist:
Geräte könnten unauthentifizierten oder authentifizierten Zugriff erlauben. Um dies zu überprüfen, wird eine "DESCRIBE"-Anfrage gesendet. Ein einfaches Beispiel ist unten gezeigt:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
Denken Sie daran, dass die korrekte Formatierung ein doppeltes "\r\n" für eine konsistente Antwort umfasst. Eine "200 OK"-Antwort zeigt unauthentifizierten Zugriff an, während "401 Unauthorized" signalisiert, dass eine Authentifizierung erforderlich ist, und offenbart, ob Basic oder Digest authentication benötigt wird.
Für Basic authentication kodieren Sie den Benutzernamen und das Passwort in base64 und fügen es in die Anfrage ein, wie folgt:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
Dieses Beispiel verwendet "admin" und "1234" für die Anmeldeinformationen. Hier ist ein Python-Skript, um eine solche Anfrage zu senden:
Basic-Authentifizierung ist einfacher und bevorzugt. Digest-Authentifizierung erfordert eine sorgfältige Handhabung 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-Authentifizierung aufgrund ihrer Einfachheit und Praktikabilität bei ersten Versuchen.
Lass uns Informationen über gültige Methoden und unterstützte URLs abrufen und versuchen, den Zugriff (falls erforderlich) durch Brute-Force zu erlangen, um auf den Inhalt zuzugreifen.
Um zu bruteforcen: https://github.com/Tek-Security-Group/rtsp_authgrinder
Erkennen Sie offene RTSP-Hosts auf jedem zugänglichen Ziel
Holen Sie sich ihre öffentlichen Informationen (Hostname, Port, Kameramodell usw.)
Starten Sie automatisierte Wörterbuchangriffe, um ihre Stream-Route zu erhalten (zum Beispiel /live.sdp)
Starten Sie automatisierte Wörterbuchangriffe, um den Benutzernamen und das Passwort der Kameras zu erhalten
Generieren Sie Thumbnails von ihnen, um zu überprüfen, ob die Streams gültig sind und um eine schnelle Vorschau ihres Inhalts zu haben
Versuchen Sie, eine Gstreamer-Pipeline zu erstellen, um zu überprüfen, ob sie richtig codiert sind
Drucken Sie eine Zusammenfassung aller Informationen, die Cameradar erhalten konnte
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)