Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

CHEATSHEET VOLATILITY 2 y 3

CHEATSHEET VOLATILITY 2 y 3

Tabla de contenidos

Introducción

En el ámbito de la respuesta a incidentes y el análisis forense digital, el análisis de la memoria es una herramienta crucial para comprender la actividad de un sistema en el momento de su captura. Volatility, una plataforma de análisis de memoria muy conocida, ha evolucionado significativamente con el tiempo, ofreciendo versiones más avanzadas y funcionales. En este blog, exploraremos en detalle las diferencias clave entre Volatility 2 y Volatility 3, proporcionando una guía exhaustiva de los comandos más utilizados en ambas versiones. 

PROCESS INFORMATION

Volatility 2

  • Listar procesos:
CODE
vol.py -f "/path/to/file" --profile <profile> pslist
  • Explicación: Este comando lista todos los procesos activos en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(P)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit
------------------ -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0xXXXXXXXXXXXXXXXX explorer.exe           1000   1234     25      500       1 False 2023-06-21 18:59:28 UTC+0000
0xXXXXXXXXXXXXXXXX svchost.exe            520    432     13      300       0 True   2023-06-21 18:59:28 UTC+0000

Buscar y listar procesos ocultos:

CODE
vol.py -f "/path/to/file" --profile <profile> psscan
  • Explicación: Este comando busca y lista procesos que podrían estar ocultos en el volcado de memoria.

Ejemplo de output:

CODE
Offset(P)          Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit
------------------ -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0xXXXXXXXXXXXXXXXX malware.exe            2000   432     5        50        -1 True   2023-06-21 18:59:28 UTC+0000

Mostrar la estructura jerárquica de procesos:

CODE
vol.py -f "/path/to/file" --profile <profile> pstree
  • Explicación: Este comando muestra la estructura de árbol de procesos para visualizar las relaciones de parentesco entre procesos.

Ejemplo de output:

CODE
Name                                                  Pid   PPid   Thds   Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
0xXXXXXXXXXXXXXXXX-\- explorer.exe                   1000   1234     25      500 2023-06-21 18:59:28 UTC+0000
0xXXXXXXXXXXXXXXXX-\- svchost.exe                     520    432     13      300 2023-06-21 18:59:28 UTC+0000
  0xXXXXXXXXXXXXXXXX-\- malware.exe                   2000    432      5       50 2023-06-21 18:59:28 UTC+0000
CODE
Listar procesos con detalles adicionales (psxview):

CODE
vol.py -f "/path/to/file" --profile <profile> psxview
  • Explicación: Este comando proporciona una vista adicional de los procesos, mostrando información detallada como los procesos ocultos y otros aspectos más allá de los listados estándar de procesos.

Output differences:

  • Volatility 2: Listas adicionales de procesos con psxview.
  • Volatility 3: No incluye un equivalente directo de psxview.

Volatility 3

  • Listar procesos:
CODE
vol.py -f "/path/to/file" windows.pslist
  • Explicación: Este comando lista todos los procesos activos en el volcado de memoria utilizando el método específico de Volatility 3 para obtener la lista de procesos.

Ejemplo de output:

CODE
Name                                                  Pid   PPid   Thds   Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
explorer.exe                                          1000   1234     25      500 2023-06-21 18:59:28 UTC+0000
svchost.exe                                            520    432     13      300 2023-06-21 18:59:28 UTC+0000

Buscar y listar procesos ocultos:

CODE
vol.py -f "/path/to/file" windows.psscan
  • Explicación: Este comando busca y lista procesos que podrían estar ocultos en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Name                                                  Pid   PPid   Thds   Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
malware.exe                                          2000    432      5       50 2023-06-21 18:59:28 UTC+0000

Mostrar la estructura jerárquica de procesos:

CODE
vol.py -f "/path/to/file" windows.pstree
  • Explicación: Este comando muestra la estructura de árbol de procesos utilizando el método específico de Volatility 3 para visualizar las relaciones de parentesco entre procesos.

Ejemplo de output:

CODE
Name                                                  Pid   PPid   Thds   Hnds Time
-------------------------------------------------- ------ ------ ------ ------ ----
\- explorer.exe                                       1000   1234     25      500 2023-06-21 18:59:28 UTC+0000
  \- malware.exe                                     2000    432      5       50 2023-06-21 18:59:28 UTC+0000

