Está en la página 1de 116

CURSO ONLINE DE

CIBERSEGURIDAD
Especialidad Análisis de Incidentes y
Forense

Taller 3
Unidad 5. Análisis forense

Unidad 5
Taller13
Contenidos

ANÁLISIS DE UN VOLCADO DE MEMORIA CON


1 3
VOLATILITY EN KALI LINUX

2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY 5

3 PLUGINS 17

4 SISTEMA OPERATIVO WINDOWS 20

5 OTROS SISTEMAS OPERATIVOS 43

ANÁLISIS DE UN VOLCADO DE MEMORIA


6 45
CON VOLATILITY

7 EJERCICIOS PRÁCTICOS 57

Duración total del taller: 2 horas Unidad 2


Actividad 1
ANÁLISIS DE UN
VOLCADO DE
MEMORIA CON
VOLATILITY EN KALI
1
LINUX

Unidad 2
3
Actividad 1
1
ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY EN
KALI LINUX
Volatility es uno de los framework más utilizados para la extracción de artefactos de memoria.

Para la realización de este taller, concretamente el apartado 6 «Análisis de un volcado de memoria con Volatility» los
alumnos tendrán que descargarse el archivo «memory_2.dmp» que encontrarán entre los recursos descargables de la
unidad.

Unidad 5
4
Taller 3
INSTALACIÓN Y
2
CONFIGURACIÓN
DE VOLATILITY
 2.1 Resolución de problemas o Trubleshooting

Unidad 2
5
Actividad 1
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• Para comenzar con la instalación, abre un terminal en la máquina de Kali Linux e introduce diferentes comandos
para instalar dependencias que serán necesarias por la herramienta: sudo apt install -y build-essential git
libdistorm3-dev yara libraw1394-11 libcapstone-dev capstone-tool tzdata

Ilustración 1: Comando de instalación de dependencias.

Unidad 5
6
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• A continuación, introduce el siguiente comando para instalar pip y python3 en el sistema, dado que la versión más
reciente de Volatility requiere Python 3 para funcionar correctamente: sudo apt install -y python3 python3-dev
libpython3-dev python3-pip python3-setuptools python3-wheel

Ilustración 2: Comando de instalación de pip y Python 3.

Unidad 5
7
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• Ahora es necesario instalar diferentes dependencias de Python3 que requiere Volatility para funcionar correctamente
utilizando el comando python3 -m pip install -U distorm3 yara pycrypto pillow openpyxl ujson pytz ipython
capstone

Ilustración 3: Comando de instalación de dependencias.

Unidad 5
8
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• Una vez instalados todos los requerimientos para Volatility, descarga e instala el propio programa con el siguiente
comando: python3 -m pip install -U git+https://github.com/volatilityfoundation/volatility3.git

Ilustración 4: Comando de descarga e instalación de Volatility.

Unidad 5
9
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• Crea un enlace simbólico del fichero libyara.so en el directorio «/usr/lib» de la siguiente forma: ln -s
/usr/local/lib/python3.10/dist-packages/usr/lib/libyara.so /usr/lib/libyara.so

Ilustración 5: Creación de un enlace simbólico.

Unidad 5
10
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY

• Una vez creado el vínculo, lanza el comando vol para verificar que Volatility está correctamente instalado. Si es así
saldrá de la siguiente forma:

Ilustración 6: Comando de comprobación.

En esta versión de Volatility para lanzar los comandos puede usarse tanto «volatility3» como «vol».

Unidad 5
11
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY
3.1 Resolución de problemas o Trubleshooting

Durante la ejecución de Volatility pueden faltar alguno de los componentes o dependencias necesarias para que alguno
de los módulos funcione correctamente.

• Para comprobar que Volatility esté completamente operativo lanza el comando vol -h

Ilustración 7: Comando de comprobación (I).


Unidad 5
12
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY
3.1 Resolución de problemas o Trubleshooting

Ilustración 8: Comando de comprobación (II).

Unidad 5
13
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY
3.1 Resolución de problemas o Trubleshooting

• Si en la parte final del comando aparece un mensaje como el que se muestra en la imagen, entonces tienes que
ejecutar el comando que aparece en la siguiente tabla para saber exactamente cuál es el causante del fallo: vol -vv

Ilustración 9: Mensaje de Volatility.

Unidad 5
14
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY
3.1 Resolución de problemas o Trubleshooting

Ilustración 10: Comando para comprobar el causante del fallo.

Unidad 5
15
Taller 3
2 INSTALACIÓN Y CONFIGURACIÓN DE VOLATILITY
3.1 Resolución de problemas o Trubleshooting

