lunes, 13 de abril de 2020

Clave administrador local en directiva de grupo one click procedure...back to future

Estimados amigos de Inseguros !!!

Voy a rescatar uno de los tricks más usados en las auditorías Windows pero que sospecho que no todo el mundo lo conoce, tanto en el lado atacante ( quizás los hackers si) pero no tanto desde el lado defensivo. En muchas auditorias y revisiones de seguridad encontramos cosas como estas, por lo que creo que es importante darle visibilidad porque al final, son vectores de ataque. Y recuerda lo que digo en mis charlas "los Sysadmin Windows no existen, son los padres  !!!"

En esta ocasión vamos a hablar de la GPO que permite establecer la clave del usuario administrador local de los equipos.

Sin duda es algo que tiene sentido, con unos sencillo clicks podemos habilitar la GPO y establecer la contraseña.



Pero existe un problema, como todos sabéis, AD guarda las GPO en la carpeta SYSVOL que es de lectura para todos los miembros del dominio, y como sospechas... esta contraseña que estableces en la GPO aparece en el XML.

Lo "bueno" es que está en encriptada en una robusta AES 256 que después del leak de la clave privada encontrado hace años, dejó de ser privada y se hizo privada-conocida xD por lo que es muy sencillo emplear herramientas malosas para sacar la clave en claro...



Si te apetece más hacerlo desde powershell sin usar Metasploit, puedes usarlo desde Powersploit con su módulo para tal efecto.

Entonces estamos jodidos !!! Pues si. Microsoft sacó un parche hace 4 años !!! para evitar que los administradores pusieran la clave ahí, pero no borra los ficheros XML.



Hay literatura para aburrir de cómo explotar la seguridad de los dominios mediante búsquedas en Active Directory, ya sabes, buscar ficheros de conexión a carpetas compartidas, odbc´s, cosas así que hacemos los sysadmin y ponemos la clave...

Puedes usar este comando para buscar en tu dominio sobre esta información sensible.

findstr /S /I telepizza \\<FQDN>\sysvol\<FQDN>\*.*

Nosotros lo hacemos, y un atacante por supuesto que lo hará !!!

La manera real de solucionar este problema es implementar LAPS. Una solución para manejar de forma segura esta peculiaridad, la de extender los atributos de contraseñas de AD al "entorno"local.

El atributo que almacena la clave, de manera cifrada por supuesto es ms-Mcs-AdmPwd  sólo es accesible por administradores del dominio. Si te ownean el admin. del dominio... esta clave se compromete.. pero quizás se lo menos importante xD. Si tienes dudas de qué grupos pueden ver este atributo puedes tirar: Find-AdmPwdExtendedRights

Otro día podemos comentar más jugadas para hacer en SYSVOL como hace nuestro amigo https://twitter.com/ciyinet para exfiltración y permisos.