Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-40444 — Générateur de DOCX malveillant exploitant CVE-2021-40444 (RCE Microsoft Office Word) avec chargement latéral de DLL basé sur CAB et des chaînes d'attaque RAR/WSF sans CAB pour les tests de pénétration. | Kitploit
Outils/GitHubGitHub/tiagob0b/cve-2021-40444
Génération de PayloadsExploitationExploitation d'Applications WebTests d'IntrusionGénération de ShellcodeExploitation de Binaires
GitHubtiagob0b/cve-2021-40444

CVE-2021-40444

Générateur de DOCX malveillant exploitant CVE-2021-40444 (RCE Microsoft Office Word) avec chargement latéral de DLL basé sur CAB et des chaînes d'attaque RAR/WSF sans CAB pour les tests de pénétration.

Voir le dépôt
20il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2021-40444 entièrement armé

Générateur de docx malveillant pour exploiter CVE-2021-40444 (Exécution de code à distance dans Microsoft Office Word), fonctionne avec des fichiers DLL arbitraires.

Contexte

Bien que de nombreux PoC existent déjà sur Internet, j'ai décidé de me lancer dans l'armement de cette vulnérabilité, car ce que j'ai trouvé manquait d'informations précieuses qui méritent d'être partagées, d'autant plus que Microsoft a déjà publié un correctif pour cette vulnérabilité.

Jusqu'à présent, les seules ressources précieuses que j'ai vues pour créer un générateur pleinement fonctionnel sont :

  • Blog de Ret2Pwn
  • Tweet de j00sean

Les ressources ci-dessus décrivent une grande partie des exigences nécessaires pour créer une chaîne complète. Pour éviter de répéter trop d'informations inutiles, je vais simplement résumer les détails pertinents.

Chaîne d'exploitation

  1. Ouverture du docx
  2. La relation stockée dans document.xml.rels pointe vers un HTML malveillant
  3. L'aperçu IE est lancé pour ouvrir le lien HTML
  4. Le JScript dans le HTML contient un objet pointant vers un fichier CAB, et une iframe pointant vers un fichier INF, préfixée par la directive ".cpl:"
  5. Le fichier CAB est ouvert, le fichier INF stocké dans le répertoire %TEMP%\Low
  6. En raison d'une vulnérabilité de traversée de chemin (ZipSlip) dans le CAB, il est possible de stocker l'INF dans %TEMP%
  7. Ensuite, le fichier INF est ouvert avec la directive ".cpl:", provoquant le chargement latéral du fichier INF via rundll32 (si c'est une DLL)

Exigences négligées

Il y a pas mal d'exigences négligées pour que cet exploit fonctionne, ce qui a fait que même de bons PoC, comme celui de lockedbyte, échouent à bien fonctionner.

Peut-être que personne ne les a explicitement "divulgués" pour éviter que la vulnérabilité soit davantage exploitée. Mais maintenant qu'elle est corrigée, la divulgation des détails ne devrait pas poser beaucoup de problèmes.

Fichier HTML

D'après ce tweet de Will Dormann, le HTML doit avoir une taille d'au moins 4096 octets pour déclencher l'"aperçu" dans MS Word.

Fichier CAB

Le fichier CAB doit être modifié au niveau des octets pour éviter les erreurs d'extraction et réaliser le ZipSlip :

  • filename.inf doit devenir ../filename.inf
  • filename.inf doit être exactement <12-car>.inf Pas vraiment vrai, l'important est de modifier coffCabStart
  • CFFOLDER.typeCompress doit être 0 (non compressé)
  • CFFOLDER.coffCabStart doit être augmenté de 3 (à cause du '../' ajouté)
  • CFFOLDER.cCfData doit être 2
  • CFFILE.cbFile doit être supérieur à CFHEADER.cbCabinet entier
  • CFDATA.csum doit être recalculé (ou mis à zéro) [OPTIONNEL]

Les raisons de ces contraintes sont nombreuses, et je n'ai pas passé assez de temps à toutes les comprendre en profondeur, mais voyons les plus importantes :

  • TypeCompress : Si le CAB est compressé, l'astuce pour l'ouvrir dans un fichier objet afin de déclencher l'écriture de l'INF échouera Faux, j'ai réussi à obtenir le même résultat avec un échantillon compressé MSZIP
  • CoffCabStart : CoffCabStart donne la position absolue de la première structure CFDATA, comme nous avons ajouté un '../', nous devrions l'augmenter de 3 pour pointer vers le fichier (c'est plus une supposition)
  • cCfData : Comme il n'y a qu'un seul fichier, nous devrions avoir un seul CFDATA, je ne suis pas sûr pourquoi cela doit être réglé à 2 En effet, on peut le laisser à 1
  • cbFile : Fait intéressant, si l'extraction du CAB se termine sans erreur, le fichier INF sera marqué pour suppression par WORD, ruinant l'exploit. La seule façon d'éviter cela est de faire croire à WORD que l'extraction a échoué. Si la valeur cbFile est définie comme supérieure au fichier cabinet lui-même, l'extracteur atteindra une fin de fichier avant de lire tous les octets définis dans cbFile, générant une erreur d'extraction.
  • [OPTIONNEL] Cette valeur ne semble pas être vérifiée par MS Word. Quoi qu'il en soit, pour avoir un CAB correct, la valeur csum devrait être recalculée. Heureusement, comme l'a noté j00sean et selon la documentation MS, cette valeur peut être 0

NOTE1 : Defender détecte désormais si le fichier CAB contient un PE en utilisant la valeur _IMAGE_DOS_HEADER.e_magic comme signature, empêchant potentiellement l'inclusion de fichiers PE dans le CAB. Cette signature peut-elle être contournée ? Je n'en suis pas sûr mais, comme observé précédemment, il s'agit d'une vulnérabilité corrigée, donc je ne prévois pas d'investir plus de temps là-dessus. Au lecteur curieux de développer cela davantage.

NOTE2 : Le correctif Microsoft bloque les schémas d'URI arbitraires, apparemment en utilisant une approche de liste noire (ce n'est qu'une supposition)

Attaque DLL

La principale chaîne d'attaque associée à CVE-2021-40444 est l'attaque DLL chargée via le schéma d'URI .cpl. Pour l'exploiter, un attaquant doit générer une DLL spécialement conçue. Si vous voulez tester, essayez mon script evildll-gen.

JScript, VBScript, Javaw, MSIexec, ...

Comme l'a noté Max Maluin, il est possible d'interagir avec plusieurs types de fichiers en abusant d'IE et de l'URI basée sur l'extension de fichier associée. Bien que cela puisse être un bon moyen d'exploiter IE, cela a des limites.

En effet, il faut noter que la méthode utilisée dans l'exploit pour télécharger des fichiers est basée sur les mises à jour des contrôles ActiveX et ne peut pas être utilisée pour télécharger des fichiers arbitraires. Selon la documentation Microsoft, la balise codebase ne peut pointer que vers quelques types de fichiers : OCX, INF et CAB.

Même si nous pouvons télécharger directement un fichier OCX ou INF, nous ne pouvons pas être sûrs de télécharger le fichier au bon endroit dans le système. Avec l'exploit CAB, il est possible de déplacer le fichier .inf dans un chemin bien connu en utilisant la traversée de chemin, mais dans tout autre cas, le fichier sera stocké dans un répertoire aléatoire, le rendant virtuellement impossible à référencer.

À ce jour, je n'ai pas trouvé de moyen d'enchaîner le téléchargement et l'exécution SANS un fichier CAB.

Note : En parlant d'IE seul, la contrebande HTML (HTML smuggling) pourrait être un scénario possible pour exploiter la vulnérabilité.

Attaque sans fichier CAB utilisant un fichier RAR hybride

Cette technique a été divulguée pour la première fois par Eduardo Braun sur Twitter et expliquée plus en détail dans ce document.

Veuillez noter qu'avec cette technique, la chaîne d'attaque est un peu différente. Cette attaque nécessite que l'utilisateur télécharge un fichier RAR spécialement conçu, obtenu en chaînant un script WSF valide et un fichier RAR valide. Une fois ouvert, le RAR contiendra un DOCX avec une référence à un HTML, qui à son tour essaiera de charger le fichier RAR en tant que script WSF.

Pour résumer :

Télécharger l’outil