554,8554 - Pentesting RTSP
Podstawowe informacje
Z wikipedia:
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
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:
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://<ip>:<port> RTSP/1.0\r\nCSeq: 2
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://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
Ten przykład używa "admin" i "1234" jako poświadczeń. Oto skrypt Pythona do wysłania takiego żądania:
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.
Inne przydatne programy
Do ataku brute force: https://github.com/Tek-Security-Group/rtsp_authgrinder
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
Last updated