• En este caso, el problema es que la versión de yara instalada no es la correcta. Para solventar este error ejecuta el
siguiente comando para instalar correctamente Yara: pip3 install yara-python
• Es posible que sea necesario instalar alguna otra dependencia más. Para ello, ejecuta los siguientes comandos:

 pip3 install pycrypto


 pip3 install pefile
 pip3 install capstone

Unidad 5
16
Taller 3
3
PLUGINS

Unidad 2
17
Actividad 1
3 PLUGINS

Volatility es una herramienta que posee diferentes plugins. Se pueden entender como los módulos de Autopsy, estos
son lanzados contra la muestra de memoria para poder realizar la extracción de información y el análisis del volcado de
memoria.

• El comando de ayuda es interesante para poder visualizar las opciones disponibles de la herramienta, así como los
plugins que se pueden utilizar por defecto. Ejecuta los comandos:

 volatility3 -h
 volatility3 <plugin> -h

Unidad 5
18
Taller 3
3 PLUGINS

Ilustración 11: Comando de ayuda de plugins.

Unidad 5
19
Taller 3
4
SISTEMA OPERATIVO
WINDOWS

Unidad 2
20
Actividad 1
4 SISTEMA OPERATIVO WINDOWS

• El siguiente es plugin que proporciona información del sistema operativo:

 Imageinfo: muestra los detalles del sistema operativo y del Kernel de la muestra de memoria que se está
analizando con el comando volatility3 -f “/path/to/file” windows.info.Info

Ilustración 12: Comando imageinfo.


Unidad 5
21
Taller 3
4 SISTEMA OPERATIVO WINDOWS

• De los comandos que tiene Volatility, los


siguientes son de gran ayuda para
obtener información de los procesos del
sistema de la imagen de memoria que se
está analizando:

 pslist: enumera los procesos


presentes en la imagen.

Ejecuta el comando volatility3 -f


“/path/to/file”
windows.pslist.PsList

Ilustración 13: Comando pslist.

Unidad 5
22
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 psscan: busca procesos presentes


en la imagen.

Ejecuta el comando volatility3 -f


“/path/to/file”
windows.psscan.PsScan

Ilustración 14: Comando psscan.

Unidad 5
23
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 pstree: plugin para enumerar los


procesos en un árbol en función de
su ID de proceso principal.

Ejecuta el comando volatility3 -f


“/path/to/file”
windows.pstree.PsTree

Ilustración 15: Comando pstree.


Unidad 5
24
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 procDump: vuelca el contenido del archivo que se encuentra en caché de las muestras de memoria de Windows
a nuestro equipo. Ejecuta el comando volatility3 -f “/path/to/file” -o “/path/to/dir”
windows.Dumpfiles.DumpFiles [--pid <PID>]
 memDump: imprime el mapa de memoria, el cual muestra como está distribuida la memoria. Ejecuta el
comando volatility3 -f “/path/to/file” -o “/path/to/dir” windows.memmap.Memmap --Dump --pid <PID>

Ilustración 16: Comando memDump.


Unidad 5
25
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 handles: enumera los manejadores


o identificadores en memoria de los
procesos abiertos en Windows en el
momento de la captura de la imagen
que se está analizando. Ejecuta el
comando volatility3 -f “/path/to/file”
windows.handles.Handles [--pid
<PID>]

Ilustración 18: Comando handles (I).

Unidad 5
26
Taller 3
4 SISTEMA OPERATIVO WINDOWS

Ilustración 19: Comando handles (II).

Unidad 5
27
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 DLLs: enumera las


librerías/bibliotecas cargadas
en memoria. Ejecuta el
comando volatility3 -f
“/path/to/file”
windows.dlllist.DllList [
pid <PID>]

Ilustración 20: Comando DDLs.

Unidad 5
28
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 cmdline: enumera los


argumentos de la línea de
comandos del proceso con el
que ha sido ejecutado.
Ejecuta el comando
volatility3 -f “/path/to/file”
windows.cmdline.cmdline

Ilustración 21: Comando cmdline.


Unidad 5
29
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 priv: enumera los privilegios


que tiene cada proceso que
está en memoria. Ejecuta el
comando volatility3 -f
“/path/to/file” windows.priv

Ilustración 22: Comando priv.

Unidad 5
30
Taller 3
4 SISTEMA OPERATIVO WINDOWS

• También existen una serie de plugins que


permiten obtener información de red:

 Netscan: muestra las conexiones de


red del equipo, tanto pasadas como
actuales. Ejecuta el comando
volatility3 -f “/path/to/file”
windows.netscan.NetScan

Ilustración 23: Comando Netscan.


Unidad 5
31
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 Netstat: muestra las conexiones de


red presentes en memoria de
Windows. Ejecuta el comando
volatility3 -f “/path/to/file”
windows.netstat.NetStat

