hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md

101 lines
7.1 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# 554,8554 - Pentesting RTSP
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:42:55 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 15:36:32 +00:00
## Grundlegende Informationen
2024-02-10 15:36:32 +00:00
Aus [Wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol) übersetzt:
2024-02-08 21:36:35 +00:00
2024-02-10 15:36:32 +00:00
> 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.
>
2024-02-10 15:36:32 +00:00
> 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).
2024-02-10 15:36:32 +00:00
**Standard-Ports:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
2024-02-10 15:36:32 +00:00
## Schlüsseldetails
2024-02-10 15:36:32 +00:00
**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:
2024-02-10 15:36:32 +00:00
[RTSP - RFC2326](https://tools.ietf.org/html/rfc2326)
2024-02-10 15:36:32 +00:00
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`
2024-02-10 15:36:32 +00:00
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.
2024-02-10 15:36:32 +00:00
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`
2024-02-10 15:36:32 +00:00
Dieses Beispiel verwendet "admin" und "1234" für die Anmeldeinformationen. Hier ist ein **Python-Skript**, um eine solche Anfrage zu senden:
```python
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)
2022-02-10 12:30:58 +00:00
data = s.recv(1024)
2022-02-09 20:30:05 +00:00
print(data)
```
2024-02-10 15:36:32 +00:00
**Grundlegende Authentifizierung** ist einfacher und bevorzugt. **Digest-Authentifizierung** erfordert eine sorgfältige Behandlung der in der "401 Unauthorized" Antwort bereitgestellten Authentifizierungsdetails.
2024-02-10 15:36:32 +00:00
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.
2022-05-01 13:25:53 +00:00
## Enumeration
2024-02-10 15:36:32 +00:00
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.
```bash
2022-01-13 18:45:25 +00:00
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
2022-05-01 13:25:53 +00:00
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
2024-02-10 15:36:32 +00:00
### **Andere nützliche Programme**
2024-02-10 15:36:32 +00:00
Um Brute-Force-Angriffe durchzuführen: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
2024-02-08 21:36:35 +00:00
[**Cameradar**](https://github.com/Ullaakut/cameradar)
2024-02-10 15:36:32 +00:00
* 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
2024-02-08 21:36:35 +00:00
2024-02-10 15:36:32 +00:00
## Referenzen
2024-02-08 21:36:35 +00:00
* [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/)
2022-05-08 23:13:03 +00:00
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2024-01-03 10:42:55 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>