# 554,8554 - Testowanie penetracyjne RTSP
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
## Podstawowe informacje
Z [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
> **Protokół transmisji strumieniowej w czasie rzeczywistym** (**RTSP**) to protokół sterowania sieciowego zaprojektowany do użytku w systemach rozrywkowych i komunikacyjnych do sterowania serwerami strumieniowymi. Protokół jest używany do ustanawiania i kontrolowania sesji multimedialnych między punktami końcowymi. Klienci serwerów multimedialnych wydają polecenia w stylu VHS, takie jak odtwarzanie, nagrywanie i pauza, aby ułatwić kontrolę w czasie rzeczywistym nad strumieniem multimedialnym z serwera do klienta (wideo na żądanie) lub od klienta do serwera (nagrywanie głosu).
>
> Same przesyłanie danych strumieniowych nie jest zadaniem RTSP. Większość serwerów RTSP używa Protokołu Transportu w Czasie Rzeczywistym (RTP) w połączeniu z Protokołem Kontroli w Czasie Rzeczywistym (RTCP) do dostarczania strumieni multimedialnych. Jednak niektórzy dostawcy implementują własne protokoły transportowe. Na przykład oprogramowanie serwera RTSP od RealNetworks używało również własnego własnego protokołu transportu danych (RDT).
**Domyślne porty:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
## Kluczowe szczegóły
**RTSP** jest podobny do HTTP, ale zaprojektowany specjalnie do strumieniowania mediów. Jest zdefiniowany w prostym specyfikacji, którą można znaleźć tutaj:
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
Urządzenia mogą zezwalać na dostęp **nieuwierzytelniony** lub **uwierzytelniony**. Aby to sprawdzić, wysyłany jest żądanie "DESCRIBE". Poniżej przedstawiono podstawowy przykład:
`DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r`
Pamiętaj, że poprawne formatowanie obejmuje podwójne "\r\n" dla spójnej odpowiedzi. Odpowiedź "200 OK" oznacza **dostęp nieuwierzytelniony**, podczas gdy "401 Unauthorized" sygnalizuje konieczność uwierzytelnienia, ujawniając, czy wymagane jest uwierzytelnienie **Basic** lub **Digest**.
Dla uwierzytelnienia **Basic**, kodujesz nazwę użytkownika i hasło w base64 i dołączasz je do żądania w ten sposób:
`DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
Ten przykład używa "admin" i "1234" jako poświadczeń. Oto **skrypt Pythona** do wysłania takiego żądania:
```python
import socket
req = "DESCRIBE rtsp://: 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)
```
**Podstawowa autoryzacja** jest prostsza i preferowana. **Autoryzacja digest** wymaga ostrożnego obchodzenia się z danymi uwierzytelniającymi podanymi w odpowiedzi "401 Unauthorized".
To przegląd upraszcza proces dostępu do strumieni RTSP, skupiając się na **podstawowej autoryzacji** ze względu na jej prostotę i praktyczność podczas pierwszych prób.
## Wyliczanie
Pobierzmy informacje na temat obsługiwanych metod i adresów URL oraz spróbujmy siłowo uzyskać dostęp (jeśli konieczne) do treści.
```bash
nmap -sV --script "rtsp-*" -p
```
### [Atak Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
### **Inne przydatne programy**
Do ataku brute force: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
[**Cameradar**](https://github.com/Ullaakut/cameradar)
* Wykrywa otwarte hosty RTSP na dowolnym dostępnym celu
* Pobiera ich publiczne informacje (nazwę hosta, port, model kamery, itp.)
* Uruchamia zautomatyzowane ataki słownikowe, aby uzyskać ścieżkę strumienia (na przykład /live.sdp)
* Uruchamia zautomatyzowane ataki słownikowe, aby uzyskać nazwę użytkownika i hasło do kamer
* Generuje miniatury, aby sprawdzić, czy strumienie są ważne i szybko podejrzeć ich zawartość
* Próbuje utworzyć potok Gstreamer, aby sprawdzić, czy są poprawnie zakodowane
* Wyświetla podsumowanie wszystkich informacji, które Cameradar mógł uzyskać
## Referencje
* [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/)
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.