Initial Access II

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.

image025.png

image026.png

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.

image001.png

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

image003.png

Y observamos el tráfico generado vía wireshark

image004.png

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

image005.png

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

image006.png

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

image007.png

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

image008.png

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:

image009.png

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.

image010.png

EL primer proceso creado,

image011.png

image012.png

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

image013.png

image014.png

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

image015.png

image027.png

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

image028.png

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

image029.png

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

image030.png

Por lo tanto, nos genererá alertas de seguridad

image031.png

image032.png

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:

image019.png

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

image034.png

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

image035.png

La primera alerta, la creación de un proceso

image036.png

image037.png

La segunda alerta, creación de un fichero

image038.png

image039.png

Una tercera alerta, un nuevo proceso creado

image040.png

image041.png

Reference a la conexión con el C2

image042.png

image043.png

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

image044.png

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

image045.png

Otbetemos información interesante, como dominios o ip´s

Tenemos la opción de AnyRun, para ver la muestra en movimiento.

image046.png

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.

image047.png

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

image048.png

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

image049.png

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

image050.png

Una vez obtenido el fichero desencriptado, podemos analizar con xmldeobfuscator

image051.png

OS suenan las formulas del Excel? Ejem ejem…

image052.png

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:

image053.png

A día de hoy:

image054.png

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

Macros

SharpShooter