Ilustración 24: Comando Netstat.


Unidad 5
32
Taller 3
4 SISTEMA OPERATIVO WINDOWS

• Otros plugins permiten obtener información sobre registros:

 Hivelist: enumera las secciones de registro presentes en la memoria de Windows. Ejecuta el comando
volatility3 -f “/path/to/file” windows.registry.hivelist.HiveList

Ilustración 25: Comando Hivelist.

Unidad 5
33
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 Hivescan: busca evidencias del registro


presentes en la memoria de Windows.
Ejecuta el comando volatility3 -f
“/path/to/file”
windows.registry.hivescan.HiveScan

Ilustración 26: Comando Hivescan.

Unidad 5
34
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 Printkey: enumera las claves de registro bajo un hive o un valor de clave específico. Ejecuta los comandos:

• volatility3 -f “/path/to/file” windows.registry.printkey.PrintKey

• volatility3 -f “/path/to/file” windows.registry.printkey.PrintKey key


“Software\Microsoft\Windows\CurrentVersion”

Unidad 5
35
Taller 3
4 SISTEMA OPERATIVO WINDOWS

Ilustración 27: Comando Printkey.


Unidad 5
36
Taller 3
4 SISTEMA OPERATIVO WINDOWS

• También existen plugins que aportan


información sobre ficheros:

 Filescan: escanea en busca de


objetos de archivo presentes en la
memoria de Windows. Un objeto de
archivo o file object tiene los datos del
archivo y los atributos mantenidos por
el kernel. Ejecuta el comando
volatility3 -f “/path/to/file”
windows.filescan.FileScan

Ilustración 28: Comando Filescan.

Unidad 5
37
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 FileDump: vuelca el contenido del archivo en caché de las muestras en la memoria de Windows. Ejecuta los
comandos:

• volatility3 -f “/path/to/file” -o “/path/to/dir” windows.Dumpfiles.DumpFiles


• volatility3 -f “/path/to/file” -o “/path/to/dir” windows.Dumpfiles.DumpFiles --virtaddr <offset>
• volatility3 -f “/path/to/file” -o “/path/to/dir” windows.Dumpfiles.DumpFiles --physaddr <offset>

Unidad 5
38
Taller 3
4 SISTEMA OPERATIVO WINDOWS

Ilustración 29: Comando FileDump.

Unidad 5
39
Taller 3
4 SISTEMA OPERATIVO WINDOWS

• Por último, también hay otros plugins


interesantes:

 Malfind: enumera los segmentos de


memoria que potencialmente contienen
código inyectado, es decir es un plugin que
permite localizar archivos DLLs ocultos en las
herramientas estándar. Ejecuta el comando
volatility3 -f “/path/to/file”
windows.malfind.Malfind

Ilustración 30: Comando Malfind.


Unidad 5
40
Taller 3
4 SISTEMA OPERATIVO WINDOWS

 Yarascan: escanea la memoria del kernel


utilizando las reglas de yara (cadena o
archivo). Ejecuta los comandos:

• volatility3 -f “/path/to/file”
windows.vadyarascan.VadYaraScan
yara-file “/path/to/file.yar”

• volatility3 -f “/path/to/file”
yarascan.YaraScan yara-file
“/path/to/file.yar”

Ilustración 31: Comando Yarascan.


Unidad 5
41
Taller 3
4 SISTEMA OPERATIVO WINDOWS

Ilustración 32:
Comando Yarascan.

Unidad 5
42
Taller 3
5
OTROS SISTEMAS
OPERATIVOS

Unidad 2
43
Actividad 1
5 OTROS SISTEMAS OPERATIVOS

Además del sistema operativo anterior, la herramienta también ofrece plugins para otros sistemas operativos, como
Linux y Mac.

Unidad 5
44
Taller 3
6
ANÁLISIS DE UN
VOLCADO DE
MEMORIA CON
VOLATILITY

Unidad 2
45
Actividad 1
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Para comenzar con el análisis de un volcado de memoria con Volatility en primer lugar debes descargarte la muestra
que va a ser objeto de análisis: «memory_2.dmp». Puedes guardarla en la ruta de tu preferencia, en nuestro caso
la guardamos en la carpeta de descargas, en la siguiente ruta «/home/alumno/Descargas».
• Abre un terminal dentro de la carpeta en la que se encuentra la muestra que vas a analizar. Haz clic derecho con el
ratón en la carpeta y pulsa «abrir terminal». Tras esto, lanza los siguientes comandos y analiza los resultados.

• Lanza el plugin de «.info» para que se presente con la información relevante al sistema operativo al que pertenece
la memoria, así sabrás qué plugins lanzar.

Unidad 5
46
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

Ilustración 33: Información de plugins.

