martes, mayo 07, 2019

EvilClippy: Crea documentos Office maliciosos multiplataforma en un Ethical Hacking #pentest

En esta última semana he estado ojeando diferentes herramientas del ámbito del Ethical Hacking y he llegado a una que me ha ganado por dos cosas. La primera por su logotipo. Simplemente espectacular. Los que recordamos a Clippy como el gran asistente de una época dorada de MS Office tendremos nostalgia al ver el logo de la herramienta del artículo de hoy. Clippy nos acompañó durante muchos años, y muchos también le conocíamos como Clipo, en su traducción al castellano.

Figura 1: EvilClippy: Crea documentos Office maliciosos multiplataforma en un Ethical Hacking

Hechas las presentaciones hoy quiero hablaros de EvilClippy, una nueva herramienta de Hacking en Windows, GNU/Linux e incluso Hacking MacOS - aunque estar centrada en archivos Microsoft Office - orientada a la creación de documentos ofimáticos maliciosos. En otras palabras, una herramienta que permite utilizar diferentes técnicas para generar documentos con un payload, el cual se ejecutará al interaccionar con el documento.

Figura 2: EvilClippy en GitHub

De este modo puede utilizarse para evaluar la concienciación de los empleados ante diferentes situaciones. El caso de evaluación clásico es el envío de un e-mail con un archivo adjunto. Este vector sigue siendo de los más utilizados cuando en lugar de una evaluación de concienciación es un ataque recibido en la empresa.

Figura 3: Manual de Ethical Hacking en 0xWord

La herramienta es un asistente sencillo para crear documentos MS Office, el cual puede ocultar VBA macros, Stomp código VBA y ofuscar macros. La herramienta puede ser ejecutado sobre diversas plataformas: Microsoft Windows, GNU/Linux y MacOS & Mac OS X. El investigador Stan Hegt publicó las presentaciones que se hizo sobre la herramienta en BruCON y en DerbyCON, sin duda, más que interesante.


Figura 4: Presentación de Stan Hegt sobre EvilClyppy

Desde el Github del proyecto se puede descargar el código fuente, escrito en C#, u obtener la versión preparada con la DLL necesaria para poder ejecutar la aplicación. En la siguiente imagen se pueden ver las opciones que dispone el binario. 

Figura 5: Opciones de EvilClippy

Detección de EvilClippy

En cualquier proceso de Ethical Hacking la detección y la evasión son factores fundamentales. Seguramente nos causa dudas saber cuánta detección tiene esta herramienta. La experiencia nos dice que al ser una herramienta pública y utilizada en este tipo de procesos será bastante detectada, pero también hay que tener en cuenta que cuanto más se actualice y más al día esté, mayor será el ratio de evasión.

Así suele pasar, pero esto supone un gran trabajo. Un ejemplo de esto era The Shellter.  Para este caso, en particular, la herramienta puede utilizar una Macro de Cobalt Strike para hacer bypass de la mayoría de productos antivirus. Para ello utiliza VBA Stomping y combina nombres de módulos de forma aleatoria. 

Casos de Uso

Como comentaba anteriormente, y se puede ver detallado en el artículo del investigador Stan Hegt, se puede utilizar una macro de Cobalt Strike antes de aplicar EvilClippy. Este es un proceso de inyección básico, el cual es detectado en un gran ratio. 

Figura 6: Detección con macro de Cobalt Strike

Después de aplicar EvilClippy al documento se puede ver el siguiente resultado. Para ejecutar EvilClippy sobre el documento se puede ejecutar la siguiente instrucción.
evilclippy.exe –s fake.vbs –g –r [documento ofimático]. 
Figura 7: Aplicación de EvilClippy a un documento y evasión de detección

EvilClippy solo focaliza su estrategia en la no detección estática. Es decir, si una vez se ejecuta el payload y es detectado no es un tema que trate la herramienta. La herramienta puede ser utilizada en procesos de Red Team, en los cuales hay que abrir una brecha y evitar la detección desde el primer momento. Además, se puede juntar con técnicas de bypassing de AMSI en VBA

VBA Stomping 

La técnica más potente que utiliza EvilClippy es VBA Stomping. Esta técnica se aprovecha de una característica, la cual no está oficialmente documentada. Se trata de una ‘PerformanceCache’ de cada flujo de módulo contiene un pseudo-código compilado, también conocido como código-P, para el motor de VBA. Si la versión de MS Office especificada en la secuencia _VBA_PROJECT coincide con la versión de MS Office del programa, entonces se ignorará el código fuente de VBA y ejecuta el código-P en su lugar. 

Si se conoce la versión de MS Office de una máquina destino se podrá reemplazar el código fuente de VBA con un código falso, y el código malicioso se ejecutaría a través del código-P. Además, cualquier herramienta que analice el código fuente de VBA es completamente engañado, porque está analizando un código que no se va a ejecutar posteriormente. No se evalúa el que se debería. El investigador Vesselin Bontchev fue el primero en documentar públicamente esta técnica. 

Para poder reemplazar el código fuente de VBA en el documento ofimático con un código falso y conseguir que el código-P malicioso se ejecute se debe escribir en EvilClippy lo siguiente:
evilclippy.exe –s fakecode.vba –t 2016x86 [documento]
dónde 2016 es la versión de Office y x86 la arquitectura. Después de esto, se crea un archivo llamado macrofile_EvilClippy.doc

Es una técnica potente, pero debemos tener claro que necesitamos conocer la versión de MS Office del objetivo. 

¿Cómo podemos saber o identificar la versión destino de MS Office? 

EvilClippy también puede automatizar y ayudar a esto. El truco es sencillo y sigue los siguientes pasos: 
1. Se crea una plantilla de MS Word, la cual incluye una macro maliciosa. 
2. Ejecuta la herramienta EvilClippy con la opción –webserver. Apunta a la plantilla creada anteriormente. A continuación, la herramienta activa un servidor web que escucha las conexiones entrantes en el puerto que se especifica. 
3. Posteriormente, se crea otro documento que apunta al documento de la plantilla a través de una URL. 
4. Si se abre el archivo, MS Office se comunicará con el servidor web para buscar la plantilla. EvilClippy identificará la versión de MS Office por el protocolo HTTP. 
Una forma sencilla y fácil de detectar la versión y poder utilizar la técnica VBA Stomp 

Figura 8: Detección de versiones

Una herramienta interesante para llevar en la mochila, ya que puede ser utilizada en diferentes ámbitos de un proceso de Ethical Hacking. Hay que tener mucho cuidado cuando se abre un documento ofimático y ver qué tipo

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced 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:

Publicar un comentario