554,8554 - Pentesting RTSP
Βασικές Πληροφορίες
Από τη wikipedia:
Το Real Time Streaming Protocol (RTSP) είναι ένα πρωτόκολλο ελέγχου δικτύου σχεδιασμένο για χρήση σε συστήματα ψυχαγωγίας και επικοινωνίας για τον έλεγχο διακομιστών μέσων ροής. Το πρωτόκολλο χρησιμοποιείται για την καθιέρωση και έλεγχο των συνεδριών μέσων μεταξύ σημείων άκρων. Οι πελάτες των διακομιστών μέσων εκδίδουν εντολές στυλ VHS, όπως αναπαραγωγή, εγγραφή και παύση, για τη διευκόλυνση του πραγματικού χρόνου ελέγχου της ροής μέσων από τον διακομιστή σε έναν πελάτη (Βίντεο Κατά Ζήτησης) ή από έναν πελάτη στον διακομιστή (Εγγραφή Φωνής).
Η μετάδοση των δεδομένων ροής καθεαυτή δεν είναι καθήκον του RTSP. Οι περισσότεροι διακομιστές RTSP χρησιμοποιούν το Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου (RTP) σε συνδυασμό με το Πρωτόκολλο Ελέγχου Πραγματικού Χρόνου (RTCP) για την παράδοση ροής μέσων. Ωστόσο, μερικοί προμηθευτές υλοποιούν προτοπρόνια μεταφοράς. Το λογισμικό διακομιστή RTSP από τη RealNetworks, για παράδειγμα, χρησιμοποιούσε επίσης το προτοπρόνιο Real Data Transport (RDT).
Προεπιλεγμένες θύρες: 554,8554
Βασικές Λεπτομέρειες
Το RTSP είναι παρόμοιο με το HTTP αλλά σχεδιασμένο ειδικά για τη ροή πολυμέσων. Ορίζεται σε μια απλή προδιαγραφή η οποία μπορεί να βρεθεί εδώ:
Οι συσκευές μπορεί να επιτρέπουν μη εξουσιοδοτημένη ή εξουσιοδοτημένη πρόσβαση. Για να ελέγξετε αυτό, στέλνετε ένα αίτημα "DESCRIBE". Ένα βασικό παράδειγμα φαίνεται παρακάτω:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
Να θυμάστε, η σωστή μορφοποίηση περιλαμβάνει ένα διπλό "\r\n" για μια συνεπή απάντηση. Μια απάντηση "200 OK" υποδηλώνει μη εξουσιοδοτημένη πρόσβαση, ενώ το "401 Unauthorized" σημαίνει την ανάγκη για εξουσιοδότηση, αποκαλύπτοντας αν απαιτείται βασική ή διαπίστευση Digest.
Για βασική εξουσιοδότηση, κωδικοποιείτε το όνομα χρήστη και τον κωδικό σε base64 και το συμπεριλαμβάνετε στο αίτημα ως εξής:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
Αυτό το παράδειγμα χρησιμοποιεί "admin" και "1234" για τα διαπιστευτήρια. Εδώ υπάρχει ένα σενάριο Python για να στείλετε ένα τέτοιο αίτημα:
Η βασική πιστοποίηση είναι απλούστερη και προτιμάται. Η πιστοποίηση μέσω Digest απαιτεί προσεκτική χειρισμό των λεπτομερειών πιστοποίησης που παρέχονται στην απάντηση "401 Unauthorized".
Αυτή η επισκόπηση απλοποιεί τη διαδικασία πρόσβασης σε ροές RTSP, εστιάζοντας στη βασική πιστοποίηση για την απλότητά της και την πρακτικότητά της στις αρχικές προσπάθειες.
Απαρίθμηση
Ας λάβουμε πληροφορίες σχετικά με τις έγκυρες μεθόδους και τις διευθύνσεις URL που υποστηρίζονται και ας προσπαθήσουμε να εκτελέσουμε βίαιη είσοδο (εάν απαιτείται) για να αποκτήσουμε πρόσβαση στο περιεχόμενο.
Άλλα χρήσιμα προγράμματα
Για επίθεση με βίαιη δύναμη: https://github.com/Tek-Security-Group/rtsp_authgrinder
Ανίχνευση ανοιχτών κόμβων RTSP σε οποιοδήποτε προσβάσιμο στόχο
Λήψη δημόσιων πληροφοριών τους (όνομα κεντρικού υπολογιστή, θύρα, μοντέλο κάμερας, κλπ.)
Έναρξη αυτοματοποιημένων επιθέσεων λεξικού για τη λήψη της διαδρομής ροής τους (π.χ. /live.sdp)
Έναρξη αυτοματοποιημένων επιθέσεων λεξικού για τη λήψη του ονόματος χρήστη και του κωδικού πρόσβασης των καμερών
Δημιουργία μικρογραφιών από αυτές για έλεγχο εάν οι ροές είναι έγκυρες και για γρήγορη προεπισκόπηση του περιεχομένου τους
Προσπάθεια δημιουργίας ενός αγωγού Gstreamer για έλεγχο εάν είναι σωστά κωδικοποιημένες
Εκτύπωση ενός συνόψισης όλων των πληροφοριών που μπορεί να λάβει το Cameradar
Αναφορές
Last updated