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

101 lines
6.7 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# 554,8554 - Pentesting RTSP
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di 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
2024-02-10 13:03:23 +00:00
* Se vuoi 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 di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **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>
2024-02-10 13:03:23 +00:00
## 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
2024-02-10 13:03:23 +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 viene utilizzato per stabilire e controllare sessioni multimediali tra i punti finali. I client dei server multimediali emettono comandi simili a quelli di un videoregistratore, 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 (Voice Recording).
>
2024-02-10 13:03:23 +00:00
> La trasmissione dei dati in streaming non è di competenza di RTSP. La maggior parte dei server RTSP utilizza il protocollo di trasporto in tempo reale (RTP) in combinazione con il protocollo di controllo in tempo reale (RTCP) per la distribuzione dei flussi multimediali. Tuttavia, alcuni fornitori implementano protocolli di trasporto proprietari. Ad esempio, il software del server RTSP di RealNetworks utilizza anche il loro protocollo di trasporto proprietario Real Data Transport (RDT).
2024-02-10 13:03:23 +00:00
**Porte predefinite:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
2024-02-10 13:03:23 +00:00
## Dettagli chiave
2024-02-10 13:03:23 +00:00
**RTSP** è simile a HTTP ma progettato specificamente per lo streaming multimediale. È definito in una specifica semplice che può essere trovata qui:
2024-02-10 13:03:23 +00:00
[RTSP - RFC2326](https://tools.ietf.org/html/rfc2326)
2024-02-10 13:03:23 +00:00
I dispositivi potrebbero consentire l'accesso **non autenticato** o **autenticato**. Per verificare, viene inviata una richiesta "DESCRIBE". Di seguito è riportato un esempio di base:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\n`
2024-02-10 13:03:23 +00:00
Ricorda, il formato corretto 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**.
2024-02-10 13:03:23 +00:00
Per l'autenticazione **Basic**, codifichi il nome utente e la password in base64 e li includi nella richiesta in questo modo:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n`
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)
```
2024-02-10 13:03:23 +00:00
**Autenticazione di base** è più semplice e preferita. L'**autenticazione digest** richiede una gestione attenta dei dettagli di autenticazione forniti nella risposta "401 Unauthorized".
2024-02-10 13:03:23 +00:00
Questa panoramica semplifica il processo di accesso agli stream RTSP, concentrandosi sull'**autenticazione di base** per la sua semplicità e praticità nei tentativi iniziali.
2024-02-08 21:36:35 +00:00
2024-02-10 13:03:23 +00:00
## Enumerazione
2024-02-10 13:03:23 +00:00
Otteniamo informazioni sui metodi validi e gli URL supportati e proviamo a forzare l'accesso (se necessario) per ottenere l'accesso al contenuto.
```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**
2024-02-10 13:03:23 +00:00
Per effettuare 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 automatizzati di dizionario per ottenere il percorso dello stream (ad esempio /live.sdp)
* Avvia attacchi automatizzati di dizionario per ottenere il nome utente e la password delle telecamere
* Genera miniature per verificare se gli stream sono validi e per avere una rapida anteprima dei loro contenuti
* Prova a creare una pipeline Gstreamer per verificare se sono codificati correttamente
* Stampa un riepilogo di tutte le informazioni ottenute da Cameradar
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>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di 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
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](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 repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>