mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 16:39:32 +00:00
64 lines
5.8 KiB
Markdown
64 lines
5.8 KiB
Markdown
|
# WebRTC DoS
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Apprenez et pratiquez le 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">\
|
||
|
Apprenez et pratiquez le 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>Support HackTricks</summary>
|
||
|
|
||
|
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
**Ce problème a été trouvé dans cet article de 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 vulnérabilité décrite dans les serveurs multimédias WebRTC provient d'une **condition de concurrence** lors de l'initialisation des sessions multimédias, spécifiquement entre la **vérification du consentement multimédia ICE** et l'**initiation du trafic DTLS**. Voici une analyse détaillée :
|
||
|
|
||
|
### Origine de la vulnérabilité
|
||
|
|
||
|
1. **Allocation de port UDP :** Lorsqu'un utilisateur initie un appel WebRTC, le serveur multimédia alloue des ports UDP pour gérer les flux multimédias, avec l'IP et le port communiqués via la signalisation.
|
||
|
2. **Processus ICE et STUN :** Le navigateur de l'utilisateur utilise ICE pour la vérification du consentement multimédia, utilisant STUN pour déterminer le chemin de connexion vers le serveur multimédia.
|
||
|
3. **Session DTLS :** Après une vérification STUN réussie, une session DTLS commence pour établir des clés maîtresses SRTP, passant à SRTP pour le flux multimédia.
|
||
|
|
||
|
### Mécanisme d'exploitation
|
||
|
|
||
|
* **Exploitation de la condition de concurrence :** Un attaquant peut exploiter une condition de concurrence en envoyant un message DTLS ClientHello avant l'utilisateur légitime, utilisant potentiellement une suite de chiffrement invalide comme `TLS_NULL_WITH_NULL_NULL`. Cela provoque une erreur DTLS sur le serveur, empêchant l'établissement de la session SRTP.
|
||
|
|
||
|
### Processus d'attaque
|
||
|
|
||
|
* **Analyse de port :** L'attaquant doit deviner quels ports UDP gèrent les sessions multimédias entrantes, envoyant des messages ClientHello avec la suite de chiffrement nulle à ces ports pour déclencher la vulnérabilité.
|
||
|
* **Diagramme de l'attaque :** La séquence implique plusieurs messages ClientHello envoyés par l'attaquant au serveur, entrecoupés de signalisation légitime et de messages DTLS, entraînant un échec de la poignée de main en raison de la suite de chiffrement erronée.
|
||
|
|
||
|
### Tests et atténuation
|
||
|
|
||
|
* **Tests sûrs :** En utilisant des outils comme Scapy, les attaquants rejouent des messages DTLS ClientHello ciblant des ports multimédias spécifiques. Pour des tests éthiques, des modifications de Chromium (par exemple, `JsepTransport::AddRemoteCandidates`) ont été utilisées pour imiter le comportement de la victime en toute sécurité.
|
||
|
* **Mesures d'atténuation :** Les solutions impliquent de rejeter les paquets provenant d'adresses non vérifiées, comme mis en œuvre dans les versions plus récentes de bibliothèques comme libnice. La solution principale met l'accent sur la confiance dans le processus de vérification ICE et sur le traitement uniquement des paquets provenant de combinaisons IP et port validées.
|
||
|
|
||
|
### Scénarios non vulnérables
|
||
|
|
||
|
* **Configurations de serveur DTLS :** Les cas où le navigateur agit en tant que serveur DTLS ou lorsque le serveur multimédia n'utilise pas de ports éphémères pour les sessions multimédias ne sont pas susceptibles à cette vulnérabilité.
|
||
|
|
||
|
### Conclusion
|
||
|
|
||
|
Cette vulnérabilité met en évidence l'équilibre délicat dans les processus d'initialisation des sessions multimédias et la nécessité de mécanismes de vérification et de synchronisation précis pour prévenir l'exploitation. Les développeurs sont conseillés de mettre en œuvre les correctifs de sécurité recommandés et de garantir des processus de vérification robustes pour atténuer de telles vulnérabilités.
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Apprenez et pratiquez le 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">\
|
||
|
Apprenez et pratiquez le 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>Support HackTricks</summary>
|
||
|
|
||
|
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
|
||
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|