Pourquoi la vulnérabilité Follina affole la planète depuis une semaine ?
06 juin 2022 - 12:31,
Tribune
- Charles Blanc-RolinTout d’abord parce qu’elle a été révélée publiquement, que de nombreux codes d’exploitation ont été partagés publiquement et qu’elle est très simple à exploiter.
La première étape pour l’attaquant consiste à disposer d’un site Web pour pouvoir y déposer une simple page HTML contenant un petit script appelant l’outil de diagnostic Microsoft (msdt.exe pour Microsoft Diagnostic Tool) à exécuter des commandes sur le système Windows. D’autant qu’avec un POC en main, quelques minutes suffisent.
Exemple de script permettant de lancer une invite de commandes
La deuxième étape consiste à amener la victime à exécuter le script exposé sur la page Web. Dans l’attaque observée par Nao Sec, c’est un fichier Word qui a été utilisé pour établir la connexion au site et permettre l’exécution du script. Un simple lien ajouté dans un fichier XML inclus au fichier Word suffit pour appeler le script.
La technique est très proche de celle utilisée pour exploiter la CVE-2021-40444 affectant le moteur de rendu MSHTML embarqué dans Windows [2]. Gros avantage, pas besoin de macro, une simple ouverture du document Word par la victime et le tour est joué ! Dans l’exemple ci-dessous, la calculatrice est lancée par le script via l’outil de diagnostic, lors de l’ouverture du document :
Certains ont même découvert qu’en convertissant le fichier au format RTF, l’exécution du script pouvait se faire directement via le volet de visualisation de l’explorateur de fichiers : même pas besoin de cliquer !
Le script peut également être exécuté via PowerShell directement ou en utilisant l’outil de téléchargement « wget », le navigateur Web Internet Explorer ou encore les versions obsolètes du navigateur Edge non basées sur Chromium.
Ici, la calculatrice est lancée lors de la connexion à la page Web via PowerShell.
Même résultat avec le navigateur Edge
Certains articles sur le sujet évoquent une exploitation possible via Curl. De mon côté, je ne fais pas ce constat dans mes tests.
Il est parfois indiqué que cette vulnérabilité pourrait également permettre de réaliser une élévation de privilèges. Si elle peut effectivement être faite a posteriori, la CVE-2022-30190 ne permet pas selon moi de la réaliser. On constate dans l’exemple ci-dessous qu’en lançant une invite de commandes via le script nous restons bien dans le contexte de l’utilisateur :
Évidemment, le script peut permettre d’exécuter bien d’autres choses qu’une calculatrice ou une invite de commandes… comme des commandes PowerShell permettant par exemple la connexion de la machine victime au serveur C2 de l’attaquant.
Dans cet exemple, le script exécuté par la page Web appelée à l’ouverture du document Word permet d’établir une connexion à un serveur Metasploit.
Dans l’attente d’un correctif de sécurité, Microsoft propose la désactivation du protocole URL de l’outil de diagnostic comme l’indique le CERT-FR de l’Anssi dans son alerte sur le sujet [3].
La solution d’atténuation n’étant pas très simple à réaliser sur l’ensemble d’un parc, je vous invite à regarder la solution adoptée par le CERT Banque de France, proposée par Benjamin Delpy, réalisable via GPO, consistant à désactiver l’exécution de scripts via l’outil de diagnostic [4].
Ce type d’exploitation n’a pas fini de donner des idées pour trouver de nouvelles vulnérabilités, comme l’exemple publié sur Twitter [5] avec une exploitation du même type s’appuyant sur l’outil de recherche de Windows.
Pour ce qui est de la détection, le CERT-FR propose deux règles Sigma dans son alerte et Sekoia propose quelques règles Yara sur son blog [6]. Côté détection réseau, Emerging Threats propose également une règle de détection communautaire pour Suricata qui fonctionne très bien [7].
L'auteur
Chef de projet sécurité numérique en santé - GCS e-santé Pays de la Loire Charles Blanc-Rolin est également vice-président de l’APSSIS(Association pour la promotion de la Sécurité des Systèmes d'Information de Santé)
[1] https://twitter.com/nao_sec/status/1530196847679401984
[3] https://www.cert.ssi.gouv.fr/alerte/CERTFR-2022-ALE-005/
[4] https://twitter.com/gentilkiwi/status/1531384447219781634
[5] https://twitter.com/hackerfantastic/status/1531789430922567681
[6] https://blog.sekoia.io/msdt-abused-to-achieve-rce-on-microsoft-office/
[7] https://rules.evebox.org/rule/2036726?source=et%2Fopen