voidmap
Un mapeador de controladores manual muy simple que explota CVE-2021-40449 para ejecutar una función arbitraria en una dirección determinada con un único argumento dado. Se basa en un PoC del exploit CallbackHell. Probado en Windows 10 Pro For Workstations 1809 17763.379 (64 bits), pero, de forma realista, cualquier sistema de esa época debería ser compatible.
Hace lo siguiente:
- Desactiva SMEP (y posiblemente SMAP) reescribiendo el valor del registro cr4
- Salta al código en modo usuario que mapea manualmente el controlador deseado
- Vuelve a activar SMEP (y posiblemente SMAP)
Hay dos problemas principales con este enfoque:
- El controlador mapeado manualmente estará en un pool asignado por ExAllocatePool. Si quieres usarlo para algo más serio, deberías considerar encontrar una mejor forma de asignación de memoria para que no pueda volcarse tan fácilmente.
- No hay una forma sencilla de leer el valor original de cr4, lo que significa que tuve que fijar el valor que había en mi sistema. Aunque debería ser el mismo para la mayoría de las CPU modernas, deberías verificar dos veces que el valor sea correcto.
Vídeo:
