hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md

101 lines
6.7 KiB
Markdown
Raw Normal View History

# 554,8554 - Test di penetrazione RTSP
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Esperto Red Team AWS di HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-01-03 10:42:55 +00:00
* Se desideri vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**Gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
2022-04-28 16:01:33 +00:00
</details>
## Informazioni di Base
2024-02-10 13:03:23 +00:00
Da [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
2024-02-08 21:36:35 +00:00
> Il **Real Time Streaming Protocol** (**RTSP**) è un protocollo di controllo di rete progettato per l'uso in sistemi di intrattenimento e comunicazione per controllare i server multimediali in streaming. Il protocollo è utilizzato per stabilire e controllare sessioni multimediali tra i punti finali. I client dei server multimediali emettono comandi in stile VHS, come play, record e pause, per facilitare il controllo in tempo reale dello streaming multimediale dal server a un client (Video On Demand) o da un client al server (Registrazione vocale).
>
> La trasmissione dei dati in streaming non è un compito di RTSP. La maggior parte dei server RTSP utilizza il Real-time Transport Protocol (RTP) insieme al Real-time Control Protocol (RTCP) per la distribuzione dello stream multimediale. Tuttavia, alcuni fornitori implementano protocolli di trasporto proprietari. Ad esempio, il software del server RTSP di RealNetworks utilizzava anche il Real Data Transport (RDT) proprietario di RealNetworks.
2024-02-10 13:03:23 +00:00
**Porte predefinite:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
## Dettagli Chiave
**RTSP** è simile all'HTTP ma progettato specificamente per lo streaming multimediale. È definito in una specifica diretta che può essere trovata qui:
[RTSP RFC2326](https://tools.ietf.org/html/rfc2326)
I dispositivi potrebbero permettere l'accesso **non autenticato** o **autenticato**. Per verificare, viene inviata una richiesta "DESCRIBE". Di seguito è mostrato un esempio di base:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r`
Ricorda, il corretto formattazione include un doppio "\r\n" per una risposta coerente. Una risposta "200 OK" indica un **accesso non autenticato**, mentre "401 Unauthorized" segnala la necessità di autenticazione, rivelando se è richiesta l'autenticazione **Basic** o **Digest**.
Per l'**autenticazione di base**, si codifica il nome utente e la password in base64 e li si include nella richiesta in questo modo:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
2024-02-10 13:03:23 +00:00
Questo esempio utilizza "admin" e "1234" come credenziali. Ecco uno **script Python** per inviare una tale richiesta:
```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)
2022-02-10 12:30:58 +00:00
data = s.recv(1024)
2022-02-09 20:30:05 +00:00
print(data)
```
**Autenticazione di base** è più semplice e preferita. L'**autenticazione digest** richiede un'attenta gestione dei dettagli di autenticazione forniti nella risposta "401 Non autorizzato".
2024-02-08 21:36:35 +00:00
Questa panoramica semplifica il processo di accesso ai flussi RTSP, concentrandosi sull'**autenticazione di base** per la sua semplicità e praticità nei tentativi iniziali.
2024-02-10 13:03:23 +00:00
## Enumerazione
Otteniamo informazioni sui metodi validi e sugli URL supportati e proviamo a forzare l'accesso (se necessario) per accedere ai contenuti.
```bash
2022-01-13 18:45:25 +00:00
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
2022-05-01 13:25:53 +00:00
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
2024-02-10 13:03:23 +00:00
### **Altri programmi utili**
Per eseguire un attacco di forza bruta: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
2024-02-08 21:36:35 +00:00
[**Cameradar**](https://github.com/Ullaakut/cameradar)
2024-02-10 13:03:23 +00:00
* Rileva host RTSP aperti su qualsiasi target accessibile
* Ottieni le loro informazioni pubbliche (nome host, porta, modello della telecamera, ecc.)
* Avvia attacchi di dizionario automatizzati per ottenere il percorso dello stream (ad esempio /live.sdp)
* Avvia attacchi di dizionario automatizzati per ottenere nome utente e password delle telecamere
* Genera miniature per controllare se gli stream sono validi e per avere un'anteprima rapida dei loro contenuti
* Prova a creare una pipeline Gstreamer per verificare se sono correttamente codificati
* Stampa un riepilogo di tutte le informazioni che Cameradar è riuscito a ottenere
2024-02-08 21:36:35 +00:00
2024-02-10 13:03:23 +00:00
## Riferimenti
2024-02-08 21:36:35 +00:00
* [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/)
2022-05-08 23:13:03 +00:00
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Impara l'hacking su AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2024-01-03 10:42:55 +00:00
* Se desideri vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>