El objetivo de está serie de artículos es aprender técnicas tantas ofensivas como defensivas. Por ello, habrá dos apartados, uno principal demostrando técnicas para recabar, en este caso información, y como determinar su defensa.


Si deseas proponer alguna mejora, o algún comentario, ya sea duda o simplemente conocer más sobre esto, por favor, sin miedo escribe por telegram o twitter :)
Infraestructura:
- Debian 10 , corriendo ELK
- Windows 10, ordenador del usuario, corriendo sysmon.
- Kali Linux, máquina atacante
A nivel de herramientas, utilizaré CobaltStrike, como command and control.
Acceso Inicial
El objetivo de esta lab será mostrar el funcionamiento de cobalt strike , y su utilización, utillizando técnicas como ofuscación y spear phising, a através de macros VBA y excel 4.0
Cobalt Strike
Lo interesante de cobalt strike es la posibilidad de modificar los comportamientos, que processos spameamos , como las llamadas a las api hacen las injeciones, parámetros de red.
Podemos customizar intervalos de sueño en nuestros beacons como la capacidad de customizar artifacts.

Como decía anteriormente, la capacidad de modificar los comportamientos es una de las técnicas interesantes de cobalt strike.
Curiosidad: Las versiones cobalt strike obtenidas de la red, son conseguidos por leaks de ataques.
Existen repositorios, como el siguiente, https://github.com/xx0hcd/Malleable-C2-Profiles
Estos perfiles proporcionan la capacidad de modificar los indicadores, emular el trafico real de una aplicación como es youtube en este caso, incluso conseguir evandir defensas.
Dentro de cobalt, tenemos la herramienta c2lint, que nos permite comprobar si el profile es correcto, así como ver la información que genera.
A modo de ejemplo, utilizando el template de youtube

Y observamos el tráfico generado vía wireshark

Como vemos es bastante interesante, así como totalmente modificable y destacable, el crear nuestros propios templates, e imitar comportamientos que nos encontremos dentro de una red.
El primer paso, será crear nuestro listener

Una vez creado el listener, tenemos que crear el payload que descargará nuestro beacon.

Nos generará una instrucción para realizar la descarga:

Ofuscación
Al ser herramientas muy utilizadas, son cazadas por los antivirus. Con este fin, la recomendación es ofuscar nuestros payloads.
Utilizamos la herramienta Invoke-Stealth

Los AV´s detectan strings o cadenas de texto para identicar patrones, asique utilizamos la opción Chimera.
La instrucción la copiamos en un script, y le pasamos invoke-stealth:

Esta ejecución nos provoca múltiples procesos, aunque por un lado puede parecer que nos protege contra los AV´s, esto es incorrento, AV salta.

EL primer proceso creado,


Los eventos siguientes, con el ID 4104, conocido como proceso de ejecución de comandos, siguen este mismo patrón:


Como vemos está opción es totalmente inviable para ser ejecutada en un entorno real.
Creación de macros
En esta parte del ejercicio, mi intentión era ver las macros XML 4.0, ya que están teniendo gran tirón por parte de los ciberdelicuentes.
Y la verdad es que me ha aparecido bastante interesante como funcionan. Incluso, como veremos más adelante, las dificultades para analizar un fichero de este tipo.
Primer paso, debemos generar un payload con cobalt strike


Una vez generado nuestro payload, debemos eliminar los null bytes con msfvenom:

Y utilizaremos la herramienta SharpShooter de parte del equipo de MDSec.

Una vez generado el fichero, debemos exportarnos a nuestro equipo. Como datos vemos que el fichero es identificado como malicioso.

Por lo tanto, nos genererá alertas de seguridad


Ejecución
En este paso, ejecutaremos el binario con el objetivo de obtener una conexión entre ambos equipo y también, para ver que información estamos generando.
El fichero creado tiene la siguiente imágen:

Una vez, se ejecuten las macros, se producirá la conexión a nuestro command and control.

Se nos genera la siguiente información, información relacionada con la descarga del fichero:

La primera alerta, la creación de un proceso


La segunda alerta, creación de un fichero


Una tercera alerta, un nuevo proceso creado


Reference a la conexión con el C2


Analizando Macros XML 4.0
A la hora de analizar fichero offices tenemos diferentes formas ade llevarlo acabo, existen herramientas automatizadas como anyrun o VT. U otras herramientas como oledump, olevba.
A la hora de analizar un incidente de seguridad, realizar un análisis automatizado puede que sea la opción más correcta. Una rápida respuesta a esta situción es crítico.
La muestra que analizaremos se trata de TrickBot.
https://bazaar.abuse.ch/sample/888614bdf13110e3934ff3a852074f6cde2998db6631d443bdee73dec5ecfe30/
Curiosidad: En las bases de datos como bazar-abuse, los usuarios se integran en botnets, con el fin de obtener toda posible muestra de malware y así estudiar los comportamientos y nuevas features.
Una vez lo descomprimimos, como se nos indica, se trata de un fichero xlsx

Podemos utilizar el hash del fichero para obtener más información.

Otbetemos información interesante, como dominios o ip´s
Tenemos la opción de AnyRun, para ver la muestra en movimiento.

Como vemos en los procesos, podemos entender que una vez ejecuta las macros lo que hace es dropear un fichero .dll y este es cargado con rundll32.exe
Utilizar oledump, pero en este caso es interesante, ya que no nos muestra información sobre macros VBA.

Oledump, tiene plugins que nos da un aporte extra de conocimiento, en este caso, utilizaremos el plugin_biff.py:
oledump.py trickbot.xlsx -p plugin_biff.py

Como vemos, la información es mucho más extensa. Pero sin embargo, al estar el fichero protegido por password no funciona del todo bien…
Si queremos obtener mayor información sobre el fichero, podemos desencriptarlo con msoffcrypto-crack.py

Una vez obtenido la password, necesitamos desencriptar este fichero, para ello utilizamos msoffcrypto-tool

Una vez obtenido el fichero desencriptado, podemos analizar con xmldeobfuscator

OS suenan las formulas del Excel? Ejem ejem…

Esto es una pequeña introducción al mundo de las macros, que sin duda, es un tema interesante para investigar para tanto red como blue team.
A fecha de 24 de septiembre de 2020:

A día de hoy:

Como podemos observar, la encriptación es una de las principales maneras para bypassear de forma eficiente los antivirus.
Artículos Relacionados
Thanks To:
Cobalt
-
Pablo Ambite for Aprovechando de Microsoft Team para persistir y ocultar
-
Assaf Dahan for Operation Cobalt Kitty
-
Joel Gámez for Invoke-Stealth
Macros
-
Marcin Ogorzelski for The first step in Excel 4.0 for Red Team
-
Joe Leon & Matt Grandy for Offensive Maldocs in 2020 and pdf
-
Stan Hegt for Old school: evil Excel 4.0 macros (XLM)
-
Pieter Ceelen and Stan Hegt Office in Wonderland and pdf
-
Daniel Heinsen for Phishing in a Macro-less World
SharpShooter
- D. Chell for Cracking the Perimeter with SharpShooter and pdf