CHEATSHEET VOLATILITY 2 y 3

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:
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:

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:

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:

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:

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:

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
Listar procesos con detalles adicionales (psxview):

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:
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:

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:

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:

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:

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:

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:
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:

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:
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:

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:
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:

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:
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:

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:
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:

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

Volatility 3

  • Listar módulos del kernel:
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:

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

SERVICE INFORMATION

Volatility 2

  • Listar servicios del sistema:
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:

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:
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:

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:
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:

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

Volatility 3

  • Extraer información de las cuentas de usuario:
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:

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

FILE INFORMATION

Volatility 2

  • Mostrar archivos abiertos:
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:

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

Volatility 3

  • Mostrar archivos abiertos:
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:

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

KERNEL HOOKS DETECTION

Volatility 2

  • Detectar hooks del kernel:
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:

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

Volatility 3

  • Detectar hooks del kernel:
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:

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

REGISTRY KEYS RECOVERY

Volatility 2

  • Recuperar claves del registro:
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:

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:
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:

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:
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:
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:
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:
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:
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:

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

Volatility 3

  • Listar manejadores:
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:

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:
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:

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:
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:

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:
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:

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

Volatility 3

  • Listar líneas de comando:
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:

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:
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:

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *