Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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-40449 — LPE exploit for a UAF in Windows (CVE-2021-40449). | Kitploit
Outils/GitHubGitHub/hakivvi/cve-2021-40449
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationShellcodePayload DevelopmentBinary Exploitation
GitHubhakivvi/cve-2021-40449

CVE-2021-40449

LPE exploit for a UAF in Windows (CVE-2021-40449).

Voir le dépôt
4815il y a 4 ansVérifié par Kitploit

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-40449

Mon exploit pour CVE-2021-40449, une élévation de privilèges locale (LPE) Windows via une UAF dans win32kfull!GreResetDCInternal.

Résumé

En plus de la vulnérabilité UAF, d'autres primitives sont utilisées pour rendre cet exploit possible :

  • Fuite de l'adresse du jeton d'accès de l'exploit en ring0 via la fonction NtQuerySystemInformation() avec le paramètre SystemHandleInformation.
  • Utilisation de rtlSetAllBits() comme gadget pour écraser les access_token.privileges de l'exploit avec des 0xFF.
  • Fuite de l'adresse de rtlSetAllBits() en ring0 en divulguant l'adresse de base du module ntoskrnl.exe via la fonction EnumDeviceDrivers().
  • Fabrication du paramètre BitMapHeader du gadget de manière à nous permettre d'écraser les access_token.privileges de l'exploit.
  • Allocation du BitMapHeader fabriqué via la primitive NtSetInformationThread() et fuite de l'adresse d'allocation dans le grand pool via la fonction NtQuerySystemInformation() avec le paramètre SystemBigPoolInformation.
  • Pour interagir avec la fonction vulnérable, nous énumérons d'abord les imprimantes du système via EnumPrinters(), chargeons le pilote de l'une d'elles, puis hookons les appels à la fonction de rappel en mode utilisateur DrvEnablePDEV().
  • Dans le hook, nous redirigeons l'appel vers la fonction DrvEnablePDEV() d'origine, effectuons les opérations de l'exploit, puis retournons ce qui est retourné par l'appel redirigé au GDI.
  • Déclenchement de l'UAF via un second appel à ResetDC() dans le DrvEnablePDEV() hooké.
  • Récupération de l'objet PDC libéré en pulvérisant un objet fabriqué de la même taille en utilisant la primitive CreatePalette().
  • Abus du privilège SeDebugPrivilege nouvellement acquis pour obtenir NT AUTHORITY\SYSTEM en injectant du shellcode dans le processus winlogon.exe.

Plus d'informations peuvent être trouvées dans cet article de Kaspersky.

PoC

PoC Testé sur Win10 Redstone (build 14393).

Télécharger l’outil