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
windows_kernel_shadow_stack — Pruebas de concepto que demuestran algunos aspectos de la mitigación de pila sombra del kernel de Windows. | Kitploit
Herramientas/GitHubGitHub/synacktiv/windows_kernel_shadow_stack
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPapers e InvestigaciónExplotación de Binarios
GitHubsynacktiv/windows_kernel_shadow_stack

windows_kernel_shadow_stack

Pruebas de concepto que demuestran algunos aspectos de la mitigación de pila sombra del kernel de Windows.

Ver Repositorio

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
778hace 1 añoRevisado por Kitploit

Pruebas de concepto

Este proyecto tiene como objetivo destacar ciertos aspectos de la mitigación de shadow stack implementada por Microsoft en Windows 11. El código está específicamente enfocado en Windows 11 24H2. Es posible que no funcione en otras versiones de Windows 11, debido a la gestión de desplazamientos del kernel.

El proyecto se divide en dos partes: un cliente y un controlador. La comunicación entre ellos se gestiona mediante el mecanismo IOCTL. El cliente solicita al controlador que realice acciones a nivel de kernel.

Características

  • Incrementar una de las direcciones de retorno del kernel del hilo actual para desalinearla y provocar un BSOD.
  • Omitir uno de los marcos de pila del kernel del hilo actual para resaltar la resiliencia del shadow stack.
  • Habilitar/deshabilitar CET en el registro CR4 actual, lo que provoca un BSOD.
  • Escribir en los registros MSR, lo que normalmente provoca un BSOD.
  • Escribir en el shadow stack, lo que resulta en un BSOD.
  • Escribir el PTE del shadow stack, provocando un BSOD.
  • Realizar divisiones para resaltar los comportamientos de try/except y del shadow stack durante una división por cero.

Compilación

Use build.bat.

Requisitos previos

Como requisito previo, los siguientes kits deben ser para la misma compilación de Windows:

  • Microsoft Windows SDK (Kit de desarrollo de software)
  • Microsoft WDK (Kit de controladores de Windows)

Nota: El POC se ha probado con la versión 10.0.26100.0 de los kits.

Configuración de la máquina de destino

Para activar la mitigación de shadow stack del kernel, se deben agregar o establecer los siguientes valores en la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\:

NombreTipoDatos
EnableVirtualizationBasedSecurityREG_DWORD1
Scenarios\HypervisorEnforcedCodeIntegrity\EnabledREG_DWORD1
Scenarios\KernelShadowStacks\EnabledREG_DWORD1

Además, para poder cargar un controlador con firma de prueba, se debe ejecutar el siguiente comando en una consola de administrador:

root@kitploit:~
bcdedit /set testsigning on

A continuación, se requiere un reinicio.

Uso

Carga del controlador

Para cargar el controlador, se deben introducir los siguientes comandos en una consola de administrador:

root@kitploit:~
sc create shadow type= kernel binPath= ABSOLUTE_PATH_TO_THE_DRIVER
sc start shadow

Cliente

El cliente tiene las siguientes opciones:

Créditos

SergiusTheBest por su FindWDK.

Descargar herramienta
OpciónDescripción
incIncrementa la dirección de retorno al llamador en 1
skipParchea RSP para apuntar al marco de pila anterior
cdisableDeshabilita CET en CR4
cenableHabilita CET en CR4
wrmsr REGISTER VALUEEscribe el REGISTRO con el VALOR dado
wrshskEscribe en el shadow stack
wrshskpteReescribe el PTE del shadow stack
div DIVIDEND DIVISORRealiza una división de enteros en espacio de kernel