Output differences:

  • Volatility 2: Listas adicionales de procesos con psxview.
  • Volatility 3: No incluye un equivalente directo de psxview.

NETWORK INFORMATION

Volatility 2

  • Listar conexiones de red:
CODE
vol.py -f "/path/to/file" --profile <profile> netscan
  • Explicación: Este comando lista las conexiones de red activas en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(P)          Proto   Local Address                  Foreign Address                State       Pid
------------------ ------- ------------------------------ ------------------------------ ----------- ----
0x02843bd0         TCPv4   192.168.1.101:139              192.168.1.1:40560               ESTABLISHED 4

Volatility 3

  • Listar conexiones de red:
CODE
vol.py -f "/path/to/file" windows.netscan
  • Explicación: Este comando lista las conexiones de red activas en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Offset(P)          Proto   Local Address                  Foreign Address                State       Pid
------------------ ------- ------------------------------ ------------------------------ ----------- ----
0x02843bd0         TCPv4   192.168.1.101:139              192.168.1.1:40560               ESTABLISHED 4

NETWORK INFORMATION (XP/2003 SPECIFIC)

Volatility 2

  • Escanear conexiones:
CODE
vol.py -f "/path/to/file" --profile <profile> connscan
vol.py -f "/path/to/file" --profile <profile> connections
vol.py -f "/path/to/file" --profile <profile> sockscan
vol.py -f "/path/to/file" --profile <profile> sockets
  • Explicación: Estos comandos escanean las conexiones de red en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(P)    Proto    Local Address    Foreign Address    State    Pid
----------   -------  --------------   ---------------    -----    ----
0x12345678   TCPv4    192.168.1.101    192.168.1.1        ESTABLISHED 1040

Volatility 3

  • Escanear conexiones:
CODE
vol.py -f "/path/to/file" windows.netstat
  • Explicación: Este comando escanea las conexiones de red en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Offset(P)    Proto    Local Address    Foreign Address    State    Pid
----------   -------  --------------   ---------------    -----    ----
0x12345678   TCPv4    192.168.1.101    192.168.1.1        ESTABLISHED 1040

MODULE INFORMATION

Volatility 2

  • Listar módulos del kernel:
CODE
vol.py -f "/path/to/file" --profile <profile> modules
  • Explicación: Este comando lista los módulos del kernel cargados en el sistema utilizando el perfil especificado.

Ejemplo de output:

CODE
Base       Size                     Path
---------- ------------------------ ----
0xXXXXXXXX 0xXXXXXX                 C:\WINDOWS\system32\ntdll.dll

Volatility 3

  • Listar módulos del kernel:
CODE
vol.py -f "/path/to/file" windows.modules
  • Explicación: Este comando lista los módulos del kernel cargados en el sistema utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Base       Size                     Path
---------- ------------------------ ----
0xXXXXXXXX 0xXXXXXX                 C:\WINDOWS\system32\ntdll.dll

SERVICE INFORMATION

Volatility 2

  • Listar servicios del sistema:
CODE
vol.py -f "/path/to/file" --profile <profile> svcscan
  • Explicación: Este comando lista los servicios del sistema presentes en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Service Name      Display Name     Status   Type    Path
----------------- ---------------- -------- ------- ----
Schedule          Task Scheduler   Running  Service C:\WINDOWS\system32\svchost.exe -k netsvcs

Volatility 3

  • Listar servicios del sistema:
CODE
vol.py -f "/path/to/file" windows.svcscan
  • Explicación: Este comando lista los servicios del sistema presentes en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Service Name      Display Name     Status   Type    Path
----------------- ---------------- -------- ------- ----
Schedule          Task Scheduler   Running  Service C:\WINDOWS\system32\svchost.exe -k netsvcs

USER ACCOUNT INFORMATION

Volatility 2

  • Extraer información de las cuentas de usuario:
CODE
vol.py -f "/path/to/file" --profile <profile> hadump
  • Explicación: Este comando extrae hashes de las cuentas de usuario del volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Username         Domain           LM-Hash  NT-Hash
---------------- ---------------- -------- --------
Administrator    WORKGROUP        aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c

Volatility 3

  • Extraer información de las cuentas de usuario:
CODE
vol.py -f "/path/to/file" windows.hadump
  • Explicación: Este comando extrae hashes de las cuentas de usuario del volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Username         Domain           LM-Hash  NT-Hash
