Pivoting con Meterpreter, ¡No es baloncesto!

Muchos dirán, ¿Por qué ese título? ¿Te has levantado gracioso? Yo siempre me levanto con la chispa que se merece la vida, pero no me voy a ir por las ramas y quiero hablar del pivoting. Es una técnica que llama mucho la atención de las personas, sobretodo pentesters y que deben utilizarla para poder llegar lejos en un test de intrusión.

Escenario

Por lo general, cuando se realiza un test de intrusión se tienen claras varias cosas, y una de las primordiales es que los servidores que tienen la info sensible, la pasta, los chanchullos, o los despidos no se encuentran en un server al alcance de todo el mundo. La segmentación, las VLAN, las ACLS, hacen que este juego sea más apasionante y más interesante que otros. Imaginaros una empresa que tiene un server con info sensible a la cual solo se puede acceder mediante una máquina, que es la única que tiene acceso. Nos dan un punto de entrada, que es un puesto cualquiera de la empresa, de una red cualquiera de la empresa...

¿Qué hago? ¿Por dónde empiezo?

Deberíamos tener claro, que si nos encontramos entre máquinas y redes Windows, deberemos escalar privilegios de alguna manera... Ese hecho esta fuera del post, os recomiendo Metasploit Para Pentesters, si... publicidad subliminal... Nosotros nos centraremos en podemos acceder a una máquina ya sea mediante un exploit o porque ya conocemos alguna credencial del dominio, pero ¿cómo hacemos para pivotar a la máquina que está detrás?

Utilizaremos un script que nos proporciona meterpreter para crear rutas entre mi máquina y las que, a priori, no podemos ver. Ya veréis que sencillo. También utilizaremos un scanner proporcionado en el conjunto de herramientas Auxiliary de Metasploit para realizar un escaneo rápido de puertos, y ver que máquinas encontramos en la nueva red.

El acceso a la primera máquina

Nosotros disponemos de una máquina con Metasploit en la red 10. Mi máquina tiene la dirección IP 10.0.0.2, podéis crearos el entorno de manera sencilla en Virtual Box, VMWare o Hyper-V... Existe una máquina en la red, la cual llamaremos pivote, que se encuentra tanto en la red 10, como en la red 11, con direcciones IP 10.0.0.1 y 11.0.0.1. Por otro lado existe la máquina deseada en la red 11, con la dirección IP 11.0.0.2.

Para empezar diremos que realizamos la explotación de la máquina pivote con la que tendremos acceso a máquina que se encuentren en otras redes. En un escenario real, podríamos decir que un DC sería una máquina pivote perfecta, ya que accederá a todas las redes donde haya máquinas Windows que se encuentren en el dominio. Para realizar la explotación depende del proceso anterior que hayamos intentado, podemos haber conseguido credenciales, mediante captura de tráfico u otras técnicas, pero por ejemplo usaremos el exploit más famoso del mundo MS08-067-netapi.

Ahora tenemos acceso a la máquina pivote o que realizará el pivote. Antes de nada miraremos a ver la configuración que esta máquina tiene en la nueva red a la que tenemos acceso. El objetivo de esto es ver a que rango tiraremos el escáner.

Para crear la ruta en el contexto de Metasploit y Meterpreter utilizaremos el script autoroute. Su sintaxis es sencilla run autoroute -s <red> -n <máscara red>. En la siguiente imagen se puede visualizar de manera clara.

Si realizamos background, sin cerrar la sesión, se puede visualizar las rutas y las sesiones en las que están construidas, es interesante tener un esquema claro, cuando en una empresa hay un gran número de segmentos o redes por los que poder pivotar.

Ahora toca configurar el escáner, podemos utilizar las herramientas de tipo Auxiliary que proporciona Metasploit. Por ejemplo utilizaremos Auxiliary/scanner/portscan/tcp. Realizaremos un escaneo a la red 11, que es la nueva red descubierta y probaremos a ver que máquinas hay y que puertos están abiertos. Para hacerlo rápido colocaremos 3 puertos a escanear solamente. Se puede observar como estamos teniendo conectividad con máquinas de una red con la que antes no teníamos... Interesante, interesante... ¿Y esto se puede hacer escalable y montar varios pivotes? Sí.

Para probar la nueva conectividad con la máquina 11.0.0.2 tiraremos el exploit de antes pero ahora contra esa máquina que nos intriga y que tiene esos puertos abiertos... Veremos que es un Windows 7 y que no es vulnerable a este exploit.

Por úlitmo, si hemos hecho un proceso de recopilación de hashes son run hashdump, podriamos utilizar el hash de administrador local por si acaso es el mismo en la otra máquina, o si hacemos un run post/windows/gather/smart_hashdump podemos sacar hashes de usuarios de dominio si estuviéramos en un DC. Otra opción es subir un WCE 1.3 o Mimikatz para sacar pass en claro del proceso LSASS.EXE... hay muchas opciones... Imaginemos que tenemos la clave o impersonalizamos el hash.

El módulo elegido es el de autenticación de SMB, exploit/windows/smb/psexec... Interesante, muy interesante... Nuestro pivote ha funcionado correctamente y nos ha permitido acceder a máquinas más allá de nuestra red donde nos han colocado a hacer la auditoría.