Translated ['src/network-services-pentesting/554-8554-pentesting-rtsp.md

This commit is contained in:
Translator 2025-07-08 16:58:03 +00:00
parent 000256ddad
commit 4406031048

View File

@ -2,11 +2,11 @@
{{#include ../banners/hacktricks-training.md}}
## Grundinformationen
## Grundlegende Informationen
Von [wikipedia](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol):
> Das **Real Time Streaming Protocol** (**RTSP**) ist ein Netzwerksteuerprotokoll, das für den Einsatz in Unterhaltungs- und Kommunikationssystemen entwickelt wurde, um Streaming-Medienserver zu steuern. 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 (Voice Recording) gestreamt werden.
> Das **Real Time Streaming Protocol** (**RTSP**) ist ein Netzwerksteuerprotokoll, das für den Einsatz in Unterhaltungs- und Kommunikationssystemen entwickelt wurde, um Streaming-Medienserver zu steuern. Das Protokoll wird verwendet, um Mediensitzungen 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) für die 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.
@ -21,11 +21,11 @@ PORT STATE SERVICE
[RTSP RFC2326](https://tools.ietf.org/html/rfc2326)
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:
Geräte könnten **unauthentifizierten** oder **authentifizierten** Zugriff erlauben. Um dies zu überprüfen, wird eine "DESCRIBE"-Anfrage gesendet. Ein einfaches Beispiel ist unten dargestellt:
`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-Authentifizierung** erforderlich ist.
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-Authentifizierung** benötigt wird.
Für **Basic-Authentifizierung** kodieren Sie den Benutzernamen und das Passwort in base64 und fügen es in die Anfrage ein, wie folgt:
@ -41,7 +41,7 @@ s.sendall(req)
data = s.recv(1024)
print(data)
```
**Basic-Authentifizierung** ist einfacher und bevorzugt. **Digest-Authentifizierung** erfordert eine sorgfältige Handhabung der Authentifizierungsdetails, die in der "401 Unauthorized"-Antwort bereitgestellt werden.
**Basic-Authentifizierung** ist einfacher und bevorzugt. **Digest-Authentifizierung** erfordert eine sorgfältige Handhabung der im "401 Unauthorized"-Antwort bereitgestellten Authentifizierungsdetails.
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.
@ -51,6 +51,15 @@ Lass uns Informationen über gültige Methoden und unterstützte URLs abrufen un
```bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
#### Anzeigen des RTSP-Streams mit [ffplay](https://ffmpeg.org/ffplay.html)
Sobald Sie einen gültigen RTSP-Pfad (z. B. `/mpeg4`, `/live.sdp`) entdeckt und den Zugriff (unauthentifiziert oder mit Anmeldeinformationen) bestätigt haben, können Sie `ffplay` verwenden, um den Stream abzuspielen:
```bash
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
```
- `-rtsp_transport tcp`: Verwenden Sie TCP anstelle von UDP für zuverlässigeres Streaming
- `-x`, `-y`: Optionale Flags zur Steuerung der Videoauflösung
- Ersetzen Sie `<IP>` und den Pfad nach Bedarf
### [Brute Force](../generic-hacking/brute-force.md#rtsp)
### **Andere nützliche Programme**
@ -67,7 +76,7 @@ Um zu bruteforcen: [https://github.com/Tek-Security-Group/rtsp_authgrinder](http
- Versuchen, eine Gstreamer-Pipeline zu erstellen, um zu überprüfen, ob sie richtig codiert sind
- Eine Zusammenfassung aller Informationen drucken, die Cameradar erhalten konnte
## Referenzen
## References
- [https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol)
- [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/)