---------------- ---------------- -------- --------
Administrator    WORKGROUP        aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c

FILE INFORMATION

Volatility 2

  • Mostrar archivos abiertos:
CODE
vol.py -f "/path/to/file" --profile <profile> filescan
  • Explicación: Este comando muestra los archivos actualmente abiertos en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(P)          Name
------------------ ------------------------
0xXXXXXXXXXXXX     C:\Users\Admin\document.txt

Volatility 3

  • Mostrar archivos abiertos:
CODE
vol.py -f "/path/to/file" windows.filescan
  • Explicación: Este comando muestra los archivos actualmente abiertos en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Offset(P)          Name
------------------ ------------------------
0xXXXXXXXXXXXX     C:\Users\Admin\document.txt

KERNEL HOOKS DETECTION

Volatility 2

  • Detectar hooks del kernel:
CODE
vol.py -f "/path/to/file" --profile <profile> ldrmodules
  • Explicación: Este comando detecta hooks en el kernel del sistema cargado desde módulos utilizando el perfil especificado.

Ejemplo de output:

CODE
Base       InLoad Path
---------- ------------------------
0xXXXXXXXX C:\WINDOWS\system32\ntdll.dll

Volatility 3

  • Detectar hooks del kernel:
CODE
vol.py -f "/path/to/file" windows.ldrmodules
  • Explicación: Este comando detecta hooks en el kernel del sistema cargado desde módulos utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
Base       InLoad Path
---------- ------------------------
0xXXXXXXXX C:\WINDOWS\system32\ntdll.dll

REGISTRY KEYS RECOVERY

Volatility 2

  • Recuperar claves del registro:
CODE
vol.py -f "/path/to/file" --profile <profile> printkey
  • Explicación: Este comando recupera claves del registro presentes en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

PYTHON
Last Write Time                     Name           Class          Type         Size         Data
---------------------------------- ------------- -------------- ------------ ------------ ------------
2023-06-21 18:59:28 UTC+0000       HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\           0

Volatility 3

  • Recuperar claves del registro:
CODE
vol.py -f "/path/to/file" windows.printkey
  • Explicación: Este comando recupera claves del registro presentes en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

PYTHON
Last Write Time                     Name           Class          Type         Size         Data
---------------------------------- ------------- -------------- ------------ ------------ ------------
2023-06-21 18:59:28 UTC+0000       HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\           0

MEMORY DUMP EXTRACTION

Volatility 2

  • Extraer información de memoria:
CODE
vol.py -f "/path/to/file" --profile <profile> memdump -p <PID> -D <output_directory>
  • Explicación: Este comando extrae el contenido de memoria del proceso con el PID especificado en el volcado de memoria utilizando el perfil especificado.

Volatility 3

  • Extraer información de memoria:
CODE
vol.py -f "/path/to/file" windows.memdump -p <PID> -D <output_directory>
  • Explicación: Este comando extrae el contenido de memoria del proceso con el PID especificado en el volcado de memoria utilizando el método específico de Volatility 3.

Output differences:

  • Volatility 2:
    • Adicionales listas de procesos con psxview.
  • Volatility 3:
    • No incluye un equivalente directo de psxview.

DUMP FILES

Volatility 2

  • Volcar archivos:
CODE
vol.py -f "/path/to/file" --profile <profile> dumpfiles --dump-dir="/path/to/dir"
vol.py -f "/path/to/file" --profile <profile> dumpfiles --dump-dir="/path/to/dir" -Q <offset>
vol.py -f "/path/to/file" --profile <profile> dumpfiles --dump-dir="/path/to/dir" -p <PID>
  • Explicación: Estos comandos vuelcan archivos del volcado de memoria a un directorio especificado, ya sea por PID o por offset.

Volatility 3

  • Volcar archivos:
CODE
vol.py -f "/path/to/file" -o "/path/to/dir" windows.dumpfiles
vol.py -f "/path/to/file" -o "/path/to/dir" windows.dumpfiles --virtaddr <offset>
vol.py -f "/path/to/file" -o "/path/to/dir" windows.dumpfiles --physaddr <offset>
vol.py -f "/path/to/file" -o "/path/to/dir" windows.dumpfiles --pid <PID>
  • Explicación: Estos comandos vuelcan archivos del volcado de memoria a un directorio especificado, ya sea por PID, por dirección virtual, o por dirección física.

