Hola a tod@s!

Continuando con el primer post, el segundo y el tercero, vamos a ver herramientas concretas para realizar ciertas acciones y que nos serán muy útiles como veréis a lo largo del artículo.

La primera que veremos es Malcat. Se trata de una herramienta multiusos con versiones free y de pago, para varios Sistemas Operativos.

Versiones MALCAT

Con la versión gratuita podréis hacer casi de todo y si no, a pagar xD

Veremos qué podemos hacer con esta muestra. Al abrirla, nos indica qué es lo que estamos viendo, la cabecera, secciones, funciones, etc.

Muestra analizada MALCAT

Como podéis observar en el menú, te permite ejecutar scripts, la utilidad Capa, consultar en su inteligencia, realizar operaciones o transformar partes del código.

Analisis de CAPA

Parte de estas acciones también están disponibles en la zona de arriba a la derecha en la aplicación:

Muestra CAPA icono APP

En el primer botón (summary), nos muestra información general sobre lo que ha analizado del binario.

Analisis Sumary en la APP MALCAT

Tiene reglas Yara que ayudan a identificar comportamientos, firmas, etc. Si detecta alguno, nos muestra la regla que ha coincidido y qué parte de la misma.

Análisis de reglas YARA

Si pulsas en el botón de ASM, puedes ver el código en ensamblador.

Codigo de ensamblador Malware MALCAT

Pero antes de mostraros otra de las maravillas de esta herramienta, sepamos qué estamos viendo aquí, se trata de un artefacto de Cobalt Strike.

Artefacto de Cobalt Strike

Sabiendo esto, continuamos con el uso de la herramienta. Estando en la zona hexadecimal (botón hex), seleccionamos la parte del código que vamos a transformar, después seleccionaremos XOR para introducirle la clave (que se ve en la imagen). Para ello, botón derecho Selection + Transform …

Transformación XOR

Buscamos en el menú de la izquierda xor y añadimos la clave que habíamos visto.

Introducción de Clave

Tenemos la opción de que vaya a un nuevo fichero o directamente en el binario, en la selección.

Busqueda de UserAgent en Malware

Como os decía antes, viene integrado Capa que nos muestra las capacidades (de ahí su nombre) del binario.

Resumen CAPA del análisis de Malware COBALT

Estas son algunas de las cosas interesantes que se pueden hacer con la herramienta, muy útil y, sin lugar a dudas, se ha ganado el estar entre las más utilizadas por intuitiva y potente a la vez.

Vale, cambiando de tercio, tenemos una shellcode extraída del artefacto que acabamos de ver y queremos analizarla dinámicamente, ¿Qué podemos hacer? Podemos usar BlobRunner.

Abrimos nuestro debugger preferido y cargamos el binario correspondiente a arquitecturas de 32 ó 64 bits, y le ponemos la ruta donde se encuentra la shellcode extraída.

Blobrunner Analisis

Fijaros lo que nos indica, ha colocado nuestra shellcode en la dirección de memoria 0x000f0000.

dirección de memoria 0x000f0000

Nos dirigimos a esa dirección de memoria

Muestra dirección de memoria RAM indicada

Lo seleccionamos y colocamos un breakpoint en el acceso a la misma.

breakpoint 0x000f0000

Pulsamos una tecla y el depurador para en ese punto. Ahora ya podemos analizarlo de forma dinámica.

Análisis dinámico

¿Hay alguna opción que veamos las API a las que llama una shellcode de este tipo, que las emule? Si hablamos de 32 bits se puede utilizar scdbg. Os dejo el manual aquí.

Análisis de Malware API

Muy útil con cualquier shellcode, pero sobre todo con las de Cobalt Strike o Metasploit.

Vamos a ver ahora PE-Sieve, con esta muestra. Como Hasherezade nos cuenta, la herramienta escanea un proceso dado, buscando implantes y parches potencialmente maliciosos dentro del espacio del proceso. Cuando lo encuentra, descarga el PE modificado o sospechoso junto con un informe en formato JSON, que detalla los indicadores encontrados. Una maravilla, vamos.

PE-Sieve

Solamente necesitamos introducirle el PID o identificador del proceso.

identificación de proceso