Unidad 5
47
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• En este caso, la máquina es Windows por lo que puedes utilizar todos los plugins de los que dispone Windows.
Ahora, para poder observar los procesos que están siendo ejecutados, lanza los plugins «psscan», «pslist» o
«pstree».

Ilustración 34: Comando pslist.

Unidad 5
48
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Otro dato importante que mostrarán estos comandos son los PID y PPID, que son los ID de los procesos. Esto será
útil para revisar la jerarquía de procesos y detectar anomalías.

 El PID es el ID del proceso que se está ejecutando.


 El PPID es el ID del proceso padre que lo ha ejecutado.
• Por ejemplo, como puedes observar en la imagen de la diapositiva anterior varios procesos tienen como proceso
padre el 616 y si deseas saber a qué proceso se corresponde este PID lanza el comando pslist de la siguiente
forma, así solo se mostrará el proceso que tiene como ID el especificado incluyendo el proceso padre del mismo.

Ilustración 35: Comando pslist.

Unidad 5
49
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Entre los procesos que estaban en ejecución, puedes observar uno que destaca entre todos debido a que su nombre
no es común. También podemos observar que se ejecuta dos veces este proceso siendo la segunda ejecución del
proceso ejecutado por el primer proceso lo que lo hace aún más sospechoso:

Ilustración 37: Proceso destacado.

Unidad 5
50
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Ahora lanzaremos el comando pslist con el pid del padre del proceso para averiguar quien ha ejecutado el proceso
sospechoso.

Ilustración 38: Comando pslist del padre.

• Puedes observar que el archivo fue lanzado desde el explorador, lo cual descartaría una ejecución por el sistema e
indicaría que posiblemente se haya realizado por un usuario.

Unidad 5
51
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Continuando con el análisis, realiza un dump del proceso para poder analizarlo con otras herramientas externas.

Ilustración 39: Comando dump.

• Una vez extraído el volcado del proceso, puedes utilizar el comando String para ver las cadenas de texto y poder
observar cadenas sospechosas.

Ilustración 40: Comando string.

Unidad 5
52
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• También puedes analizar el volcado de memoria del proceso con un antivirus. Por ejemplo, puedes descargar el
antivirus gratuito Clamav. Para instalarlo, ejecuta el comando apt-get install clamav

Ilustración 41: Comando de instalación de Clamav.

Unidad 5
53
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• A continuación, actualiza las firmas de Clamav antes de ejecutarlo utilizando el comando freshclam

Ilustración 44: Comando freshclam.

Unidad 5
54
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

• Tras instalarlo pasa el archivo que has extraído del proceso malicioso de la siguiente forma. El antivirus, tras
analizarlo, proporcionará los resultados. Ejecuta el comando clamscan pid.884.0x6000.dmp

Ilustración 45: Comando Clamscan.

Unidad 5
55
Taller 3
6 ANÁLISIS DE UN VOLCADO DE MEMORIA CON VOLATILITY

Como vemos el antivirus lo ha detectado como malware, «Infected files:1», por tanto, podemos llegar a la conclusión de
que, tras realizar una revisión del volcado de memoria, se han encontrado trazas de un troyano en el archivo
«KeywordSRC.exe» que se estaba ejecutando en el equipo en el momento de la extracción.

Unidad 5
56
Taller 3
EJERCICIOS
PRÁCTICOS
7
 7.1 Enunciado ejercicio práctico 1
 7.2 Solución ejercicio práctico 1
 7.3 Enunciado ejercicio práctico 2
 7.4 Solución ejercicio práctico 2
 7.5 Enunciado ejercicio práctico 3
 7.6 Solución ejercicio práctico 3
 7.7 Enunciado ejercicio práctico 4
 7.8 Solución ejercicio práctico 4

Unidad 2
57
Actividad 1
7 EJERCICIOS PRÁCTICOS
7.1 Enunciado ejercicio práctico 1

• Dada la muestra de memoria «Muestra_1.raw», realizar un análisis con


Volatility para determinar si se ha realizado alguna ejecución maliciosa en
el equipo.
• Si es el caso, determinar el proceso que ha realizado la actividad maliciosa
y aportar pruebas de ello.

Unidad 5
58
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Primero, lanza el comando pslist para comprobar los procesos en ejecución dentro de la muestra de memoria.

Ilustración 46: Comando pslist.

Unidad 5
59
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• A primera vista, observa que la gran mayoría


de los procesos son propios de un sistema
Windows. Sin embargo, aparece la siguiente
anomalía:

Ilustración 47: Anomalía en los procesos.

Unidad 5
60
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Uno de los procesos «svchost» difiere del


resto por su nombre, en vez de ser
«svchost.exe» es «svchost.com». Además,
también difieren su proceso padre. Esto lo
puedes observar mejor si filtras por
«svchost» haciendo uso del comando grep
de la forma que aparece en la imagen:

