6.7 KiB
554,8554 - Testowanie penetracyjne RTSP
Naucz się hakować 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ź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
Podstawowe informacje
Z wikipedia:
Real Time Streaming Protocol (RTSP) to protokół kontroli sieciowej zaprojektowany do użytku w systemach rozrywkowych i komunikacyjnych w celu kontrolowania serwerów strumieniowych. 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 umożliwić kontrolę w czasie rzeczywistym nad strumieniem multimedialnym z serwera do klienta (Video On Demand) lub od klienta do serwera (Nagrywanie głosu).
Przesyłanie strumieniowych danych nie jest zadaniem RTSP. Większość serwerów RTSP używa protokołu Real-time Transport Protocol (RTP) w połączeniu z protokołem Real-time Control Protocol (RTCP) do dostarczania strumieni multimedialnych. Jednak niektórzy producenci stosują własne protokoły transportowe. Na przykład oprogramowanie serwera RTSP firmy RealNetworks używało również własnego protokołu transportowego Real Data Transport (RDT).
Domyślne porty: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Kluczowe informacje
RTSP jest podobny do HTTP, ale został zaprojektowany specjalnie do strumieniowania mediów. Jest zdefiniowany w prostym specyfikacji, którą można znaleźć tutaj:
Urządzenia mogą umożliwiać dostęp bez uwierzytelnienia lub uwierzytelniony. Aby to sprawdzić, wysyłane jest żądanie "DESCRIBE". Poniżej przedstawiono podstawowy przykład:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\n
Pamiętaj, że poprawne formatowanie obejmuje podwójne "\r\n" dla spójnej odpowiedzi. Odpowiedź "200 OK" oznacza dostęp bez uwierzytelnienia, podczas gdy "401 Unauthorized" sygnalizuje konieczność uwierzytelnienia, ujawniając, czy wymagane jest uwierzytelnienie Basic lub Digest.
W przypadku 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==\r\n
Ten przykład używa poświadczeń "admin" i "1234". Oto skrypt Pythona, który wysyła takie żądanie:
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)
data = s.recv(1024)
print(data)
Podstawowa autoryzacja jest prostsza i preferowana. Autoryzacja digest wymaga ostrożnego obchodzenia się z danymi uwierzytelniającymi dostarczonymi w odpowiedzi "401 Unauthorized".
Ten przegląd upraszcza proces dostępu do strumieni RTSP, skupiając się na podstawowej autoryzacji ze względu na jej prostotę i praktyczność przy początkowych próbach.
Wyliczanie
Pobierzmy informacje na temat obsługiwanych metod i adresów URL oraz spróbujmy siłowo zdobyć dostęp (jeśli jest to konieczne), aby uzyskać dostęp do zawartości.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Inne przydatne programy
Do przeprowadzenia ataku brute force: https://github.com/Tek-Security-Group/rtsp_authgrinder
- Wykrywa otwarte hosty RTSP na dowolnym dostępnym celu
- Pobiera ich publiczne informacje (nazwa hosta, port, model kamery itp.)
- Uruchamia automatyczne ataki słownikowe, aby uzyskać ścieżkę strumienia (na przykład /live.sdp)
- Uruchamia automatyczne ataki słownikowe, aby uzyskać nazwę użytkownika i hasło do kamer
- Generuje miniatury, aby sprawdzić, czy strumienie są poprawne i szybko zobaczyć ich zawartość
- Próbuje utworzyć potok Gstreamer, aby sprawdzić, czy są poprawnie zakodowane
- Wyświetla podsumowanie wszystkich informacji, które Cameradar mógł uzyskać
Odwołania
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć reklamę swojej firmy w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.