Export Forensic Challenge - HackTheBox
Esta vez estoy ante un challenge forense sencillo para quien comience en el mundo del Análisis Forense.
Analizaremos un archivo .raw de una captura de memoria de un sistema operativo Windows.
Descripción del Challenge
We spotted a suspicious connection to one of our servers, and immediately took a memory dumo. Can you figure out what the attackers were up to?
Volcado de memoria ram
En un análisis forense es de vital importancia conseguir una copia exacta del sistema que se vaya analizar.
Como la memoria RAM es volátil y si se apaga el equipo, la información que contiene se pierde. Debido a esto, en una investigación, si el equipo está encendido, es posible llevar a cabo el análisis en vivo, pero también existe otra manera: a través de la obtención del volcado de memoria (memory dump) donde se copia en un archivo el contenido de toda la memoria en un momento determinado. De esta manera es posible realizar el análisis post mortem, con una réplica exacta o “imagen forense” de la memoria del equipo en cuestión.
Tenemos un archivo raw, por lo tanto estamos ante un análisis de memoria volátil, de la memoria RAM.
Requerimientos
Para esta ocasión lo mejor es usar la herramienta volatility, que en mi caso la estoy usando a través de la distribución Linux Ubuntu forense SANS SIFT. Se puede descargar la distribución Forense SANS SIFT desde este enlace:
https://www.sans.org/tools/sift-workstation/
Para comenzar a resolver el challenge necesitaremos:
Herramienta volatility instalada
Volatility CheatSheet SANS SIFT
Análisis del memory dump
Comenzamos intentando obtener algo de información básica del sistema del cual se ha realizado el dumpeo de memoria.
# Lanzamos el comando
---------------------
$ vol.py -f WIN-LQS146OE2S1-20201027-142607.raw imageinfo
Vemos que el archivo de memoria sale de una máquina Windows 7 SPI de 64bits.
Win7SP1x64
Por lo tanto ahora añadiremos un parámetro más al comando en todos los que lancemos. Sigo la metodología de análisis que me muestra la cheatsheet de SANS SIFT sobre el análisis de memoria.
Por lo tanto vamos a identificar procesos ejecutados, maliciosos o no, a través del plugin pslist.
# El comando usado es el siguiente:
-----------------------------------
$ vol.py -f WIN-LQS146OE2S1-20201027-142607.raw --profile=Win7SP1x64 pslist
Y volatility nos saca una lista de todos los procesos, con su PID, fecha y hora de inicio, sesión activa... etc
Si nos fijamos hay varios procesos que estaban activos en el momento de la captura de memoria.
Tras ir analizándolos, tiro por analizar el proceso cmd.exe.
# El comando para analizar el proceso cmd.exe
---------------------------------------------
$ vol.py -f WIN-LQS146OE2S1-20201027-142607.raw --profile=Win7SP1x64 cmdscan
# Si nos fijamos podemos ver que se descarga un script .ps1 (powershell) y se almacena en la ruta:
--------------------------------------------------------------------------------------------------
C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\3usy12fv.ps1
Al almacenarse en la carpeta Startup, esto hace que cada vez que se inicie el sistema se ejecute el script 3usy12fv.ps1, es un método de persistencia. También cabe destacar que la url desde donde se descarga el script .ps1 está codificado, y debemos decodificarlo. Parece que está url-encodeado, así que voy a decodificarlo.
Si nos fijamos de nuevo en la URL ya decodificada, el nombre del script .ps1 parece estar codificado también pero en base64, por lo tanto voy a decodificarlo.
Subscribe to my newsletter
Read articles from elc4br4 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
elc4br4
elc4br4
Cybersecurity Student