Genera, como decía, un fichero JSON con los indicadores y lo mejor de todo, el binario que había inyectado es extraído para que lo podáis analizar.

JSON con identificadores de compromiso

Otra utilidad suya e imprescindible es PE_unmapper. Es muy útil para volcar binarios de memoria y que funcionen después ya que realiza un desmapeo posterior entre las asignaciones de raw y virtual, los deja totalmente funcional y no “dañado” como os mostraría si tratarais de ejecutarlo con doble click. Reconstruye la IAT o tabla de dirección de importaciones. Veamos como usarla en esta muestra.

Vamos a utilizar la ejecución del malware anterior para extraerlo con la utilidad. Lo ejecutamos y adjuntamos en el Immunity Debugger, Ollydbg, x64dbg, el que más os guste.

Y volcáis la zona de memoria donde se encuentra el malware.

PE_unmapper

La forma de ejecutar la utilidad es: pe_unmapper.exe [mem_dump_input] [mem_address_base] [output_file]

La forma de ejecutar la utilidad es pe_unmapper.exe

Y ya tenemos el mismo binario que habíamos generado con pe-sieve. Lo vuelvo a ejecutar para este proceso y lo comparo con radiff2.

comparació con radiff2

Al volcarlo desde el debugger, había generado un fichero de 10000 KB, y después de pasarle la herramienta, lo ha dejado como es debido y funcional.

Fichero debugger grande

Hay alguna herramienta que otra que automatiza el proceso de análisis de malware. Una de ellas es Noriben. Un script en Python que utiliza Process Monitor de Sysinternals, de la que ya hemos hablado, para monitorizar lo que ocurre en el equipo y obtener los datos.

Automatización proceso de análisis de malware con NORIBEN

Su forma de uso sería, ejecutáis el script y se queda a la espera hasta que pulses Ctrol+C. Entonces, doble click en el malware y cuando penséis que ha finalizado su ejecución o no creáis que va a continuar haciendo cosas malas, lo paráis. El resultado es el lo que os he puesto en la anterior captura, procesos creados, actividad de ficheros, del registro de Windows y red.

Otra herramienta que automatiza el análisis de Malware es SysAnalyzer. Es del mismo autor que scdbg.

Como viene a decir en su página web, los componentes principales de SysAnalyzer funcionan comparando instantáneas del sistema durante un intervalo de tiempo especificado por el usuario. La razón por la que se utilizó un mecanismo de instantáneas en comparación con una implementación de registro en vivo es para reducir la cantidad de datos que los analistas deben examinar al realizar su análisis. Mediante el uso de un sistema de instantáneas, se puede presentar de manera efectiva sólo los cambios persistentes encontrados en el sistema desde que se ejecutó la aplicación por primera vez.

Si bien este mecanismo ayuda a eliminar una gran parte del posible ruido causado por otras aplicaciones o matices de tiempo de ejecución intrascendentes, también abre la posibilidad de que falten datos clave. Debido a esto, SysAnalyzer también le da al analista la opción de incluir varias formas de inicio de sesión en vivo en el procedimiento de análisis.

SysAnalyzer

Las opciones de Api Logger es fundamental si quieres monitorizar las llamadas a las API de Windows. No estarán todas, pero sí las más importantes.

La opción de Directory Watcher será muy útil cuando el Malware haga cambios en ficheros o los elimine, lo va almacenando y te guarda el fichero original.

Si el malware genera memoria para utilizarlo y generar binarios, por ejemplo, la herramienta te lo vuelca. Además obtiene las cadenas de todos los ejecutables que intervengan en lo que vaya detectando.

Directory Watcher API Logger

Vemos como utiliza las API InternetConnectA con la dirección IP y HttpOpenRequestW con el método y URI.

El resultado consta de varios ficheros, entre los que está el Report como principal.

API InternetConnectA con la dirección IP y HttpOpenRequestW

Todo se almacena en un directorio analysis y está accesible. Lo que os comentaba sobre la extracción de cadenas de los binarios y volcados.

extracción de cadenas de los binarios y volcados

A veces se ven cosas interesantes.

Bueno, ¡¡espero que os haya gustado y nos vemos en el próximo post!!

¡¡Hasta otra!!