COMANDOS
Comandos de Volatility
Instalación y configuración paso a paso
-
Descarga de Volatility: Visita la [página de GitHub de Volatility]{.underline} y descarga la última versión.
-
Instalación de Python: Asegúrate de tener Python 2.7.x instalado en tu sistema, ya que Volatility es compatible con esta versión.
-
Instalación de dependencias: Ejecuta el siguiente comando para instalar las bibliotecas necesarias:
-
comando:: pip install -r requirements.txt
-
Configuración de plugin:** Algunos plugins pueden requerir bibliotecas adicionales. Verifica que todos los plugins necesarios estén instalados.
-
Verificación de la instalación: Ejecuta el siguiente comando para verificar que Volatility se ha instalado correctamente:
comando:: python vol.py -h
Uso avanzado y opciones más utilizadas
Volatility ofrece una amplia variedad de opciones a través de sus plugins. A continuación se describen algunas de las más utilizadas:
- Volcar procesos: Para listar los procesos en ejecución, utiliza el plugin pslist de la siguiente manera:
comando:: python vol.py -f —profile= pslistConexiones de red: Para obtener detalles sobre las conexiones de red:
comando:: python vol.py -f —profile= netscanInfecciones y malware: Utiliza el plugin malfind para buscar indicios de malware:
comando:: python vol.py -f —profile= malfindControl de módulos cargados: Para analizar los módulos duros [kernel] cargados:
comando:: python vol.py -f —profile= modulesInformación del sistema: Para obtener un resumen del sistema:
comando:: python vol.py -f —profile= info
Casos de uso reales en entornos profesionales
Volatility se ha utilizado en una variedad de escenarios en el ámbito profesional:
-
Investigación de incidentes: Tras un ataque, los analistas forenses utilizan Volatility para recuperar información crítica que puede ayudar en la identificación del ataque y el atacante.
-
Defensa activa: En entornos de alta seguridad, se utiliza Volatility para monitorear la salud general del sistema y detectar actividad anómala.
-
Entrenamiento y educación: Las instituciones educativas utilizan Volatility para enseñar a los estudiantes los principios de análisis forense y ciberseguridad.
Errores comunes
Al utilizar Volatility, es importante conocer algunos errores comunes que pueden surgir:
-
Problemas de perfil: Si no estás usando el perfil correcto, podrías obtener resultados erróneos. Asegúrate de identificar correctamente el perfil con el comando imageinfo.
-
python vol.py -f imageinfo
Falta de permisos: Algunos comandos requieren privilegios de administrador. Ejecuta los comandos con el nivel de acceso necesario para evitar errores.
- Archivos corruptos: Asegúrate de que el archivo de volcado no está corrupto, ya que esto puede causar fallos en el análisis.
Checklist final
Antes de realizar un análisis de volcado de memoria con Volatility, verifica que cumplas con los siguientes puntos:
-
Tienes un volcado de memoria completo y no corrupto.
-
Has determinado el perfil correcto del sistema que estás analizando.
-
Tienes las herramientas y dependencias necesarias instaladas y actualizadas.
-
Has revisado los plugins relevantes y sus funcionalidades.
-
Estás preparado para manejar los resultados y realizar un análisis profundo.
El error “pip” no se reconoce ocurre porque, aunque tienes el entorno virtual creado (la carpeta venv que aparece en tu dir), no está activado en esta nueva sesión de la terminal.
Para que Windows reconozca pip y python dentro de la carpeta de Volatility, sigue estos pasos exactos:
1. Activa el entorno virtual
Copia y pega este comando en tu terminal:
comando:: .\venv\Scripts\activate
Sabrás que funcionó porque verás un (venv) al principio de la línea de comandos.
2. Instala las dependencias (Ahora sí funcionará)
Una vez activado, ejecuta el comando que te daba error:
comando:: pip install pefile capstone yara-python pycryptodome jsonschema
3. Analiza el archivo correcto (MemoryDump.mem)
Tu archivo está dentro de la misma carpeta que el programa, así que los comandos son mucho más cortos. Basándonos en tu checklist de comandos, aquí tienes cómo ejecutarlos para este archivo:
Para identificar el sistema:
comando:: python vol.py -f MemoryDump.mem windows.info
Para listar procesos (el pslist de tu guía):
comando:: python vol.py -f MemoryDump.mem windows.pslist
Para ver conexiones de red (el netscan de tu guía):
comando:: python vol.py -f MemoryDump.mem windows.netscan
Tu documento dice: “Estás preparado para manejar los resultados y realizar un análisis profundo”. Para completar ese análisis profundo, te sugiero estos dos pasos finales:
A. Extraer el archivo sospechoso para analizarlo: Vamos a sacar ese oneetx.exe de la memoria a tu disco para que puedas ver qué es:
comando:: python vol.py -f MemoryDump.mem -o . windows.dumpfiles —pid 5896
B. Ver qué comandos se escribieron en la terminal: Como en tu lista de procesos aparece un usuario activo, podrías ver si dejó rastro en la consola:
comando:: python vol.py -f MemoryDump.mem windows.cmdline
Conclusión preliminar: El sistema parece estar infectado por un troyano ejecutándose desde la carpeta Temp del usuario “Tammam”, el cual mantiene conexiones activas hacia IPs externas mediante un túnel socks.
¿Quieres que te ayude a extraer alguno de estos archivos sospechosos para analizarlos más a fondo?
Diagnóstico Final (Siguiendo tu Checklist)
Tu documento dice: “Control de módulos cargados… Infecciones y malware”. Cumplamos los últimos puntos de tu guía:
¿Qué es lo que está pasando? Estamos ante una infección activa. El proceso oneetx.exe es el responsable. Se comunica con el exterior (visto en netscan) y utiliza a rundll32.exe para mantener persistencia o ejecutar módulos adicionales en memoria.
Siguientes pasos recomendados para cerrar tu práctica:
Ver qué archivos tocaba el malware: Ya que tienes el PID del malware (5896), mira qué archivos tenía abiertos (ficheros de configuración, logs de robo de datos, etc.):\
comando:: PowerShell comando:: python vol.py -f MemoryDump.mem windows.handles —pid 5896
Ver si hay algo en el portapapeles: A veces los atacantes copian
contraseñas o comandos. Dado que el sistema estaba activo, prueba:
comando:: PowerShell
comando:: python vol.py -f MemoryDump.mem windows.registry.userassist
- (Esto te dirá qué programas ejecutó el usuario “Tammam” recientemente y cuántas veces).
Parece que el malware está intentando ser esquivo. Que el comando handles no devuelva nada para el PID 5896 y que userassist de errores de acceso a las celdas del registro son señales típicas de un sistema donde el malware podría estar usando técnicas de protección o donde las estructuras de memoria están ligeramente desalineadas.
Sin embargo, no nos detendremos aquí. Vamos a usar un enfoque más agresivo basado en tu guía de COMANDOS, específicamente en la sección de “Infecciones y malware” y “Control de módulos”.
Aquí tienes los pasos para romper el bloqueo:
1. ¿Qué está ocultando el proceso? (VAD Info)
Si handles no muestra archivos, es posible que el proceso esté trabajando directamente en secciones de memoria (VAD). Esto nos dirá si hay DLLs ocultas o archivos mapeados que no aparecen como “tiradores” (handles) normales.
comando:: python vol.py -f MemoryDump.mem windows.vadinfo —pid 5896
2. Buscar mutantes (Mutex)
Muchos malwares usan un “Mutante” o “Mutex” para asegurarse de que solo hay una copia de ellos ejecutándose. Esto es oro puro para la identificación (IOC). Vamos a listar todos los del sistema y buscamos los de nuestro sospechoso:
comando:: python vol.py -f MemoryDump.mem windows.mutantscan
(Busca en la lista nombres de procesos o cadenas aleatorias cerca de los PIDs 5896 o 5480).
3. Evidencia en el Registro (Alternativa a UserAssist)
Ya que userassist dio un error de estructura (posiblemente por la versión específica de Windows 10), vamos a intentar listar las colmenas (hives) manualmente para ver si podemos leer las claves de ejecución automática (Run keys), que es donde el malware suele esconderse para sobrevivir a un reinicio.
Primero, listamos las colmenas para obtener las direcciones:
comando:: python vol.py -f MemoryDump.mem windows.registry.hivelist
4. El rastro del Portapapeles
Mencionaste antes que querías ver si había algo interceptado. Volatility 3 tiene un plugin específico para ver qué había copiado el usuario en el momento del volcado:
comando:: python vol.py -f MemoryDump.mem windows.registry.printkey —key “Software\Microsoft\Windows\CurrentVersion\Run”
Análisis de los errores que recibiste:
-
Handles vacío: Significa que el proceso oneetx.exe puede haber cerrado sus descriptores de archivo tras cargarse en memoria, o que es un proceso “zombie” que Volatility detecta pero cuyas estructuras de objetos ya han sido liberadas por el kernel.
-
Error en UserAssist: El mensaje Encountered _CELL_DATA instead of _CM_KEY_NODE indica que la tabla de símbolos (PDB) tiene una pequeña discrepancia con la estructura real del registro en esta compilación de Windows 10. Es un error técnico del plugin, no de tu instalación.
Mi recomendación: Lanza el windows.mutantscan. Si encontramos el Mutex de oneetx.exe, tendremos una prueba irrefutable para crear una regla de detección (IOC).
¿Te parece si probamos el mutantscan?
Ejecución de MutantScan
Este comando es vital para identificar “objetos de exclusión mutua”. El malware suele usarlos para no infectar la máquina dos veces. Busca nombres extraños o aleatorios asociados a los PIDs del malware que ya identificamos (5896 o 5480).
comando:: python vol.py -f MemoryDump.mem windows.mutantscan
3. Ejecución de YARA Scan (Ahora que lo tenemos)
Como sospechamos de oneetx.exe y tun2socks.exe, vamos a pedirle a Volatility que use YARA para buscar anomalías en todo el volcado. Si no tienes un archivo de reglas .yar a mano, puedes usar el plugin para buscar cadenas de texto sospechosas en la memoria:
Escaneo general de firmas de malware en procesos sospechosos:
comando:: python vol.py -f MemoryDump.mem windows.vadyarascan —pid 5896
4. Control de Módulos (Siguiendo tu Checklist)
En tu documento de COMANDOS, mencionas el “Control de módulos cargados”. Si YARA detecta algo, el siguiente paso lógico es ver qué librerías (DLLs) cargó ese proceso específicamente, por si hay alguna DLL legítima “secuestrada”:
comando:: python vol.py -f MemoryDump.mem windows.dlllist —pid 5896
¿Pudiste instalar YARA con el comando —only-binary? Si es así, lanza el mutantscan y veamos si ese oneetx.exe dejó su “firma” de exclusión en el sistema.