Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2021-40449 — Exploit de LPE para un UAF en Windows (CVE-2021-40449). | Kitploit
Herramientas/GitHubGitHub/hakivvi/cve-2021-40449
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónShellcodeDesarrollo de PayloadsExplotación de Binarios
GitHubhakivvi/cve-2021-40449

CVE-2021-40449

Exploit de LPE para un UAF en Windows (CVE-2021-40449).

Ver Repositorio
4815hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2021-40449

Mi exploit para CVE-2021-40449, un LPE de Windows mediante un UAF en win32kfull!GreResetDCInternal.

writeup corto

Además de la vulnerabilidad UAF, se utilizan otras primitivas para hacer posible este exploit:

  • filtrar la dirección del access token del exploit en ring0 mediante la función NtQuerySystemInformation() con el parámetro SystemHandleInformation.
  • usar rtlSetAllBits() como gadget para sobrescribir los access_token.privileges del exploit con 0xFFs.
  • filtrar la dirección de rtlSetAllBits() en ring0 filtrando la dirección base del módulo ntoskrnl.exe mediante la función EnumDeviceDrivers().
  • crear el parámetro BitMapHeader del gadget de tal manera que nos permita sobrescribir los access_token.privileges del exploit.
  • asignar el BitMapHeader creado mediante la primitiva NtSetInformationThread() y filtrar la dirección de asignación en el big pool mediante la función NtQuerySystemInformation() con el parámetro SystemBigPoolInformation.
  • para interactuar con la función vulnerable, primero enumeramos las impresoras del sistema mediante EnumPrinters(), cargamos el controlador de una de ellas y luego enganchamos las llamadas a la función de devolución de llamada en modo usuario DrvEnablePDEV().
  • en el hook, hacemos proxy de la llamada a la función original DrvEnablePDEV(), hacemos lo del exploit y luego devolvemos lo que devuelve la llamada con proxy al GDI.
  • activar el UAF mediante una segunda llamada a ResetDC() en el DrvEnablePDEV() enganchado.
  • recuperar el objeto PDC liberado mediante spraying de un objeto creado del mismo tamaño usando la primitiva CreatePalette().
  • abusar del nuevo privilegio SeDebugPrivilege adquirido para obtener NT AUTHORITY\SYSTEM inyectando shellcode en el proceso winlogon.exe.

Se puede encontrar más información en este artículo de Kaspersky.

PoC

PoC probado en Win10 Redstone (build 14393).

Descargar herramienta