mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
100 lines
10 KiB
Markdown
100 lines
10 KiB
Markdown
# 554,8554 - Ελεγχος Ασφάλειας RTSP
|
||
|
||
<details>
|
||
|
||
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Άλλοι τρόποι υποστήριξης του HackTricks:
|
||
|
||
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
|
||
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
|
||
|
||
</details>
|
||
|
||
## Βασικές Πληροφορίες
|
||
|
||
Από τη [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
|
||
|
||
> Το **Real Time Streaming Protocol** (**RTSP**) είναι ένα πρωτόκολλο ελέγχου δικτύου σχεδιασμένο για χρήση σε συστήματα ψυχαγωγίας και επικοινωνίας για τον έλεγχο διακομιστών μέσων ροής. Το πρωτόκολλο χρησιμοποιείται για την καθιέρωση και έλεγχο των συνεδριών μέσων μεταξύ σημείων άκρων. Οι πελάτες των διακομιστών μέσων εκδίδουν εντολές στυλ VHS, όπως αναπαραγωγή, εγγραφή και παύση, για τη διευκόλυνση του πραγματικού χρόνου ελέγχου της ροής μέσων από τον διακομιστή σε έναν πελάτη (Βίντεο Κατά Ζήτησης) ή από έναν πελάτη στον διακομιστή (Εγγραφή Φωνής).
|
||
>
|
||
> Η μετάδοση των δεδομένων ροής καθεαυτή δεν είναι καθήκον του RTSP. Οι περισσότεροι διακομιστές RTSP χρησιμοποιούν το Πρωτόκολλο Μεταφοράς Πραγματικού Χρόνου (RTP) σε συνδυασμό με το Πρωτόκολλο Ελέγχου Πραγματικού Χρόνου (RTCP) για την παράδοση ροής μέσων. Ωστόσο, μερικοί προμηθευτές υλοποιούν προτοπρόνια μεταφοράς. Το λογισμικό διακομιστή RTSP από τη RealNetworks, για παράδειγμα, χρησιμοποιούσε επίσης το προτοπρόνιο Real Data Transport (RDT).
|
||
|
||
**Προεπιλεγμένες θύρες:** 554,8554
|
||
```
|
||
PORT STATE SERVICE
|
||
554/tcp open rtsp
|
||
```
|
||
## Βασικές Λεπτομέρειες
|
||
|
||
Το **RTSP** είναι παρόμοιο με το HTTP αλλά σχεδιασμένο ειδικά για τη ροή πολυμέσων. Ορίζεται σε μια απλή προδιαγραφή η οποία μπορεί να βρεθεί εδώ:
|
||
|
||
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
|
||
|
||
Οι συσκευές μπορεί να επιτρέπουν **μη εξουσιοδοτημένη** ή **εξουσιοδοτημένη** πρόσβαση. Για να ελέγξετε αυτό, στέλνετε ένα αίτημα "DESCRIBE". Ένα βασικό παράδειγμα φαίνεται παρακάτω:
|
||
|
||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r`
|
||
|
||
Να θυμάστε, η σωστή μορφοποίηση περιλαμβάνει ένα διπλό "\r\n" για μια συνεπή απάντηση. Μια απάντηση "200 OK" υποδηλώνει **μη εξουσιοδοτημένη πρόσβαση**, ενώ το "401 Unauthorized" σημαίνει την ανάγκη για εξουσιοδότηση, αποκαλύπτοντας αν απαιτείται **βασική** ή **διαπίστευση Digest**.
|
||
|
||
Για **βασική εξουσιοδότηση**, κωδικοποιείτε το όνομα χρήστη και τον κωδικό σε base64 και το συμπεριλαμβάνετε στο αίτημα ως εξής:
|
||
|
||
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
|
||
|
||
Αυτό το παράδειγμα χρησιμοποιεί "admin" και "1234" για τα διαπιστευτήρια. Εδώ υπάρχει ένα **σενάριο Python** για να στείλετε ένα τέτοιο αίτημα:
|
||
```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, εστιάζοντας στη **βασική πιστοποίηση** για την απλότητά της και την πρακτικότητά της στις αρχικές προσπάθειες.
|
||
|
||
## Απαρίθμηση
|
||
|
||
Ας λάβουμε πληροφορίες σχετικά με τις έγκυρες μεθόδους και τις διευθύνσεις URL που υποστηρίζονται και ας προσπαθήσουμε να εκτελέσουμε βίαιη είσοδο (εάν απαιτείται) για να αποκτήσουμε πρόσβαση στο περιεχόμενο.
|
||
```bash
|
||
nmap -sV --script "rtsp-*" -p <PORT> <IP>
|
||
```
|
||
### [Βίαιη Δύναμη](../generic-methodologies-and-resources/brute-force.md#rtsp)
|
||
|
||
### **Άλλα χρήσιμα προγράμματα**
|
||
|
||
Για επίθεση με βίαιη δύναμη: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
|
||
|
||
[**Cameradar**](https://github.com/Ullaakut/cameradar)
|
||
|
||
* Ανίχνευση ανοιχτών κόμβων RTSP σε οποιοδήποτε προσβάσιμο στόχο
|
||
* Λήψη δημόσιων πληροφοριών τους (όνομα κεντρικού υπολογιστή, θύρα, μοντέλο κάμερας, κλπ.)
|
||
* Έναρξη αυτοματοποιημένων επιθέσεων λεξικού για τη λήψη της διαδρομής ροής τους (π.χ. /live.sdp)
|
||
* Έναρξη αυτοματοποιημένων επιθέσεων λεξικού για τη λήψη του ονόματος χρήστη και του κωδικού πρόσβασης των καμερών
|
||
* Δημιουργία μικρογραφιών από αυτές για έλεγχο εάν οι ροές είναι έγκυρες και για γρήγορη προεπισκόπηση του περιεχομένου τους
|
||
* Προσπάθεια δημιουργίας ενός αγωγού Gstreamer για έλεγχο εάν είναι σωστά κωδικοποιημένες
|
||
* Εκτύπωση ενός συνόψισης όλων των πληροφοριών που μπορεί να λάβει το Cameradar
|
||
|
||
## Αναφορές
|
||
|
||
* [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/)
|
||
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
|
||
|
||
<details>
|
||
|
||
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Άλλοι τρόποι υποστήριξης του HackTricks:
|
||
|
||
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
|
||
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
|
||
|
||
</details>
|