Esta es una guía de cómo resolver, paso a paso, el reto Ramnit de la plataforma Cyberdefenders.org
Tags: Writeups, Writeups Español, Cyberdefenders, Ramnit, Endpoint Forensics
Índice
- Preámbulo
1.1 Volatility3 - Writeup
2.1 Pregunta 1
2.2 Pregunta 2
2.3 Pregunta 3
2.4 Pregunta 4
2.5 Pregunta 5
2.6 Pregunta 6
2.7 Pregunta 7 - Preguntas y respuestas
Preámbulo
Info | Descripción |
---|---|
Reto | Ramnit |
SHA1SUM | A0D532E138E4BCC3F20E29968E006F2A482AE002 |
Autor | Cyberdefenders |
Tags | Memory Forensic, Volatility |
Siempre es importante conocer el contexto de lo que tenemos enfrente como reto, ya sea en un entorno controlado como este o en la vida real. Revisando las preguntas -que son nuestro contexto de lo que estamos investigando-, podemos ver, que al menos la mitad, son muy parecidas meteorológicamente a las preguntas del reto RedLine, así, pues, para esta investigación vamos a proceder inicialmente de manera similar.
Escenario
Nuestro sistema de detección de intrusiones nos ha alertado sobre un comportamiento sospechoso en una estación de trabajo, lo que indica una probable intrusión de malware. Se ha realizado un volcado de memoria de este sistema para su análisis. Tu tarea es analizar este volcado, rastrear las acciones del malware y reportar los hallazgos clave. Este análisis es fundamental para entender la brecha y prevenir compromisos adicionales.
Instalando Volatility3
Sólo como paso previo al arranque, algunos quizá podrían tener problemas para instalar el Volatility3, así que aquí te dejo una manera de hacerlo desde un Linux. Una vez instalado o metes el “vol.py” en el PATH para poder invocar el programa desde cualquier ruta, o trabajas desde el directorio del volatility:
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
python3 setup.py install
python3 vol.py -h
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Writeup
1. Necesitamos identificar el proceso responsable de este comportamiento sospechoso. ¿Cuál es el nombre del proceso sospechoso?
Nuestro primer paso para detecter posibles procesos sospechosos o maliciosos es correr el plugin “windows.malfind” con el siguiente comando:
python3 vol.py ruta/memory.dmp windows.malfind
Al ejecutar este comando obtenemos algunos resultados, pero aparentemente ninguno de los procesos arrojados es la respuesta que necesitamos. Por tal motivo, ahora conviene ejecutar el plugin “windows.pslist” y echamos un ojo haber si visualizamos algo raro.
A simple vista no se ve nada “raro”, sin embargo, hacia el final de la línea de tiempo de los procesos del equipo hay un proceso “ChromeSetup.exe” que no hace más que instalar el navegador Chrome. Los anteriores procesos son, en su mayoría, procesos del sistema tras arrancarse, por esa misma razón me pareció raro que haya una instalación de un navegador. Este proceso tiene la siguiente información:
PID | PPID | Proceso |
---|---|---|
4628 | 4568 | ChromeSetup.exe |
Sólo como curiosidad, el proceso padre del sospechoso es la ejecución de “explorer.exe”.
2. Para erradicar el malware, ¿cuál es la ruta exacta del archivo ejecutable del proceso?
La manera sencilla para obtener la ruta completa del exe sospechoso es unas el plugin “pstree” y, una vez identificado el proceso sospechoso, vemos la ruta del programa:
python3 vol.py ruta\memory.dmp windows.pstree
3. Identificar las conexiones de red es crucial para entender la estrategia de comunicación del malware. ¿Cuál es la dirección IP a la que intentó conectarse?
Con el PID del proceso sospechoso en mano, podemos ejecutar el plugin “netscan” y vemos la IP a la que se intentó conectar este proceso:
PID | IP | Puerto | Proceso |
---|---|---|---|
4628 | 58.64.204.181 | 5202 | ChromeSetup.exe |
4. Para determinar el origen geográfico del ataque, ¿qué ciudad está asociada con la dirección IP con la que se comunicó el malware?
Esta pregunta es bastante sencilla ya que disponemos de varias páginas web para hacer una búsqueda geográfica de las dirección de IP, en nuestro caso, la IP de nuestro atacante apunta a la ciudad de Hong Kong.
5. Los hashes proporcionan un identificador único para los archivos, ayudando a detectar amenazas similares en diferentes máquinas. ¿Cuál es el hash SHA1 del ejecutable del malware?
Ok, para esta pregunta parece que el procedimiento es sencillo: hacheamos del exe malicioso. Sin embargo, como ya habrás pensado, primero necesitamos tener en nuestra máquina aquel ejecutable malicioso. La herramienta de Volatility nos proporciona un plugin que nos permite descargar los recursos de la IP a la que el proceso apunta. Dicho de otro modo, lo que necesitamos tener para extraer el ejecutable malicioso y hashearlo es: el PID el proceso sospechoso y correr el siguiente comando sobre ese PID:
python3 vol.poy ruta/memory.dmp windows.dumpfile --pid 4828
Lo que nos va a devolver este plugin son todos los recursos que ese proceso tenga disponible. En este caso serán varios ficheros y programas entre los cuales se encuentra el que nos interesa: el “ChromeSetup.exe”. Hay que poner atención a lo que nos descarga ya que, al menos en mi caso, descargó ese ejecutable pero en dos extensiones: una “img” y un “dat”. Sobre este último es el que hay que hashear. Yo lo hice desde una máquina linux con el comando:
sha1sum nombre_del_ejecutable.dat
6. Entender la línea de tiempo del desarrollo del malware puede ofrecer información sobre su despliegue. ¿Cuál es la marca de tiempo UTC de compilación del malware?
Para obtener el “timestamp” de compilación del ejecutable, usé el comando “objdump” de Linux sobre el “dat”, de la siguiente manera:
objdump -x ejecutable_malicioso.dat | grep “Time”
Sólo asegúrate de meter la timestamp con el siguiente formato: AAAA-MM-DD [espacio] HH:MM:SS.
7. Identificar los dominios involucrados con este malware ayuda a bloquear futuras comunicaciones maliciosas y a identificar posibles comunicaciones actuales con ese dominio en nuestra red. ¿Puedes proporcionar el dominio relacionado con el malware?
Por último, se me ocurrió subir el exe a Virustotal y, desde la pestaña de “Detalles”, ver los dominios relacionados con ese programa:
Seguro que hay otra manera de hacer este paso, pero sinceramente no la conozco, si tú conoces otro procedimiento te invito a que la compartas con todos.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Preguntas y respuestas
-
Necesitamos identificar el proceso responsable de este comportamiento sospechoso. ¿Cuál es el nombre del proceso sospechoso?
ChromeSetup.exe -
Para erradicar el malware, ¿cuál es la ruta exacta del archivo ejecutable del proceso?
C:\Users\alex\Downloads\ChromeSetup.exe -
Identificar las conexiones de red es crucial para entender la estrategia de comunicación del malware. ¿Cuál es la dirección IP a la que intentó conectarse?
58.64.204.181 -
Para determinar el origen geográfico del ataque, ¿qué ciudad está asociada con la dirección IP con la que se comunicó el malware?
Hong Kong -
Los hashes proporcionan un identificador único para los archivos, ayudando a detectar amenazas similares en diferentes máquinas. ¿Cuál es el hash SHA1 del ejecutable del malware?
280c9d36039f9432433893dee6126d72b9112ad2 -
Entender la línea de tiempo del desarrollo del malware puede ofrecer información sobre su despliegue. ¿Cuál es la marca de tiempo UTC de compilación del malware?
2019-12-01 08:36:04 -
Identificar los dominios involucrados con este malware ayuda a bloquear futuras comunicaciones maliciosas y a identificar posibles comunicaciones actuales con ese dominio en nuestra red. ¿Puedes proporcionar el dominio relacionado con el malware?
dnsnb8.net