Ilustración 48: Filtro por svchost.

Unidad 5
61
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Lo siguiente que conviene comprobar es el proceso padre para saber de dónde ha salido este proceso sospechoso.
El proceso «svchost.exe» normal, suele tener como padre al proceso «service.exe» que en este caso tiene como
PID 596. Puedes comprobarlo lanzando el siguiente comando:

Ilustración 49: Comprobación del proceso padre.

Unidad 5
62
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• En cambio, el proceso «svchost.com» el PID de su padre es el 2880 que, si ejecutas el siguiente comando, verás
que corresponde a «explorer.exe», esto quiere decir, que ha sido ejecutado desde el explorador de archivos.

Ilustración 50: Análisis del proceso padre.

Unidad 5
63
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Para realizar una investigación más en profundidad de «svchost.com», extrae un dump de él mediante el siguiente
comando:

Ilustración 51: Comando para extraer un dump.

Unidad 5
64
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Ahora puedes analizar las cadenas de texto que contiene con la herramienta Strings con el siguiente comando:

Ilustración 52: Comando strings.

• Entre las diferentes cadenas, algunas son sospechosas. Estas cadenas informan de que proceso que hemos
identificado como sospechoso realiza la descarga de contenido malicioso mediante las siguiente URLs usando el
comando wget:

Ilustración 53: Cadenas sospechosas con comando wget.

Unidad 5
65
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Si analizas estas dos direcciones IP en VirusTotal, observas que algunos fabricantes de antivirus las relacionan con
actividades y ficheros maliciosos.

Ilustración 54: Análisis de las URL con VirusTotal (I).

Unidad 5
66
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

Ilustración 55: Análisis de las URL con VirusTotal (II).

Unidad 5
67
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Por último, de manera adicional, lanza el módulo de privileges para revisar los privilegios que se ha asignado el
proceso del sistema.

Ilustración 56: Módulo privileges para revisión de privilegios.

Unidad 5
68
Taller 3
7 EJERCICIOS PRÁCTICOS
7.2 Solución ejercicio práctico 1

• Algunos de los privilegios que podemos ver que se han asignado al proceso, entre muchos otros, son:

 SeSecurityPrivilege, que permite administrar el registro de auditoría y seguridad.


 SeBackupPrivilege, que le permite hacer copias de seguridad de archivos y directorios.
 SeAuditPrivilege, que le permite generar auditorías de seguridad.
 SeImpersonatePrivilege, que le permite suplantar un cliente después de la autenticación.
 SeTrustedCredManAccessPrivilege, que le permite acceder al administrador de credenciales como una
persona de confianza. Siendo este un privilegio que únicamente se asigna al servicio Winlogon ya que de otra
manera las credenciales de los usuarios pueden verse comprometidas.

Tras el análisis del volcado de memoria, se ha identificado que el proceso «svchost.com» es malicioso y que, por tanto,
el equipo ha sido comprometido.

Unidad 5
69
Taller 3
7 EJERCICIOS PRÁCTICOS
7.3 Enunciado ejercicio práctico 2

• Dada la muestra de memoria «Muestra_2.raw», realizar un análisis con


Volatility para determinar si se ha realizado alguna ejecución maliciosa en
el equipo.
• Si es el caso, determinar el proceso que ha realizado la actividad maliciosa
y aportar pruebas de ello.

Unidad 5
70
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Primero, con el comando psscan puedes observar los procesos en ejecución durante la captura de memoria.

Ilustración 57: Comando psscan.


Unidad 5
71
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Entre los procesos puedes observar dos que destaca entre el resto por tener un nombre sospechoso compuesto por
números en lugar de tener un texto mínimamente descriptivo de qué hace. Los PIDs de ambos son 1032 y 1852 y el
PID del proceso padre es el mismo, 2836. En nuestro caso empezamos analizando el proceso 1852.

Ilustración 58: Proceso con nombre sospechoso.

Unidad 5
72
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Ahora, comprueba quién es el proceso padre. En este caso es el correspondiente con el ID 2836.

Ilustración 59: Proceso padre del ID 2836.

• El proceso que lo ha lanzado ha sido «explorer», es decir, que ha sido ejecutado posiblemente por un usuario.

Unidad 5
73
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Ahora, lanza el plugin de cmdline para ver los parámetros con los que se ha lanzado el comando de ejecución del
archivo:

Ilustración 60: Comando cmdline.


Unidad 5
74
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• En el listado, puedes observar uno que se encarga de lanzar el proceso sospechoso. También podemos identificar
que los procesos 1032 y 1832 que hemos identificado anteriormente pertenecen al mismo ejecutable.

