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| Elemento | Qué hace | Ejemplo |
|---|---|---|
list runningvms | Lista las VM encendidas con su nombre exacto | VBoxManage list runningvms |
debugvm NOMBRE_VM | Abre las funciones de depuración de esa VM | debugvm "Win10-Lab" |
dumpvmcore | Vuelca la memoria de la VM encendida | debugvm "Win10-Lab" dumpvmcore |
--filename=ARCHIVO | Archivo 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.elfSi 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.rawEn 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ámetro | Qué hace | Ejemplo |
|---|---|---|
-Path | Archivo a medir (posicional) | Get-FileHash C:\Evidencia\win10-lab.raw |
-Algorithm | SHA256 (por defecto), SHA1, SHA512, MD5 | -Algorithm SHA256 |
-LiteralPath | Ruta 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.rawCon 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.