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, tal y como se ha podido ver en otros artículos como en el que trabajábamos con
Pass the hash, Mimikatz y el Empire. 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
scriptinstall.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.