mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/554-8554-pentesting-rtsp.md
This commit is contained in:
parent
f6c526dba1
commit
25e7d75dc6
@ -6,9 +6,9 @@
|
||||
|
||||
From [wikipedia](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol):
|
||||
|
||||
> Το **Real Time Streaming Protocol** (**RTSP**) είναι ένα πρωτόκολλο ελέγχου δικτύου σχεδιασμένο για χρήση σε συστήματα ψυχαγωγίας και επικοινωνιών για τον έλεγχο διακομιστών ροής πολυμέσων. Το πρωτόκολλο χρησιμοποιείται για την εγκαθίδρυση και τον έλεγχο συνεδριών πολυμέσων μεταξύ τελικών σημείων. Οι πελάτες των διακομιστών πολυμέσων εκδίδουν εντολές τύπου VHS, όπως αναπαραγωγή, εγγραφή και παύση, για να διευκολύνουν τον πραγματικό έλεγχο της ροής πολυμέσων από τον διακομιστή σε έναν πελάτη (Video On Demand) ή από έναν πελάτη στον διακομιστή (Voice Recording).
|
||||
> Το **Πρωτόκολλο Ροής Πραγματικού Χρόνου** (**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.
|
||||
> Η μετάδοση των δεδομένων ροής από μόνη της δεν είναι έργο του RTSP. Οι περισσότεροι διακομιστές RTSP χρησιμοποιούν το Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου (RTP) σε συνδυασμό με το Πρωτόκολλο Ελέγχου Πραγματικού Χρόνου (RTCP) για την παράδοση ροής πολυμέσων. Ωστόσο, ορισμένοι προμηθευτές υλοποιούν ιδιόκτητα πρωτόκολλα μεταφοράς. Το λογισμικό διακομιστή RTSP από την RealNetworks, για παράδειγμα, χρησιμοποιεί επίσης το ιδιόκτητο Πρωτόκολλο Μεταφοράς Δεδομένων της RealNetworks (RDT).
|
||||
|
||||
**Default ports:** 554,8554
|
||||
```
|
||||
@ -21,13 +21,13 @@ PORT STATE SERVICE
|
||||
|
||||
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
|
||||
|
||||
Οι συσκευές μπορεί να επιτρέπουν **unauthenticated** ή **authenticated** πρόσβαση. Για να ελεγχθεί, αποστέλλεται ένα αίτημα "DESCRIBE". Ένα βασικό παράδειγμα φαίνεται παρακάτω:
|
||||
Οι συσκευές μπορεί να επιτρέπουν **μη αυθεντικοποιημένη** ή **αυθεντικοποιημένη** πρόσβαση. Για να ελεγχθεί, αποστέλλεται ένα αίτημα "DESCRIBE". Ένα βασικό παράδειγμα φαίνεται παρακάτω:
|
||||
|
||||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2`
|
||||
|
||||
Θυμηθείτε, η σωστή μορφοποίηση περιλαμβάνει ένα διπλό "\r\n" για μια συνεπή απάντηση. Μια απάντηση "200 OK" υποδηλώνει **unauthenticated access**, ενώ το "401 Unauthorized" σηματοδοτεί την ανάγκη για αυθεντικοποίηση, αποκαλύπτοντας αν απαιτείται **Basic** ή **Digest authentication**.
|
||||
Θυμηθείτε, η σωστή μορφοποίηση περιλαμβάνει ένα διπλό "\r\n" για μια συνεπή απάντηση. Μια απάντηση "200 OK" υποδηλώνει **μη αυθεντικοποιημένη πρόσβαση**, ενώ το "401 Unauthorized" σηματοδοτεί την ανάγκη για αυθεντικοποίηση, αποκαλύπτοντας αν απαιτείται **Basic** ή **Digest authentication**.
|
||||
|
||||
Για **Basic authentication**, κωδικοποιείτε το όνομα χρήστη και τον κωδικό πρόσβασης σε base64 και το συμπεριλαμβάνετε στο αίτημα όπως παρακάτω:
|
||||
Για **Basic authentication**, κωδικοποιείτε το όνομα χρήστη και τον κωδικό πρόσβασης σε base64 και το συμπεριλαμβάνετε στο αίτημα ως εξής:
|
||||
|
||||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==`
|
||||
|
||||
@ -47,10 +47,19 @@ print(data)
|
||||
|
||||
## Enumeration
|
||||
|
||||
Ας αποκτήσουμε πληροφορίες σχετικά με τις έγκυρες μεθόδους και τις υποστηριζόμενες διευθύνσεις URL και ας προσπαθήσουμε να κάνουμε brute-force την πρόσβαση (αν χρειαστεί) για να αποκτήσουμε πρόσβαση στο περιεχόμενο.
|
||||
Ας αποκτήσουμε πληροφορίες σχετικά με τις έγκυρες μεθόδους και τις διευθύνσεις URL που υποστηρίζονται και ας προσπαθήσουμε να κάνουμε brute-force την πρόσβαση (αν χρειαστεί) για να αποκτήσουμε πρόσβαση στο περιεχόμενο.
|
||||
```bash
|
||||
nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
||||
```
|
||||
#### Προβολή του RTSP Stream με [ffplay](https://ffmpeg.org/ffplay.html)
|
||||
Αφού έχετε ανακαλύψει μια έγκυρη διαδρομή RTSP (π.χ., `/mpeg4`, `/live.sdp`) και έχετε επιβεβαιώσει την πρόσβαση (χωρίς αυθεντικοποίηση ή με διαπιστευτήρια), μπορείτε να χρησιμοποιήσετε το `ffplay` για να μεταδώσετε τη ροή:
|
||||
```bash
|
||||
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
|
||||
```
|
||||
- `-rtsp_transport tcp`: Χρησιμοποιήστε TCP αντί για UDP για πιο αξιόπιστη ροή
|
||||
- `-x`, `-y`: Προαιρετικές σημαίες για τον έλεγχο της ανάλυσης βίντεο
|
||||
- Αντικαταστήστε το `<IP>` και τη διαδρομή όπως απαιτείται
|
||||
|
||||
### [Brute Force](../generic-hacking/brute-force.md#rtsp)
|
||||
|
||||
### **Άλλα χρήσιμα προγράμματα**
|
||||
@ -60,14 +69,14 @@ nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
||||
[**Cameradar**](https://github.com/Ullaakut/cameradar)
|
||||
|
||||
- Ανίχνευση ανοιχτών RTSP hosts σε οποιονδήποτε προσβάσιμο στόχο
|
||||
- Λήψη δημόσιων πληροφοριών τους (hostname, port, μοντέλο κάμερας, κ.λπ.)
|
||||
- Λάβετε τις δημόσιες πληροφορίες τους (hostname, port, μοντέλο κάμερας, κ.λπ.)
|
||||
- Εκτέλεση αυτοματοποιημένων επιθέσεων λεξικού για να αποκτήσετε τη διαδρομή ροής τους (για παράδειγμα /live.sdp)
|
||||
- Εκτέλεση αυτοματοποιημένων επιθέσεων λεξικού για να αποκτήσετε το όνομα χρήστη και τον κωδικό πρόσβασης των καμερών
|
||||
- Δημιουργία μικρογραφιών από αυτές για να ελέγξετε αν οι ροές είναι έγκυρες και για να έχετε μια γρήγορη προεπισκόπηση του περιεχομένου τους
|
||||
- Προσπάθεια δημιουργίας ενός pipeline Gstreamer για να ελέγξετε αν είναι σωστά κωδικοποιημένες
|
||||
- Εκτύπωση μιας περίληψης όλων των πληροφοριών που θα μπορούσε να αποκτήσει το Cameradar
|
||||
|
||||
## Αναφορές
|
||||
## References
|
||||
|
||||
- [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/)
|
||||
|
Loading…
x
Reference in New Issue
Block a user