Volvemos con una nueva entrada en la que nuevamente toca hablar de Kerberos y en este caso quiero traer a este rincón una herramienta (o PoC, según su autor) que me resultó super interesante y que propicia la omisión de UAC (User Account Control) de Windows mediante el uso y/o abuso de tickets de Kerberos, que permitiría (entre otras cosas), finalmente llegar a los privilegios máximos del sistema (NT AUTHORITY\SYSTEM), pero no centraremos nuestra atención en esto último para evitar confusión de que esto se trate de una técnica para LPE como tal, si no que me gustaría reseñar el proceso que se sigue para obtener esta omisión de UAC.

El autor de KRBUACBypass, conocido como wh0amitz es un apasionado y entusiasta investigador de seguridad que a muchos ya nos irá sonando y que por supuesto recomiendo encarecidamente seguir en redes (@wh0amitz), según comenta: «inspirado en la charla de James Forshaw que dio en la pasada BlackHat USA 2022 titulada Taking Kerberos To The Next Level» ha realizado un profundo estudio e investigación que ha generado la creación de esta herramienta que ha liberado a través de su repositorio de GitHub.

El estudio completo lo publico en su blog y lo tituló como: Revisiting a UAC Bypass By Abusing Kerberos Tickets, en él encontraréis todos los pormenores y demás detalles de esta técnica.

Contexto y aprovechamiento

Cuando iniciamos sesión con un usuario de dominio, especialmente con un usuario que pertenece al selecto grupo de «Domain Admin«, el llamado control de cuentas de usuario (UAC) adquiere un papel fundamental para restringir las acciones más privilegiadas, a la vez de «sensibles» que se desean aplicar sobre el sistema, recordemos lo que supone tener en posesión este tipo nivel de cualidades… Para ejemplificar esto que se describe recordemos el típico mensaje que recibe el administrador al intentar ejecutar una acción que requiere pasar por el «visto bueno» del UAC:

En un entorno de Active Directory, wh0amitz mediante el despliegue de distintas técnicas, que van desde la incorporación de un KERB-AD-RESTRICTION-ENTRY a un ticket de servicio (ST), el uso de un MachineID falso, la obtención de un TGT mediante el abuso de la delegación sin restricciones, también conocido como el truco tgtdeleg, entre otras, consigue omitir esta «pantallita» y que nos regrese una terminal (cmd) que ha alcanzado los máximos privilegios en el sistema (NT AUTHORITY\SYSTEM). Veamos como se produce la magia:

Bien, pues tal y como muestra la demostración de la prueba de concepto (PoC) compartida en el repositorio de GitHub del investigador (desde aquí también se puede obtener el automatismo .exe compilado), la puesta en marcha de la técnica es bastante trivial, basta con «primero solicitar un ticket para el servicio HOST del servidor actual a través de la función asktgs«:

KRBUACBypass.exe asktgs -v

Y posteriormente será el momento de: «crear un servicio de sistema a través de la función krbscm para obtener el privilegio SYSTEM»

KRBUACBypass.exe krbscm

Como observamos en la captura, inmediatamente obtendremos una nueva terminal (cmd) que cuenta con los máximos privilegios del sistema asignados.

La salida de esta función es la siguiente:

Por último, evidenciemos el nivel de privilegios alcanzado en nuestra nueva terminal:

Pues esta ha sido la breve entrada de hoy. Esperamos sacarle partido a este nuevo vector. Hasta la siguiente!

Referencias