554,8554 - Pentesting RTSP

Reading time: 4 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Basic Information

From wikipedia:

Το Real Time Streaming Protocol (RTSP) είναι ένα πρωτόκολλο ελέγχου δικτύου σχεδιασμένο για χρήση σε συστήματα ψυχαγωγίας και επικοινωνιών για τον έλεγχο διακομιστών ροής πολυμέσων. Το πρωτόκολλο χρησιμοποιείται για την εγκαθίδρυση και τον έλεγχο συνεδριών πολυμέσων μεταξύ τελικών σημείων. Οι πελάτες των διακομιστών πολυμέσων εκδίδουν εντολές τύπου VHS, όπως αναπαραγωγή, εγγραφή και παύση, για να διευκολύνουν τον πραγματικό έλεγχο της ροής πολυμέσων από τον διακομιστή σε έναν πελάτη (Video On Demand) ή από έναν πελάτη στον διακομιστή (Voice Recording).

Η μετάδοση των δεδομένων ροής δεν είναι έργο του RTSP. Οι περισσότεροι διακομιστές RTSP χρησιμοποιούν το Real-time Transport Protocol (RTP) σε συνδυασμό με το Real-time Control Protocol (RTCP) για την παράδοση ροής πολυμέσων. Ωστόσο, ορισμένοι προμηθευτές εφαρμόζουν ιδιόκτητα πρωτόκολλα μεταφοράς. Το λογισμικό διακομιστή RTSP από την RealNetworks, για παράδειγμα, χρησιμοποιεί επίσης το ιδιόκτητο Real Data Transport (RDT) της RealNetworks.

Default ports: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Key Details

RTSP είναι παρόμοιο με το HTTP αλλά σχεδιασμένο ειδικά για ροή πολυμέσων. Ορίζεται σε μια απλή προδιαγραφή που μπορεί να βρεθεί εδώ:

RTSP – RFC2326

Οι συσκευές μπορεί να επιτρέπουν unauthenticated ή authenticated πρόσβαση. Για να ελεγχθεί, αποστέλλεται ένα αίτημα "DESCRIBE". Ένα βασικό παράδειγμα φαίνεται παρακάτω:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2

Θυμηθείτε, η σωστή μορφοποίηση περιλαμβάνει ένα διπλό "\r\n" για μια συνεπή απάντηση. Μια απάντηση "200 OK" υποδηλώνει unauthenticated access, ενώ το "401 Unauthorized" σηματοδοτεί την ανάγκη για αυθεντικοποίηση, αποκαλύπτοντας αν απαιτείται Basic ή Digest authentication.

Για Basic authentication, κωδικοποιείτε το όνομα χρήστη και τον κωδικό πρόσβασης σε base64 και το συμπεριλαμβάνετε στο αίτημα όπως παρακάτω:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==

Αυτό το παράδειγμα χρησιμοποιεί "admin" και "1234" για τα διαπιστευτήρια. Ορίστε ένα Python script για να στείλετε ένα τέτοιο αίτημα:

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)
data = s.recv(1024)
print(data)

Η βασική αυθεντικοποίηση είναι πιο απλή και προτιμάται. Η αυθεντικοποίηση Digest απαιτεί προσεκτική διαχείριση των λεπτομερειών αυθεντικοποίησης που παρέχονται στην απάντηση "401 Unauthorized".

Αυτή η επισκόπηση απλοποιεί τη διαδικασία πρόσβασης σε ροές RTSP, εστιάζοντας στη Βασική αυθεντικοποίηση για την απλότητά της και την πρακτικότητα στις αρχικές προσπάθειες.

Enumeration

Ας αποκτήσουμε πληροφορίες σχετικά με τις έγκυρες μεθόδους και τις υποστηριζόμενες διευθύνσεις URL και ας προσπαθήσουμε να κάνουμε brute-force την πρόσβαση (αν χρειαστεί) για να αποκτήσουμε πρόσβαση στο περιεχόμενο.

bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>

Brute Force

Άλλα χρήσιμα προγράμματα

Για brute force: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Ανίχνευση ανοιχτών RTSP hosts σε οποιονδήποτε προσβάσιμο στόχο
  • Λήψη δημόσιων πληροφοριών τους (hostname, port, μοντέλο κάμερας, κ.λπ.)
  • Εκτέλεση αυτοματοποιημένων επιθέσεων λεξικού για να αποκτήσετε τη διαδρομή ροής τους (για παράδειγμα /live.sdp)
  • Εκτέλεση αυτοματοποιημένων επιθέσεων λεξικού για να αποκτήσετε το όνομα χρήστη και τον κωδικό πρόσβασης των καμερών
  • Δημιουργία μικρογραφιών από αυτές για να ελέγξετε αν οι ροές είναι έγκυρες και για να έχετε μια γρήγορη προεπισκόπηση του περιεχομένου τους
  • Προσπάθεια δημιουργίας ενός pipeline Gstreamer για να ελέγξετε αν είναι σωστά κωδικοποιημένες
  • Εκτύπωση μιας περίληψης όλων των πληροφοριών που θα μπορούσε να αποκτήσει το Cameradar

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks