Saltar al contenido
Lectura9 minPreview

Adquirir la memoria de su propia VM

Para practicar, la captura más limpia es desde el hipervisor: VirtualBox o VMware guardan la RAM de la VM sin ejecutar nada dentro del Windows que va a analizar. Déle a la VM 2 GB de RAM; con 8 GB, cada volcado le come 8 GB de disco y cada plugin tarda el cuádruple.

Opción 1: desde el hipervisor

VirtualBox. Se usa VBoxManage, la herramienta de línea de comandos de VirtualBox. Se ejecuta en el equipo anfitrión, no dentro de la VM.

VBoxManage list runningvms
VBoxManage debugvm NOMBRE_VM dumpvmcore --filename=ARCHIVO
ElementoQué haceEjemplo
list runningvmsLista las VM encendidas con su nombre exactoVBoxManage list runningvms
debugvm NOMBRE_VMAbre las funciones de depuración de esa VMdebugvm "Win10-Lab"
dumpvmcoreVuelca la memoria de la VM encendidadebugvm "Win10-Lab" dumpvmcore
--filename=ARCHIVOArchivo de salida, en formato ELF--filename=win10-lab.elf
$ VBoxManage list runningvms
"Win10-Lab" {3f1c2a9e-7b4d-4e21-9c55-1a2b3c4d5e6f}
$ VBoxManage debugvm "Win10-Lab" dumpvmcore --filename=win10-lab.elf

Si funciona, el segundo comando no imprime nada y deja un ELF que Volatility 3 lee directamente. El tropiezo típico es el nombre:

VBoxManage: error: Could not find a registered machine named 'Win10Lab'

Copie el nombre tal como sale en list runningvms, con comillas si tiene espacios.

VMware Workstation o Player. Suspenda la VM o tome una instantánea. En su carpeta aparece un .vmem junto a un .vmss (suspensión) o un .vmsn (instantánea). Copie los dos a la misma carpeta: Volatility usa el segundo para ubicar los datos del primero, y sin él el análisis falla con errores de símbolos que confunden.

Opción 2: desde dentro del Windows

Es lo que haría con un equipo físico en un incidente real. WinPmem es una herramienta libre que carga un controlador y copia la RAM a un archivo. Descárguela del repositorio oficial en GitHub, abra PowerShell como administrador y pase como argumento el archivo de salida (el nombre del binario cambia entre versiones):

.\winpmem_mini_x64_rc2.exe C:\Evidencia\win10-lab.raw

En una consola sin privilegios falla al cargar el controlador. Toda captura en vivo deja huella, porque la herramienta ocupa memoria y aparece como proceso; se acepta y se anota. En un caso real, el volcado va a un disco externo, nunca al disco que se investiga.

Hash y cadena de custodia

En PowerShell, Get-FileHash calcula la huella del archivo; en Linux, sha256sum.

ParámetroQué haceEjemplo
-PathArchivo a medir (posicional)Get-FileHash C:\Evidencia\win10-lab.raw
-AlgorithmSHA256 (por defecto), SHA1, SHA512, MD5-Algorithm SHA256
-LiteralPathRuta literal, útil con corchetes-LiteralPath 'C:\Caso[1]\mem.raw'
PS C:\> Get-FileHash C:\Evidencia\win10-lab.raw -Algorithm SHA256
 
Algorithm  Hash                                                              Path
---------  ----                                                              ----
SHA256     9F2C4A7E1B0D83C6E5A41F92D7B3C08E6A15F4D29B7E0C3A81D6F5E2B49C7A10  C:\Evidencia\win10-lab.raw

Con una ruta mal escrita responde Cannot find path 'C:\Evidencia\win10.raw' because it does not exist.; revise con dir C:\Evidencia.

En el registro de custodia anote fecha, hora, herramienta, quién capturó y el hash. Si el hash cambia después, el archivo dejó de ser evidencia confiable. Yo calculo el hash dos veces: al capturar y al copiarlo a la VM de análisis.