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.
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.
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.
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 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.
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