Ilustración 61: Comando que se encarga de lanzar el proceso sospechoso.

Unidad 5
75
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Esto evidencia que el ejecutable fue


lanzado desde la carpeta de descargas
del usuario «Stude» desde una carpeta
llamada «League of legends».
Seguramente el usuario se lo descargó y
ejecutó pensando que se trataba de un
juego legítimo.
• Ahora, con el plugin «privileges» puedes
revisar los privilegios que se asignan a
cada proceso. Ilustración 62: Revisión de privilegios de los procesos.

Unidad 5
76
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

• Si continúas bajando por la salida del


comando hasta encontrar el proceso 3812
puedes observar la cantidad de privilegios
que se han asignado al mismo.

Ilustración 63: Privilegios concedidos al proceso sospechoso.

Unidad 5
77
Taller 3
7 EJERCICIOS PRÁCTICOS
7.4 Solución ejercicio práctico 2

Tras el análisis de memoria, se puede concluir que has encontrado un proceso sospechoso que está asociado a un
ejecutable que se encuentra en la carpeta de descargas del usuario «Stude», en el subdirectorio «League of legends».

A fin de confirmar la infección del equipo y que efectivamente este proceso es malicioso, se debería proceder a la
extracción y análisis del archivo del equipo analizado.

Unidad 5
78
Taller 3
7 EJERCICIOS PRÁCTICOS
7.5 Enunciado ejercicio práctico 3

• Dada la muestra de memoria «Muestra_3.raw», realizar un análisis con


Volatility para determinar si se ha realizado alguna ejecución maliciosa en
el equipo.
• Si es el caso, determinar el proceso que ha realizado la actividad maliciosa
y aportar pruebas de ello.

Unidad 5
79
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Lanza uno de los comandos que saquen los procesos en ejecución en el volcado de memoria «pslist», «psscan» o
«pstree».

Ilustración 64: Comando pslist.

Unidad 5
80
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• A simple vista no se observa ningún proceso con un


nombre sospechoso. Sin embargo, si te fijas, uno de
los procesos «msedge.exe» tiene un proceso padre
diferente al del resto.

Ilustración 65: Proceso sospechoso.

Unidad 5
81
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Algunos procesos de «msedge.exe» tienen procesos padres diferentes, pero esto lo puedes ver mejor si lanzamos
el módulo «pstree».

Ilustración 66: Comando pstree.

Unidad 5
82
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• En la imagen de la diapositiva anterior puedes observar que el proceso padre del proceso 6032 y de los procesos
2416 es el explorador de archivos. Esto es normal, dado que para acceder al navegador se hace desde el
explorador.

• Por otro lado, si te fijas en los procesos hijos, observa que el proceso «msedge.exe» con el PID 2416 a su vez crea
subprocesos «msedge.exe», lo cual es normal, dado que durante la navegación se realizan nuevas búsquedas o se
abren nuevas pestañas lo cual crea nuevos procesos. Sin embargo, el proceso 6032 tiene como proceso hijo
«powershell.exe», lo cual es bastante sospechoso, por lo que vamos a investigarlo con mayor detalle.

Unidad 5
83
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

Ilustración 67: Comando netscan.

Unidad 5
84
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Puedes observar que, aunque hay varias comunicaciones realizadas desde «msedge.exe» ninguna se corresponde
con el proceso sospechoso (PID: 6032).
• Ahora, extrae un dump del proceso para realizar un análisis más en profundidad con el siguiente comando:

Ilustración 68: Comando para extraer un dump.

Unidad 5
85
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Observas que el volcado no se ha podido realizar de manera correcta. Por ello, intenta obtenerlo de otra forma:

Ilustración 69: Comando alternativo para extraer un dump.

Unidad 5
86
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Con este segundo método, has conseguido extraer el volcado de memoria del proceso. A continuación, haz uso de
la herramienta Strings para ver las cadenas de texto que contiene y, además, concatena el comando grep para
filtrar todas las cadenas que contengan la palabra «http» para buscar posibles conexiones a Internet.

Ilustración 70: Comando strings concatenado al comando grep.

Unidad 5
87
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• En la siguiente imagen, se muestran los resultados de la ejecución del comando anterior en las que puedes ver que
hay una URL muy sospechosa:

Ilustración 71: URL sospechosa.

Unidad 5
88
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

• Si analizas esta URL, por ejemplo, en VirusTotal,


ves que, aunque la descarga del fichero da un
error de servidor (como puede verse en «Status»
que da error 503), la URL está asociada a
malware/spyware y resuelve con un dominio de
Rusia («.ru»).

Ilustración 72: Análisis de URL sospechosa por


VirusTotal.

Unidad 5
89
Taller 3
7 EJERCICIOS PRÁCTICOS
7.6 Solución ejercicio práctico 3

