En la evolución constante de los sistemas operativos, las pruebas de penetración se vuelven cada vez más desafiantes debido a las restricciones de seguridad implementadas. Una de estas restricciones es la Protección de la Autoridad de Seguridad Local (LSA) en Windows, introducida con Windows 8.1, que limita el acceso a información crucial como credenciales utilizadas, incluso con privilegios de NT Authority System. Durante ejercicios de equipo rojo, extraer contraseñas en texto claro o hashes NTLM directamente de un sistema comprometido acelera el progreso hacia el objetivo. Aunque herramientas conocidas como Mimikatz pueden extraer esta información del proceso lsass, la configuración "RunAsPPL" en sistemas Windows actuales impide a Mimikatz recopilar credenciales en texto claro o en forma de hash desde la memoria. La solución viene en forma de un módulo desarrollado por Benjamin Delpy llamado mimidrv.
¿Qué Hace Especial a mimidrv.sys?
En resumen, incluso con privilegios de administrador o sistema, a veces es necesario escalar de espacio de usuario a espacio de kernel. Los controladores de Windows pueden ejecutarse en el espacio de kernel, mientras que los usuarios no tienen este privilegio. La ejecución de código como controlador permite evitar o desactivar algunos mecanismos de seguridad de Windows, como la protección de LSA. Además, desde el espacio de kernel, se puede acceder directamente al hardware, lo que permite modificar el firmware de algunos componentes o del dispositivo en sí.
Desafíos y Soluciones
Desafío: El módulo mimidrv.sys es conocido desde 2013; incluso el software antivirus menos competente puede detectarlo. Solución: Una opción es crear un controlador personalizado, firmarlo y obtener la certificación Microsoft WHQL. Sin embargo, este proceso puede atraer atención no deseada y es costoso. Otra opción es explotar un controlador vulnerable que se esté ejecutando en el sistema para escalar privilegios. Si no hay controladores vulnerables, la tercera opción es "BYOvD" (Bring Your Own Vulnerable Driver). Esto implica cargar un controlador común, pero explotable, para dispositivos como teclados o discos duros, que ya esté firmado y aceptado por Windows. Luego, cargamos nuestro controlador vulnerable en el sistema objetivo.
Proceso BYOvD: Pasos a Seguir
- Identificación: Encuentra un controlador de dispositivo común y firmado anteriormente que tenga una vulnerabilidad conocida.
- Explotación: Utiliza un programa de prueba de concepto (POC) para explotar el controlador y obtener ejecución de código en el nivel del kernel.
- Desactivación Temporal de Firma de Controladores: Deshabilita temporalmente el Enforcement (DSE) de Firma de Controladores para cargar el controlador vulnerable.
- Acceso a LSA: Una vez que se ha explotado el controlador, es posible acceder a LSA, eludiendo así las protecciones.
Consideraciones de Seguridad
Es crucial tener en cuenta que cargar controladores no confiables en un sistema Windows es una acción arriesgada y puede causar inestabilidad o incluso provocar un fallo del sistema (conocido como BSOD, Blue Screen of Death). Se recomienda realizar pruebas exhaustivas en entornos controlados antes de ejecutar estas acciones en sistemas en vivo.
Investigación Continua y Mejora de Técnicas
El campo de las pruebas de penetración y la seguridad informática evoluciona constantemente. Los investigadores continúan explorando métodos para descubrir controladores vulnerables no reportados, escribir exploits personalizados y utilizarlos en compromisos para una mejor evasión. La investigación presentada por el equipo de Eclypsium en Defcon 27 muestra cómo encontrar controladores posiblemente vulnerables pero no reportados, lo que demuestra que siempre hay espacio para mejorar las técnicas de evasión.
Para obtener información más detallada sobre estas técnicas y explorar ejemplos prácticos, se recomienda revisar el artículo original en el siguiente enlace: .
Con esta información, los profesionales de la seguridad pueden mejorar sus habilidades y conocimientos para enfrentar los desafíos cada vez mayores en el ámbito de la seguridad informática.