PowerShell Empire
Historia y presentación
El desarrollo manual de malware, como se implementó en el capítulo anterior, es, definitivamente, la técnica preferida por los atacantes para tener códigos esotéricos que son, al mismo tiempo, difíciles de comprender para los equipos de defensa de los sistemas de información y complejos de detectar por los antivirus. Sin embargo, otros actores en el ámbito de la seguridad informática pueden necesitar implementar software «malicioso» basado en PowerShell sin desear el desarrollo de nuevo un ecosistema completo de gestión de malware digno del presupuesto de una agencia de inteligencia. Aquí estamos pensando, entre otros, en los pentesters y en los equipos que llevan a cabo acciones de sensibilización.
En este contexto, un equipo de hackers dirigido por Will Schroeder, más conocido por el pseudónimo de «Harmj0y», desarrolló PowerShell Empire de 2015 a 2019. Este framework resuena en la comunidad y se ha convertido en un referente en este nicho. El objetivo del proyecto era tener un conjunto de herramientas posexplotación con una criptografía de vanguardia, todo en una arquitectura flexible con módulos fácilmente desplegables que pudieran adaptarse sin muchos problemas a los diferentes contextos de intervención que los autores podrían encontrar.
La posexplotación...
Despliegue
1. Fuentes y documentación
El primer paso es ir al GitHub del proyecto (https://github.com/BC-SECURITY/Empire) para obtener la última versión del procedimiento de instalación de Empire.
El wiki (https://bc-security.gitbook.io/empire-wiki/quickstart) y el sitio oficial (https://www.powershellempire.com/) también son fuentes de información que deben consultarse antes de comenzar con Empire.
No hay recomendaciones de hardware para el despliegue de un servidor Empire, ya que la configuración necesaria depende del número de agentes que este administrará. Diseñado para ejecutarse en un marco ofensivo donde no se garantiza el control total de la configuración del servidor, Empire no necesita muchos recursos para gestionar unas pocas máquinas. La VM Kali instalada al principio de este libro es más que suficiente para administrar algunos agentes.
2. Instalación
a. Empire
Los desarrolladores ofrecen varias estrategias de instalación. La más sencilla y rápida, siempre que se utilice la distribución Kali asociada al proyecto, consiste en usar el repositorio oficial con los dos comandos siguientes:
$ sudo apt install powershell-empire
$ sudo powershell-empire
Para los puristas, por supuesto, es posible implementar Empire directamente desde las fuentes de GitHub. Usaremos este último método en este capítulo...
Utilización de Empire para atacar un sistema de información
1. Help!
En esta sección, veremos cómo funciona Empire y cómo llevar a cabo un ataque en el sistema de información virtual que implementamos en el primer capítulo. En este contexto, veremos cómo poner el servidor Empire en escucha y esperar conexiones de las víctimas, y luego usar Empire para construir un malware simple basado enteramente en PowerShell. Luego, encapsularemos este virus en otro archivo que sea más probable que engañe a un usuario antes de, finalmente, enfocarnos en la explotación de estas máquinas una vez que se vean comprometidas por el vector inicial. Concluiremos con el desarrollo de un módulo personalizado para Empire.
Pero, antes que nada, una vez en el Shell de Empire, el primer comando que debe conocer es help.
Introduzca el siguiente comando para mostrar la ayuda:
(Empire) > help
┌Help Options───┬─────────────────────┬─────────────────────────┐
│ Name │ Description │ Usage │
├───────────────┼─────────────────────┼─────────────────────────┤
│ admin │ View admin menu │ admin │
├───────────────┼─────────────────────┼─────────────────────────┤ ...
Conclusion
En este capítulo hemos visto cómo herramientas ofensivas puras en PowerShell, industrializadas en el proyecto Empire, pueden llevar a cabo un ataque completo en un sistema de información. El ataque anterior no explotó una vulnerabilidad técnica importante, como ZeroLogon, sino simplemente una serie de errores técnicos de configuración y malas prácticas organizativas.
De hecho, si resumimos los pasos:
-
Acceso a través de una macro que explota la credulidad del usuario no sensibilizado y la falta de bloqueo técnico por una estrategia de seguridad por parte de los administradores.
-
Elevación local mediante la presencia de un sistema operativo obsoleto Windows 7 en el SI y, de nuevo, simplemente pidiendo al usuario. Esta elevación no habría sido posible tan fácilmente con una separación adecuada de las cuentas de usuario y administrador local de las máquinas que requieren una contraseña para realizar la operación.
-
Persistencia a través de funciones integradas en Windows.
-
Propagación y elevación en la infraestructura presentada con la ayuda de dos vectores. El primero es un ataque de fuerza bruta al hash NTLM, que solo depende de la robustez de la contraseña elegida por el administrador frente a las capacidades de cálculo del atacante. La segunda es el robo de tokens basado en malas prácticas...