Quelques mois après ProxyLogon, l'été 2021 apportait une nouvelle série de vulnérabilités critiques dans Microsoft Exchange. ProxyShell — une chaîne de trois CVE — permettait d'exécuter du code arbitraire sur tout serveur Exchange on-premises accessible depuis internet, sans authentification.
La chaîne ProxyShell
ProxyShell combine trois vulnérabilités distinctes pour aboutir à une exécution de code à distance complète.
CVE-2021-34473 — Path Confusion / Auth Bypass (CVSS 9.8)
Une faille dans l'architecture de proxy d'Exchange permet de contourner l'ACL de normalisation des URLs. En forgeant une requête avec un chemin spécifique, un attaquant peut atteindre des endpoints backend Exchange normalement protégés, en se faisant passer pour le compte SYSTEM.
CVE-2021-34523 — Privilege Escalation (CVSS 9.8)
Le backend Exchange PowerShell ne vérifie pas correctement les autorisations. En combinant avec CVE-2021-34473, l'attaquant peut exécuter des cmdlets Exchange PowerShell avec des privilèges SYSTEM, sans avoir besoin d'un compte Exchange valide.
CVE-2021-31207 — Arbitrary File Write (CVSS 7.2)
Une fonctionnalité de planification de tâches d'export de boîtes mail dans Exchange permet d'écrire des fichiers arbitraires sur le système de fichiers, notamment dans des répertoires IIS accessibles publiquement.
La chaîne complète
CVE-2021-34473 → Accès backend Exchange comme SYSTEM
CVE-2021-34523 → Exécution de cmdlets PowerShell Exchange
CVE-2021-31207 → Écriture d'un web shell .aspx dans /owa/
→ RCE complète non authentifiée
Versions affectées :
- Exchange Server 2013 Cumulative Update 23
- Exchange Server 2016 CU 18, 19
- Exchange Server 2019 CU 7, 8
Timeline : de la conférence au massacre
| Date | Événement |
|---|---|
| 13 avril 2021 | Orange Tsai présente les vulnérabilités à la Pwn2Own |
| 11 mai 2021 | Microsoft corrige les CVE dans le Patch Tuesday |
| 5 août 2021 | Orange Tsai présente les détails à la Black Hat USA |
| 6-10 août 2021 | Exploitation massive par des acteurs malveillants |
| Août-sept 2021 | Déploiement de web shells sur des milliers de serveurs |
L'exploitation massive a commencé le lendemain de la présentation Black Hat, quand des acteurs malveillants ont rétro-ingénié l'exploit depuis la présentation.
Groupes ayant exploité ProxyShell
- Conti ransomware : utilisation dans des campagnes de chiffrement
- LockFile ransomware : exploitait ProxyShell pour l'accès initial puis PetitPotam pour se propager
- Squirrelwaffle : downloader malveillant distribué via des campagnes de spam depuis des Exchange compromis
- Des APT étatiques (Chine, Iran)
Le détail particulièrement problématique de Squirrelwaffle : les attaquants utilisaient les Exchange compromis pour envoyer des emails malveillants depuis des domaines légitimes d'entreprises, avec des threads de réponse réels, rendant la détection très difficile.
Différences avec ProxyLogon
| ProxyLogon | ProxyShell | |
|---|---|---|
| CVEs | CVE-2021-26855, -26857, -26858, -27065 | CVE-2021-34473, -34523, -31207 |
| Patch | Mars 2021 | Mai 2021 |
| Exploitation massive | Mars 2021 (zero-day) | Août 2021 (post-Black Hat) |
| Complexité | Modérée | Plus complexe |
| Acteurs | APT étatiques (HAFNIUM) | Large spectre cybercriminel |
Détecter ProxyShell
Web shells spécifiques ProxyShell
Les web shells déposés via ProxyShell se retrouvent généralement dans :
C:\inetpub\wwwroot\aspnet_client\
C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\
Noms typiques : fichiers .aspx avec noms générés aléatoirement (ex: shelljfdks.aspx)
Logs IIS
# Chercher des requêtes POST vers des .aspx dans les répertoires OWA
Select-String -Path "C:\inetpub\logs\LogFiles\W3SVC1\*.log" `
-Pattern "POST.*\.aspx" | Where-Object { $_ -match "owa|aspnet_client" }
Cmdlets Exchange PowerShell suspectes dans les logs
# Vérifier les exports de boîtes mail récents
Get-MailboxExportRequest | Where-Object { $_.Status -eq "Completed" }
# Exports vers des répertoires inhabituels = indicateur fort
Get-MailboxExportRequest | Select-Object FilePath, Status, RequestedDateTime
Remédiation
1. Appliquer les patches Exchange
Les trois CVE sont corrigées dans les Cumulative Updates de mai 2021. Vérifiez votre niveau de CU et appliquez les mises à jour.
2. Supprimer les web shells
# Scanner les répertoires web Exchange
Get-ChildItem -Path "C:\inetpub\wwwroot" -Recurse -Include "*.aspx" |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddMonths(-6) } |
Select-Object FullName, LastWriteTime
3. Supprimer les tâches d'export malveillantes
# Supprimer toutes les tâches d'export de boîtes mail
Get-MailboxExportRequest | Remove-MailboxExportRequest -Confirm:$false
4. Réinitialiser les credentials
Changez les mots de passe de tous les comptes Exchange et administrateurs Active Directory.
Au-delà de ProxyShell : ProxyNotShell (2022)
En 2022, deux nouvelles CVE Exchange (CVE-2022-41040 et CVE-2022-41082) — baptisées ProxyNotShell — ont suivi un mécanisme similaire. La tendance est claire : Exchange on-premises est une cible permanente qui requiert une veille CVE continue.
Suivez toutes les CVE Microsoft Exchange sur cveo.tech — enregistrez votre version dans votre parc pour des alertes automatiques.