Como conclusión, tras el análisis del volcado de memoria, has identificado un proceso «msedge.exe» que tiene un
proceso hijo «prowershell.exe», lo cual es sospechoso.

Tras revisar más en profundidad el proceso, se ha encontrado que contiene una URL sospechosa asociada a un
dominio de Rusia («.ru») y que contiene malware / spyware.

Unidad 5
90
Taller 3
7 EJERCICIOS PRÁCTICOS
7.7 Enunciado ejercicio práctico 4

• Dada la muestra de memoria «Muestra_4.raw», realizar un análisis con


Volatility para determinar si se ha realizado alguna ejecución maliciosa en
el equipo.
• Si es el caso, determinar el proceso que ha realizado la actividad maliciosa
y aportar pruebas de ello.

Unidad 5
91
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• El primer paso a la hora de analizar un volcado de


memoria es identificar los procesos que se
encuentran almacenados en el volcado. Para ello,
utiliza el plugin pslist.

Ilustración 73: Comando pslist para identificar los procesos.


Unidad 5
92
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 74: Comando pslist para identificar los procesos.

Unidad 5
93
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 75: Proceso sospecho.

Unidad 5
94
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• De todos los procesos, llama la atención el proceso


llamado «Factura.exe» y cuyo PID es 5364.
• Aunque con este plugin también es posible conocer
el identificador del proceso padre de «Factura.exe»
se va a utilizar el plugin pstree que permite ver la
jerarquía de los procesos ejecutados y, por tanto,
permite observar visualmente el proceso padre de
cada proceso en ejecución.

Ilustración 76: Comando pstree para


visualizar los procesos padre.

Unidad 5
95
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 77: Proceso sospechoso.

Unidad 5
96
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Si revisas el árbol de procesos marcado en rojo en la imagen anterior, ves que el proceso «Factura.exe» es un
proceso hijo de otro proceso llamado «explorer.exe», y que, además, tiene como hijo el proceso «netsh.exe». Netsh
es una utilidad de scripting de línea de comandos que permite mostrar y modificar la configuración de red de un
equipo, lo cual parece sospechoso.

• A continuación, utiliza el plugin dlllist para consultar las bibliotecas dinámicas asociadas al proceso sospechoso
identificado anteriormente. Para este plugin es necesario conocer el PID del proceso que se ha obtenido en pasos
anteriores.

Ilustración 78: Comando dlllist.

Unidad 5
97
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Como puedes observar, este plugin no proporciona ninguna información, es decir, el proceso no está vinculado a
ninguna biblioteca dinámica.
• Siguiendo con el análisis, comprueba los ficheros relacionados con el proceso sospechoso. Analizar los objetos de
exclusión mutua asociados a ese proceso. Un objeto de exclusión mutua impide que dos procesos escriban en
memoria al mismo tiempo y, además, sirve como indicador de que el sistema ya ha sido infectado evitando así su
reinfección para ahorrar recursos y permitir el avance del malware. Para analizar la existencia de un posible objeto
de exclusión mutua relacionado con el proceso sospechoso anteriormente identificado se utiliza el plugin handles y
especifícalo con el comando grep. Esto hará que se muestren únicamente aquellas líneas que contengan la palabra
«Mutant» (así se les llama a los objetos de exclusión mutua en Windows).

Unidad 5
98
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 79: Comando para analizar los objetos de exclusión mutua.

• Observa un objeto tipo mutex asociado al proceso sospechoso con el nombre


«482887cdfb93fbc01176d9593d0ebb63». Este es el mutex que crea un troyano conocido como «Bladabindi». La
creación del mutex por parte del malware permite evitar reinfecciones, una actividad usual en malwares.

Unidad 5
99
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Otra característica de la mayoría de los


programas maliciosos es la persistencia en
el inicio, es decir, que el malware
permanezca y se inicie al reiniciar el
equipo. Para comprobar la persistencia del
malware en el análisis con Volatility se
utiliza el plugin registry.printkey que
muestra las claves de registro y, además,
con el parámetro «--key» permite
especificar la clave de registro que se
quiere consultar. Ilustración 80: Comando para mostrar las claves de registro.

Unidad 5
100
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Tras ejecutar este plugin y analizar sus salidas no se observa nada fuera de lo común. De forma más específica, se
han buscado las siguientes claves de registro, también llamadas keys en Volatility:

 Software\Microsoft\Windows\CurrentVersion\Run
 Software\Microsoft\Windows\CurrentVersion\RunOnce

Estas claves se utilizan para la ejecución de un programa al inicio de la sesión del usuario en el equipo.

Unidad 5
101
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 81: Claves para ejecutar un programa al inicio de la sesión (I).