Output differences:

  • Volatility 2: Solo vuelca el PID especificado (o todos si no se especifica).
  • Volatility 3: Vuelca el ejecutable y los DLLs asociados.

HANDLES

Volatility 2

  • Listar manejadores:
CODE
vol.py -f "/path/to/file" --profile <profile> handles -p <PID>
  • Explicación: Este comando lista los manejadores abiertos por el proceso especificado en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(V)    PID    Handle    Access    Type    Details
----------   -----  --------  --------  ------  ----------------
0x12345678   1040   0x0004    0x000f0   File    \Device\HarddiskVolume2\Windows\System32\notepad.exe

Volatility 3

  • Listar manejadores:
CODE
vol.py -f "/path/to/file" windows.handles --pid <PID>
  • Explicación: Este comando lista los manejadores abiertos por el proceso especificado en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
PID    Process    Offset    HandleValue    Type    GrantedAccess    Name
----   --------   -------   ------------   ------  --------------  ------
1040   notepad.exe  0x12345678  0x0004  File  0x000f0  \Device\HarddiskVolume2\Windows\System32\notepad.exe

Output differences:

  • Volatility 2: Muestra Offset(V), PID, manejador, acceso, tipo, y detalles.
  • Volatility 3: Muestra PID, proceso, offset, valor del manejador, tipo, acceso concedido, y nombre.

DLL LIST

Volatility 2

  • Listar DLLs:
CODE
vol.py -f "/path/to/file" --profile <profile> dlllist -p <PID>
  • Explicación: Este comando lista las DLLs cargadas por el proceso especificado en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
PID    CommandLine    Base    Size    LoadCount    LoadTime    Path
----   ------------   -----   ----    ---------    ---------   ----
1040   notepad.exe    0x1234  0x1000  0            2023-06-21  C:\Windows\System32\notepad.exe

Volatility 3

  • Listar DLLs:
CODE
vol.py -f "/path/to/file" windows.dlllist --pid <PID>
  • Explicación: Este comando lista las DLLs cargadas por el proceso especificado en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
PID    Process    Base    Size    Name    Path    LoadTime    File Output
----   -------    -----   ----    ----    ----    ---------   -----------
1040   notepad.exe  0x1234  0x1000  ntdll.dll  C:\Windows\System32\ntdll.dll  2023-06-21

Output differences:

  • Volatility 2: Muestra PID, línea de comando, base, tamaño, número de cargas, tiempo de carga, y ruta.
  • Volatility 3: Muestra PID, proceso, base, tamaño, nombre, ruta, tiempo de carga, y archivo de salida.

COMMAND LINE

Volatility 2

  • Listar líneas de comando:
CODE
vol.py -f "/path/to/file" --profile <profile> cmdline
vol.py -f "/path/to/file" --profile <profile> cmdscan
vol.py -f "/path/to/file" --profile <profile> consoles
  • Explicación: Estos comandos listan las líneas de comando utilizadas por los procesos en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Nombre del Proceso    PID    Línea de Comando
-------------------   -----  ----------------
notepad.exe           1040   "C:\Windows\System32\notepad.exe"

Volatility 3

  • Listar líneas de comando:
CODE
vol.py -f "/path/to/file" windows.cmdline
  • Explicación: Este comando lista las líneas de comando utilizadas por los procesos en el volcado de memoria utilizando el método específico de Volatility 3.

Ejemplo de output:

CODE
PID    Process Name    Args
----   ------------    ----
1040   notepad.exe     "C:\Windows\System32\notepad.exe"

Output differences:

  • Volatility 2: Muestra nombre del proceso, PID, línea de comando; cmdscan incluye aplicación, flags, manejador del proceso; consoles contiene listado de C:, títulos originales, posición de la pantalla y la información del historial de comandos.
  • Volatility 3: Muestra PID, nombre del proceso, y argumentos.

REGISTRY INFORMATION

Volatility 2

  • Escanear y listar colmenas del registro:
CODE
vol.py -f "/path/to/file" --profile <profile> hivescan
vol.py -f "/path/to/file" --profile <profile> hivelist
  • Explicación: Estos comandos escanean y listan las colmenas del registro presentes en el volcado de memoria utilizando el perfil especificado.

Ejemplo de output:

CODE
Offset(P)    Name
----------   ----
0x12345678   \SystemRoot\System32\Config\SYSTEM