Que Powershell Empire es una realidad dentro de las herramientas de seguridad es algo indudable, y lo vimos en el año 2016 cuando empezamos a hablar de ella. El potencial y la flexibilidad de la herramienta ha llegado a un alto grado. El día de hoy vamos a hablar sobre la GUI, o una de ellas, que ofrece Powershell Empire, cuáles son sus requisitos, qué nos ofrece y cómo podemos montarla.

Figura 1: Powershell Empire GUI: Una interfaz gráfica al más puro estilo Armitage

Hay que decir que el proyecto se denomina EmpireProject, pero en el fondo para nosotros todo sigue siendo Powershell Empire. Desde el Github de EmpireProject podemos acceder a la nueva GUI que nos proporcionan.

¿Qué características trae este nuevo proyecto de GUI para Empire?

El soporte multiplataforma es fundamental, ya que podemos montarlo en Windows, Linux o MacOS. El tráfico circulará a través de una conexión HTTPS, se dispone de autenticación para los usuarios y es un entorno multiusuario.


El entorno que vamos a montar consta de dos partes:
- La primera es la parte en la que montamos el Empire en su última versión, la cual se puede obtener desde su Github.
- La segunda parte es la GUI que se ejecutará en NodeJS.
En la siguiente imagen, se puede ver cómo tras realizar el git clone [empire] y la ejecución del script install.sh, se puede ejecutar Empire y darle un uso normal, como hemos ido viendo otros artículos.

Figura 3: Ejecución de PowerShell Empire

Pero ahora Empire dispone de una característica importante y es la posibilidad de levantar un servidor en un puerto y mediante el uso de una password poder acceder a las posibilidades de Empire vía GUI. Los pasos son los siguientes:
1. Instalación de NodeJS y NPM.
2. Descargar la rama 3.0-Beta de Empire. Esto se puede lograr haciendo git checkout 3.0-Beta dentro de la carpeta de Empire.
3. Arrancar el Empire Server.
4. La posibilidad de configurar listeners o generar stagers no está soportado aún por la GUI, pero sí veremos las máquinas con los agentes y la posibilidad de ver la información.
5. Ejecutar el servidor, para ello ejecutamos: ./empire –server –shared_password [password] –port [port].
6. Para arrancar la GUI, debemos ejecutar en el directorio de Empire-GUI la siguiente instrucción: npm install y, posteriormente, npm start. 7. Una vez hecho esto, hacemos el login en Empire.
Una vez tenemos el Empire en modo Server pasamos a la ejecución de npm, primero con install y, posteriormente, con start. En la siguiente imagen podemos ver lo comentado. Es muy probable que obtengamos algún Warning en este proceso, pero para la prueba será válido.

Figura 4: Pasos para la instalación

Una vez finaliza el proceso anterior, y hemos ejecutado npm start, obtendremos una nueva ventana dónde aparece el mensaje de “Login to the Empire”. En esta pantalla se pide una serie de datos. Si todo ha ido bien, nos vale con introducir la dirección IP de la máquina dónde se ejecuta Empire-GUI, el puerto y la contraseña que indicamos en el arranque de Empire Server. El user alias puede ser cualquier cosa, en este caso se utilizó el nombre “pablo”.

Figura 5: Login to Empire GUI

Una vez accedemos al panel interno nos encontramos con una serie de iconos a la izquierda. El primero de iconos representa las máquinas o agentes desplegados de Empire. En el panel central veríamos las máquinas con su sistema operativo pintado, muy parecido a Armitage. En la parte inferior vemos una pequeña zona de salida de texto, que es dónde iremos viendo el log y la ejecución de los agentes en las máquinas remotas.

El segundo icono representa los listeners. Poco a poco iremos viendo avances en esta GUI, ya que de momento es un proyecto que está comenzando y apenas tiene un mes. Fue creado el pasado 24 de abril del presente año.

Figura 6: Panel de Empire GUI

Para probar un poco el entorno decidí generar un stager, mediante el uso de usestager en Empire. El stager elegido fue un windows/launcher_bat, todo un clásico. Al generar el fichero bat lo llevé a una máquina Windows 7 y lo ejecuté tomando el control de la máquina. También hay que indicar que cree un listener de tipo http, para que el agente pudiera comunicarse con él.

Como se puede ver en la siguiente imagen, vemos una máquina que tiene en ejecución de dos agentes, ya que mi stager fue ejecutado un par de veces. Esta aproximación a Armitage acerca de manera sencilla la post-explotación a una forma más gráfica.

Figura 7: Agentes en ejecución en una máquina

Cuando queremos interactuar o visualizar información de uno de los agentes, podemos ir hacia el panel de la izquierda, dónde se puede ver el nombre del agente ejecutado en la máquina y se puede acceder a funcionalidad. En este caso, como se puede ver, tenemos una nueva shell sobre la que obtener información.

Figura 8: Apertura de una shell en una máquina

Cuando pulsamos sobre la shell, se nos abre una nueva pestaña en el panel inferior y podemos ver la información del agente ejecutándose en la máquina remota. Como se puede ver, la GUI de Empire nos permite ver de forma gráfica la fase de post-explotación, aunque si me dais a elegir, me quedo con el uso y gozo de la línea de comandos y la flexibilidad que ésta nos ofrece.

Figura 9: Shell abierta con un agente

Empire es un proyecto que ha crecido y que sigue haciéndolo gracias al empuje de sus creadores y de la comunidad que tiene detrás. Una herramienta que, sin duda, debéis tener en la mochila del pentester.


Autor: Pablo González Pérez (@pablogonzalezpe)