mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
64 lines
5.5 KiB
Markdown
64 lines
5.5 KiB
Markdown
|
# WebRTC DoS
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Impara e pratica Hacking AWS:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Impara e pratica Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Supporta HackTricks</summary>
|
||
|
|
||
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
**Questo problema è stato trovato in questo post del blog:** [**https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/**](https://www.rtcsec.com/article/novel-dos-vulnerability-affecting-webrtc-media-servers/)
|
||
|
|
||
|
La vulnerabilità descritta nei server multimediali WebRTC deriva da una **condizione di gara** durante l'inizializzazione delle sessioni multimediali, specificamente tra la **verifica del consenso multimediale ICE** e l'**inizializzazione del traffico DTLS**. Ecco un'analisi dettagliata:
|
||
|
|
||
|
### Origine della Vulnerabilità
|
||
|
|
||
|
1. **Allocazione della Porta UDP:** Quando un utente avvia una chiamata WebRTC, il server multimediale alloca porte UDP per gestire i flussi multimediali, con l'IP e la porta comunicati tramite signaling.
|
||
|
2. **Processi ICE e STUN:** Il browser dell'utente utilizza ICE per la verifica del consenso multimediale, utilizzando STUN per determinare il percorso di connessione al server multimediale.
|
||
|
3. **Sessione DTLS:** Dopo una verifica STUN riuscita, inizia una sessione DTLS per stabilire le chiavi master SRTP, passando a SRTP per il flusso multimediale.
|
||
|
|
||
|
### Meccanismo di Sfruttamento
|
||
|
|
||
|
* **Sfruttamento della Condizione di Gara:** Un attaccante può sfruttare una condizione di gara inviando un messaggio DTLS ClientHello prima dell'utente legittimo, potenzialmente utilizzando una suite di cifratura non valida come `TLS_NULL_WITH_NULL_NULL`. Questo causa un errore DTLS sul server, impedendo l'instaurazione della sessione SRTP.
|
||
|
|
||
|
### Processo di Attacco
|
||
|
|
||
|
* **Scansione delle Porte:** L'attaccante deve indovinare quali porte UDP gestiscono le sessioni multimediali in arrivo, inviando messaggi ClientHello con la suite di cifratura nulla a queste porte per attivare la vulnerabilità.
|
||
|
* **Diagramma dell'Attacco:** La sequenza coinvolge più messaggi ClientHello inviati dall'attaccante al server, intercalati con signaling legittimo e messaggi DTLS, portando a un fallimento del handshake a causa della suite di cifratura errata.
|
||
|
|
||
|
### Test e Mitigazione
|
||
|
|
||
|
* **Test Sicuri:** Utilizzando strumenti come Scapy, gli attaccanti riproducono messaggi DTLS ClientHello mirati a porte multimediali specifiche. Per test etici, sono state utilizzate modifiche a Chromium (ad es., `JsepTransport::AddRemoteCandidates`) per imitare il comportamento della vittima in modo sicuro.
|
||
|
* **Misure di Mitigazione:** Le soluzioni prevedono il rifiuto dei pacchetti da indirizzi non verificati, come implementato nelle versioni più recenti di librerie come libnice. La soluzione principale enfatizza la fiducia nel processo di verifica ICE e l'elaborazione solo dei pacchetti provenienti da combinazioni IP e porta validate.
|
||
|
|
||
|
### Scenari Non Vulnerabili
|
||
|
|
||
|
* **Configurazioni del Server DTLS:** I casi in cui il browser funge da server DTLS o quando il server multimediale non utilizza porte effimere per le sessioni multimediali non sono suscettibili a questa vulnerabilità.
|
||
|
|
||
|
### Conclusione
|
||
|
|
||
|
Questa vulnerabilità evidenzia l'equilibrio delicato nei processi di inizializzazione delle sessioni multimediali e la necessità di meccanismi di temporizzazione e verifica precisi per prevenire sfruttamenti. Si consiglia agli sviluppatori di implementare le correzioni di sicurezza raccomandate e garantire processi di verifica robusti per mitigare tali vulnerabilità.
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Impara e pratica Hacking AWS:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Impara e pratica Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Supporta HackTricks</summary>
|
||
|
|
||
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|