
Exploit en C++ para CVE-2024-30088, que proporciona una implementación de prueba de concepto para probar y analizar esta vulnerabilidad específica de escalada de privilegios del kernel de Windows.
Vulnerabilidad TOCTOU en el kernel de Windows: AuthzBasepCopyoutInternalSecurityAttributes
Este repositorio contiene una prueba de concepto (PoC) detallada para CVE-2024-30088, una vulnerabilidad TOCTOU en el kernel de Windows que permite escalar desde un proceso con bajos privilegios a SYSTEM. El exploit aprovecha una condición de carrera en la función AuthzBasepCopyoutInternalSecurityAttributes para sobrescribir memoria del kernel, logrando una escalada local de privilegios (LPE).
CVE-2024-30088 es una vulnerabilidad de escalada de privilegios en el kernel de Windows causada por una condición de carrera TOCTOU (time-of-check to time-of-use) en la función AuthzBasepCopyoutInternalSecurityAttributes. Un atacante que ya tenga ejecución de código en un sistema objetivo puede explotar esta falla para obtener privilegios de SYSTEM, lo que le permite deshabilitar controles de seguridad, instalar programas, manipular datos y crear nuevas cuentas con derechos administrativos completos. Esta vulnerabilidad se explota de forma local (LPE) y fue parcheada por Microsoft en el boletín de seguridad de mayo de 2024.
AuthzBasepCopyoutInternalSecurityAttributes)| Campo | Detalle |
|---|
Para poner en marcha el proyecto, sigue estos pasos:
git clone https://github.com/fortra/CVE-2024-30088.git
cd CVE-2024-30088
CVE-2024-30088.sln con Visual Studio 2022.Release y la arquitectura x64.Build > Build Solution (Ctrl+Shift+B).El binario compilado se generará en el directorio x64/Release/.
CVE-2024-30088.exe
Nota: El exploit requiere permisos para crear un proceso con privilegios bajos y debe ejecutarse en una máquina vulnerable desde una cuenta con acceso local. No se requieren privilegios administrativos previos.
El exploit explota la condición de carrera TOCTOU en AuthzBasepCopyoutInternalSecurityAttributes de la siguiente manera:
// Fragmento ilustrativo del mecanismo de carrera (simplificado)
HANDLE thread1 = CreateThread(NULL, 0, RaceThread1, NULL, 0, NULL);
HANDLE thread2 = CreateThread(NULL, 0, RaceThread2, NULL, 0, NULL);
WaitForSingleObject(thread1, INFINITE);
WaitForSingleObject(thread2, INFINITE);
El PoC es compatible con Windows 10/11 (x64) y Windows Server 2022. Las versiones anteriores o posteriores pueden requerir ajustes en las direcciones y estructuras utilizadas.
La fiabilidad depende de la configuración del sistema y de la contención de la CPU. En sistemas con múltiples núcleos, la probabilidad de ganar la carrera aumenta.
Aplica la actualización de seguridad de Microsoft de mayo de 2024 (KB5034441 o KB5034439 según la versión del sistema). Mantén el sistema actualizado para mitigar riesgos conocidos.
No. El exploit se ejecuta por completo en el contexto local del usuario desde el que se lanza, sin requerir interacción adicional.
Este proyecto fue desarrollado con fines de investigación por el equipo de Fortra. Se agradece a todos los investigadores que contribuyeron al análisis y divulgación responsable de CVE-2024-30088.
Este material se proporciona únicamente con fines educativos y de investigación. El autor y los contribuyentes no se hacen responsables del uso indebido de este código. El uso de exploits sin autorización puede violar leyes locales e internacionales. Asegúrate siempre de cumplir con la legislación vigente antes de utilizar este PoC.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
| CVE | CVE-2024-30088 |
| Componente | AuthzBasepCopyoutInternalSecurityAttributes |
| Tipo | TOCTOU |
| Impacto | Escalada local de privilegios (LPE) |
| Parche | Actualización de seguridad de Microsoft de mayo de 2024 |