Unidad 5
102
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 82: Claves para ejecutar un programa al inicio de la sesión (II).

Unidad 5
103
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Después de analizar los resultados, en ninguna se observan anomalías ni nada sospechoso.


• Otra forma de conseguir persistencia en el inicio es agregar el malware a la carpeta de inicio del usuario o del
sistema. La dirección de esta carpeta para un usuario específico es:

 C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup.

• Para observar el contenido de esta carpeta en el análisis con Volatility se puede utilizar el plugin filescan seguido del
comando grep y especificando la cadena Startup. Este plugin escanea todos los ficheros del volcado de memoria y
con el comendo grep se mostrarán aquellos que en su ruta o en su nombre tengan la palabra «Startup».

Ilustración 83: Comando de análisis filescan para buscar la palabra Startup.

Unidad 5
104
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• En la carpeta de inicio de Windows para el usuario «Stude» se encuentra un archivo llamado


«482887cdfb93fbc01176d9593d0ebb63.exe», nombre idéntico al objeto mutex asociado al proceso sospechoso,
«Factura.exe», que se mostraba al principio del análisis.
• Utilizando el mismo comando puedes buscar todos aquellos archivos que tengan el nombre
«482887cdfb93fbc01176d9593d0ebb63» o relacionado con este.

Ilustración 84: Comando de análisis filescan para buscar el nombre de archivo (I).

Unidad 5
105
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Como se puede apreciar, no aparece ningún otro archivo con el mismo nombre en otra carpeta. Haz el mismo
proceso anterior, pero con el nombre del proceso sospechoso inicial «Factura.exe».

Ilustración 85: Comando de análisis filescan para buscar el nombre de archivo (II).

Unidad 5
106
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• A continuación, se va a analizar información de red, para lo que utiliza los plugins netscan y netstat

Ilustración 86: Análisis de información de red a través de netscan.

Unidad 5
107
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 87: Proceso sospechoso.

Unidad 5
108
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• En la salida de ambos plugins se puede


observar el proceso sospechoso inicial,
«Factura.exe» (PID 5364). Por lo que puede
extraerse de esta información, se produjo una
comunicación con la IP 146.112.61.104. Sin
embargo, el estado de la conexión indica que
está esperando respuesta del servidor.
• Para tratar de obtener más información,
procedemos a revisar la dirección IP en Ilustración 88: Análisis de IP en VirusTotal.
VirusTotal:

Unidad 5
109
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Ninguno de los analizadores de VirusTotal ha


calificado la IP como maliciosa, a excepción de
algunos comentarios de la comunidad. Está IP está
relacionada con OPENDNS, un servidor DNS
gratuito y abierto.
• Otro plugin que se puede utilizar para el análisis con
Volatility es cmdline. Este plugin proporciona los
comandos lanzados, en específico muestra tres
columnas: ID del proceso, nombre del proceso y
argumento.
Ilustración 89: Análisis con comando cmdline.

Unidad 5
110
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 90: Proceso sospechoso (I).

Unidad 5
111
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

Ilustración 91: Proceso sospechoso (II).

Unidad 5
112
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• En este caso, fijamos en el proceso sospechoso inicial, «Factura.exe». Como puede apreciarse, la salida del plugin
indica que probablemente, debido a falta de memoria en el equipo, no se pudo ejecutar. Además, si observas el
proceso siguiente, que ya se ha identificado como el proceso hijo de «Factura.exe» muestra un error por cierre del
proceso padre.
• Si buscas el proceso padre de «Factura.exe», que se ha identificado como «explorer.exe», se observa el argumento
/LOADSAVEDWINDOWS, que se trata del proceso principal al utilizar explorer.exe.

Unidad 5
113
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Para finalizar el análisis, otro plugin importante que ofrece Volatility es el plugin malfind. Este plugin ayuda a buscar
código oculto o inyectado en el espacio de memoria del usuario. En definitiva, permite buscar indicadores maliciosos
en los procesos que se encuentran en memoria.

Ilustración 92: Comando malfind para extraer proceso sospechoso.

Unidad 5
114
Taller 3
7 EJERCICIOS PRÁCTICOS
7.8 Solución ejercicio práctico 4

• Como puede observarse en la imagen de la diapositiva anterior, se encuentra el proceso sospechoso inicial
«Factura.exe».

Tras el análisis del volcado de memoria, has encontrado trazas de código malicioso, concretamente asociado al proceso
«Factura.exe» que se encuentra en ejecución. También has podido verificar que el malware ha ganado persistencia al
copiarse en la carpeta de inicio e Windows del usuario «Stude», lo que le permite ejecutarse al inicio de sesión del
usuario.

Unidad 5
115
Taller 3
¡GRACIAS!

Unidad 5
Taller
1163

También podría gustarte