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-1732 — Exploit del kernel de Windows para CVE-2021-1732, un use-after-free en win32kfull.sys que permite la escalada local de privilegios mediante la creación de ventanas manipuladas y la manipulación de callbacks. | Kitploit
Herramientas/GitHubGitHub/beneficialcode/cve-2021-1732
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Binarios
GitHubbeneficialcode/cve-2021-1732

CVE-2021-1732

Exploit del kernel de Windows para CVE-2021-1732, un use-after-free en win32kfull.sys que permite la escalada local de privilegios mediante la creación de ventanas manipuladas y la manipulación de callbacks.

Ver Repositorio
11hace 4 añosAún no revisado

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

  • La vulnerabilidad ocurre en el controlador gráfico de Windows win32kfull!NtUserCreateWindowEx, donde una llamada de retorno del kernel al modo usuario para asignar memoria y la configuración del atributo tagWND->flag están desincronizadas, lo que permite falsificar el valor de tagWND->offset y causar un desbordamiento de memoria.
  • Cuando el controlador win32kfull.sys llama a NtUserCreateWindowEx para crear una ventana, verifica tagWND->cbWndExtra (cantidad de memoria adicional asignada por instancia de ventana). Si el valor no es nulo, llama a la función win32kfull!xxxClientAllocWindowClassExtraBytes que realiza una llamada de retorno al espacio de usuario user32.dll!__xxxClientAllocWindowClassExtraBytes para asignar espacio. La dirección asignada se corrige mediante la función , ajustando la pila y regresando al kernel para guardarla y continuar la ejecución. Sin embargo, cuando el valor de incluye el atributo , el valor guardado se convierte en un offset.
NtCallbackReturn
tagWND->flag
0x800
  • Un atacante puede interceptar (hook) la función user32.dll!_xxxClientAllocWindowClassExtraBytes, llamar a NtUserConsoleControl para modificar tagWND->flag incluyendo el atributo 0x800, y luego usar NtCallbackReturn para devolver un valor personalizado al kernel en tagWND->offset.
    1. La vulnerabilidad ocurre en el controlador gráfico de Windows win32kfull!NtUserCreateWindowEx.
    2. Cuando el controlador win32kfull.sys llama a NtUserCreateWindowEx para crear una ventana, verifica tagWND->cbWndExtra (cantidad de memoria adicional asignada por instancia de ventana). Si el valor no es nulo, llama a la función win32kfull!xxxClientAllocWindowClassExtraBytes que realiza una llamada de retorno al espacio de usuario user32.dll!__xxxClientAllocWindowClassExtraBytes para asignar memoria. La dirección asignada se corrige mediante la función NtCallbackReturn, ajustando la pila y regresando al kernel para guardarla y continuar la ejecución. Cuando el valor de tagWND->flag incluye el atributo 0x800, se utiliza acceso por offset para ese valor.
    3. Utilizar NtUserConsoleControl para modificar la bandera (flag) incluyendo el atributo 0x800.

    17763:[[gpKernelHandleTable] + 0x18 * ((hwnd->cx * [gSharedInfo+0x10]) >> 5)]

    Se menciona que llamar a NtUserConsoleControl reestablecerá tagWND->offset y el valor de tagWND->flag incluyendo el atributo 0x800. Cuando la bandera contiene 0x800, se utiliza acceso por offset. El propósito de llamar a NtUserConsoleControl aquí es modificar el valor de tagWND->flag para que incluya 0x800, y luego llamar a NtCallbackReturn para devolver un valor específico con el objetivo de modificar tagWND->offset, porque win32kfull!xxxClientAllocWindowClassExtraBytes colocará el valor de retorno en tagWND->offset.

    +0x058 KernelCallbackTable : 0x00007ffb0e9d1070 Void

    00007ffb0e9d1448`

    Descargar herramienta