martes, septiembre 25, 2018

El ‘hop’ de Empire que permite meter saltos en los agentes de post-explotación

Que me gusta Metasploit es algo que muchos ya saben, pero que también me gusta y mucho el proyecto de Empire es algo que pocos saben. He seguido jugando y viendo las posibilidades que ofrece Empire y en lo que a listeners y tipos de configuración se refiere es algo muy potente. Hoy quiero hablar sobre el listener de Empire de tipo hop.

Figura 1: El ‘hop’ de Empire que permite meter saltos en los agentes de post-explotación

Probablemente os sea muy útil, cuando se trate de ocultar la dirección IP desde la que se está realizando el pentesting, así que vamos a ver en detalle cómo se configura en Empire.

Listeners en Emprie

Un listener es un proceso que queda a la escucha en un puerto y que tiene un comportamiento ante las peticiones de conexión que nos llegarán de los agentes que se estén ejecutando en las máquinas comprometidas. La idea es sencilla, tenemos un servidor que hará labores de intermediario, el cual debe tener la característica de ser un servidor web.

La máquina dónde el agente es ejecutado, por ejemplo, tras una explotación de una vulnerabilidad, se conectará con el servidor intermedio, el cual tiene configurado unos recursos PHP que harán la redirección al listener de tipo HTTP, el listener más clásico, el cual se encuentra en la máquina Kali Linux dónde ejecutamos Empire.

Figura 2: Escenario de listener tipo hop en Empire

En la imagen superior, se puede visualizar el esquema comentado anteriormente. Si analizamos la primera conexión que hace el agente mediante el comando ‘netstat –na’ podríamos ver que hay una conexión entre la máquina intermedia y la máquina víctima. No aparece la máquina de Empire. Es más, cuando la máquina con Empire recibe la conexión del agente, se puede visualizar que la dirección IP de la que viene la conexión es la máquina intermedia.

Paso 1: Probando listerners

El escenario propuesto para la prueba que vamos a hacer es el siguiente:
• Máquina Kali Linux con Empire C2 en la dirección IP 10.0.0.1.
• Máquina Ubuntu, que será la máquina intermedia, en la dirección 10.0.0.20.
• Máquina Windows 7, en la que se ejecutará el agente, en la dirección 10.0.0.10.
El primer paso es configurar los listeners. En este caso debemos configurar dos listeners, el primero es un listener HTTP clásico de Empire, mientras que el segundo será un listener de tipo http_hop. En la imagen se puede visualizar como se configura el listener HTTP en el puerto 80 de la máquina con dirección IP 10.0.0.1, en este caso nuestro Kali Linux.

Figura 3: Configuración de listener http en Empire sobre Kali Linux

Una vez configurado el primer listener, vamos con el segundo. El listener de tipo http_hop generará una serie de archivos, los cuales son configurados en el host 10.0.0.20:80. En esa máquina tendremos un servidor web con PHP. Como se puede ver en la imagen, se obtiene una serie de archivos PHP los cuales saben gestionar las peticiones que reciban y reenviarlas, gracias al atributo RedirectListener, al listener http, el cual se encuentra configurado en la máquina 10.0.0.1.

Figura 4: Configuración de listener http_hop en Empire

Para subir los archivos al servidor intermedio se pueden utilizar diferentes formas, entre ellas la copia a través de SSH. Esto ya depende de cada uno y de las circunstancias, ya que en un Ethical Hacking podríamos hablar de una máquina comprometida y que queremos utilizar para hacer el ‘hop’ hacia el primer listener. Sea como sea, hay que subir los archivos PHP generados a la máquina intermedia.

Figura 5: Subida de archivos al servidor del listener http_hop

Paso 2. Recepción del stager a través de la máquina intermedia

Una vez tenemos todo preparado, hay que ejecutar el agente en la máquina víctima o comprometida. En otras palabras, un agente configurado mediante usestager apuntando al listener http_hop será ejecutado y éste emprenderá una conexión al servidor intermedio, el cual redirigirá la conexión al listener de la máquina 10.0.0.1.

Figura 6: Conexión desde la máquina intermedia

Cuando la conexión llegue, tal y como se puede ver en la imagen superior, la máquina 10.0.0.1 recibirá la conexión con el agente y la dirección IP que aparece es la 10.0.0.20, que es la máquina intermedia. En ningún caso se la dirección IP de la máquina víctima, que es la 10.0.0.10. Al ejecutar el comando agents, se puede ver la conexión y ejecución del agente en la máquina Windows 7. Aquí sí se puede ver que la dirección IP de la máquina Windows es la 10.0.0.10.

Figura 7: Prueba de listener http_hop en Empire

Os dejo un video en el que podéis ver todo el proceso desde cero, para que se entienda bien. Sin duda, este tipo de técnicas y usos son interesantes de cara al pentesting y el Ethical Hacking. Seguiré aportando más información sobre las posibilidades que ofrece Empire en su esplendor.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

No hay comentarios:

Entrada destacada

Seis recomendaciones personales de libros de @0xWord para disfrutar y aprender

Este verano pude disfrutar de la lectura de un libro que me encantó. El libro de Factfulness que me había regalado mi compañera Beatriz Ce...

Entradas populares