jueves, diciembre 03, 2020

PowerShell Empire: Novedades del Ave Fénix del pentesting

El proyecto Empire ha dado mucho que hablar en los últimos años. En 2015 se liberó en una BSides de Las Vegas y a partir de ahí todo o casi todo fueron buenas noticias para el proyecto. Tuvo una gran acogida en la comunidad por su frescura y por todo el potencial que le sacaba a Powershell y los entornos Windows durante la fase de post-explotación. 

Figura 1: PowerShell Empire: Novedades del Ave Fénix del pentesting

Cuando llegó el momento en el que “cerraron” oficialmente el proyecto y sus autores se dedicaron a otras cosas fue duro pensar que Empire finalizaba. A principios de 2016 nosotros hablábamos de este interesante proyecto como parte de nuestra investigación en el mundo del Pentesting con PowerShell, y realmente, no hemos dejado de hacerlo, e incluso, a principios de este año, tan extraño, que acabamos este mes, lanzamos desde 0xWord un libro dedicado a Empire y a todo lo que uno puede hacer con este framework

Figura 2: Pentesting con Powershell 2ª Edición

Al principio un poco asustados, ya que pensábamos que justo sacaríamos un libro de un proyecto finalizado, pero todo lo contrario. La comunidad hizo su magia. La comunidad no quiso que este magnífico proyecto finalizara y hubo varios forks que buscaban dar continuidad al proyecto. Quizá fue la gente de BC-Security los que han tenido mayor peso en la evolución del proyecto dotándole de algunos cambios.


Solo hay que recordar el artículo titulo “The Empire 3.0 Strikes Back”. Fue una alegría para muchos ver como el proyecto seguiría contando con mantenimiento gracias a la comunidad. Algunas cosas han cambiado bastante entre el antiguo Empire y el nuevo, pero en otras muchas cosas no se ha cambiado en exceso. 

Figura 4: Libro de "Empire: Hacking Avanzado en el Red Team" de 0xWord
de Pablo González y Sebastián Castro

Con la aparición de la versión 3.0 el proyecto volvía “a la vida” y traía una serie de actualizaciones y novedades. A continuación un breve resumen de ello:

- Compatibilidad con Python 2/3. Se portó desde Python 2.7 a 2.7/3.X. Un hecho que simplificará algunas cosas en el futuro y dará mayor soporte a la herramienta.

- Se añadió un listado de módulos. Si nos fijamos en la imagen de la Figura 3, actualmente se ofrecen 314 módulos. La versión 2.5, la última del proyecto original, acabaron en 285 módulos. El volumen de módulos que se ha incluido es interesante. Algunos módulos que se metieron en la versión 3.0 son:

Figura 5: Módulo de RID-Hijacking de Sebastián Castro

o Invoke-RID_Hijack del bueno amigo Sebastián Castro, co-autor del libro de Empire:Hacking Avanzado en el Red Team de 0xword junto a mí.

 
o Actualización de Mimikatz 2.2.0.
o Sherlock. Un interesante función en Powershell para obtener vulnerabilidades del sistema y poder lograr una escalada de privilegios. Ya hablamos de ello en su día.
o Algunos cambios más relacionados con LAPS, AppLocker, SMB, Kerberos, WinUpdate, etcétera.

- Se demostró que el mantenimiento y la apuesta estaba clara y disfrutaríamos más tiempo de este proyecto.

Tiempo después, en septiembre de 2020, se liberó la versión de Empire 3.4 con novedades interesantes. Para los que seguimos a los chicos de BC-Security vemos el trabajo y lo que aportan en forma de conocimiento en sus artículos, pero además, vemos que emplean el tiempo en integrar los avances en Empire. Esto ocurrió, como dije, en septiembre de 2020:

- Se añadió un listener nuevo a Empire denominado Malleable C2 HTTP Listener, del cual hablaremos en otra ocasión. Heredada de CobaltStrike la idea. 
 
- Se añadió la posibilidad de cargar binarios mediante “reflective load”. 
 
- Se añadió Invoke-Watson, un script que permite recopilar y enumerar vulnerabilidades de cara a una escalada de privilegios. Un digno sucesor de Sherlock. 
 
- Se añadió Invoke-WinPEAS o Windows Privilege Escalation Awesome Scripts, quizá una obra de arte de la enumeración de vulnerabilidades y escalada de privilegios. 
 
- Se añadió Invoke-DomainPasswordSpray. En el blog ya hablamos de esto hace tiempo explicando en qué consiste un password spray.

En la versión 3.6, incluso, viene el módulo ya de Zerologon. La herramienta está actualizándose, teniendo nuevas funcionalidades, y nuevas posibilidades. Sin duda, es una herramienta que hay que seguir de cerca. No quiero dejar pasar la oportunidad para comentar también las funcionalidades de evasión.

Figura 7: Módulos para escalada de privilegios

AMSI ha supuesto un antes y un después sobre cómo enfocar la post-explotación y cómo conseguir ejecutar ciertas técnicas a través de Powershell u otros lenguajes de scripting como VBS o Javascript. AMSI es ese “chivato” que le dice al maestro lo que ocurre. Hemos hablado mucho sobre AMSI y diferentes técnicas de bypass que pueden utilizarse. Los compañeros de ElevenPaths tienen una herramienta para evaluar qué código es detectado por AMSI, el cual puede ser interesante en un pentest a la hora de ver si el AV detecta nuestra función o no como maliciosa.


En Empire, los stagers vienen con dos técnicas de bypass de AMSI integradas para ser ejecutadas antes que el código del stager sobre la máquina con Windows 10. Esto es algo lógico, ya que si no se hace un bypass de AMSI quizá no se pueda ejecutar el stager de Empire nunca, ya que Defender o el AV que se tenga lo detectaría y evitaría dicha ejecución. En este artículo hablamos sobre el bypass de AMSI que incorporan las consolas de ATTPwn antes de ejecutarse. De este modo, se bypassea AMSI a nivel de proceso y, posteriormente, se puede ejecutar el código “crítico”.

Figura 9: Opciones para hacer un Bypass de AMSI

En la imagen se puede ver las opciones con los bypasses de AMSI a utilizar. La primera opción AMSIBypass solo deshabilita AMSI en tiempo de ejecución de Powershell, pero no en el CLR. En el caso de la opción AMSIBypass2 se deshabilita también AMSI en el CLR. Son diferentes técnicas incluidas en la generación de los stager, actualmente en Empire. Esto tiene que estar en cualquier herramienta que veamos en la C2 Matrix.

Figura 10: Libro de Ethical Hacking 2ª Edición


Seguiremos hablando y escribiendo sobre Empire, ya que es una herramienta potente para realizar tus proyectos de Ethical hacking  que ha resurgido de sus cenizas con mucha fuerza para quedarse en la comunidad de pentesters. La versión 2.5 sigue siendo bastante útil, aunque con las protecciones de hoy en día tenemos que tener otras posibilidades, sin olvidar que el bypass de AMSI va a ser casi obligatorio hoy en día.

Saludos,

Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters: Gold Edition", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell (2ª Edición)”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox

 Contactar con Pablo González

No hay comentarios:

Publicar un comentario