Documentación técnica — Referencia de comandos

Ámbar
Catálogo de comandos

Inventario completo de cada herramienta externa invocada por ForensicScript.bat, organizado por módulo, con la sintaxis exacta y el propósito forense de cada comando.

Script ForensicScript.bat
Versión 3.0
Plataforma Windows 7 a 11
Autor Euclides Junior Angeles Alcantara
13
Módulos
16
Herramientas externas
42
Comandos documentados
3
Códigos de salida
EnumeraciónSolo lectura: detecta, lista o inspecciona sin alterar la evidencia.
AdquisiciónCopia, extrae o genera un artefacto de evidencia en el destino.
Control de estadoSuspende, reanuda, conecta o bloquea un dispositivo/VM.
CANCELABLE Se ejecuta bajo el wrapper anti-CTRL+C: pausa y pide confirmación antes de abortar.
01

Volcado de Memoria RAM

Menú principal · Opción 1

Captura el contenido completo de la RAM antes de tocar el disco, priorizando la volatilidad de la evidencia. Ofrece dos herramientas intercambiables según arquitectura y preferencia del operador; ambas producen un volcado .raw.

Comae DumpIt, volcado crudoCANCELABLE
> DumpIt.exe /Q /O <destino>\memdump.raw /TYPE RAW
Binario seleccionado automáticamente según arquitectura (x64 / x86 / ARM64). /Q modo silencioso, /TYPE RAW fuerza formato crudo en vez del .dmp con cabecera propietaria. El .json de metadatos que genera la herramienta se elimina tras la copia.
WinPmem x64, volcado crudoCANCELABLE
> winpmem_mini_x64_rc2.exe <destino>\memdump.raw
Driver de kernel firmado; escribe directamente sobre \Device\PhysicalMemory. Se verifica que el archivo resultante no quede en 0 bytes (falla silenciosa conocida en sistemas sin permisos suficientes).
WinPmem x86, volcado crudoCANCELABLE
> winpmem_mini_x86.exe <destino>\memdump.raw
Variante de 32 bits para hosts x86 legados.
02

Triage · KAPE

Menú principal · Opción 2

Recolección rápida de artefactos dirigidos (registros, eventos, prefetch, LNK) sin necesidad de una imagen forense completa. El operador elige un target predefinido (KapeTriage, SANS_Triage) o cualquiera de los targets individuales de la librería.

Extracción de artefactos con empaquetadoCANCELABLE
> kape.exe --tsource <unidad> --target <target> --tdest <destino> --vhdx|--zip <nombre> --quiet
KAPE antepone un timestamp al nombre del contenedor final; el script lo localiza dinámicamente tras la ejecución. Si el operador elige --vhdx y el resultado supera cierto tamaño, KAPE lo comprime automáticamente a .zip, el script busca ambas extensiones antes de hashear.
03.1

Adquisición de Discos

Menú Adquisición · Disco físico / partición lógica

Imaging a nivel de bloque de un disco físico completo (\\.\PHYSICALDRIVE) o una partición lógica (\\.\E:). El menú de herramientas se adapta: dc3dd y FTK Imager solo se ofrecen para dispositivos físicos, ya que ninguno soporta volúmenes lógicos.

dc3dd, copia con hash en líneaCANCELABLE
> dc3dd if=/dev/sdX of=<imagen>.dd hash=sha256 log=<imagen>.log
Binario Cygwin: solo acepta discos físicos (/dev/sdX). Calcula el SHA-256 del stream de origen mientras copia; el script recalcula el hash de la imagen resultante con certutil y compara ambos para confirmar copia byte-fiel.
dd, copia cruda simpleCANCELABLE
> dd if=<origen> of=<imagen>.dd bs=512k --progress
Única herramienta de imaging crudo disponible tanto para discos físicos como volúmenes lógicos. Sin hashing integrado: la integridad se verifica después con HASH_EVIDENCE.
EWFAcquire · EnCase / SMART comprimidoCANCELABLE
> ewfacquire -u -c none [-S 80000G] [-f encase7|smart] -t <destino> <origen>
El operador elige segmentación (1.4 GB o imagen única con -S 80000G) y formato (EnCase v6 .E01, EnCase v7 .Ex01 o SMART .S01). Incluye metadatos de caso embebidos en el contenedor.
FTK Imager CLI · E01 / RAW / SMARTCANCELABLE
> ftkimager <origen> <destino> --e01|--s01 --case-number <caso> --evidence-number <evid> --examiner <nombre> --frag 2000M --compress 6
Solo disponible para discos físicos. El modo Raw omite todos los flags de metadatos y compresión; los modos comprimidos piden número de caso, evidencia y examinador para la cadena de custodia.
Verificación de copia byte-fiel
> certutil -hashfile <imagen>.dd SHA256
Solo tras dc3dd. Compara el hash de origen (extraído del .log de dc3dd) contra el hash recalculado de la imagen; el resultado se documenta en <imagen>_VERIFICACION.txt.
03.2

Adquisición Lógica · Archivos y Carpetas

Menú Adquisición · Copia forense selectiva

Copia dirigida de archivos o carpetas específicas mediante un navegador interactivo del sistema de archivos, preservando metadatos NTFS completos (timestamps, ACLs, propietario).

Robocopy, copia con preservación total de metadatosCANCELABLE
> robocopy <origen> <destino> /E /COPYALL /NP /TEE /LOG:<log>
/COPYALL copia datos, atributos, timestamps, ACLs y propietario, el estándar para preservación forense. /TEE refleja el progreso en consola y en el log simultáneamente. Códigos 0-7 de robocopy son variantes de éxito; solo ≥8 se trata como fallo real.
0completado 1error (≥8) 2abortado por operador
04.1

Máquinas Virtuales · VMware

Menú Máquinas Virtuales · Opción 1

Consolidación de discos .vmdk segmentados en un único archivo, y extracción de memoria (.vmem/.vmss/.vmsn) tras suspender la VM para evitar memory smearing.

vmware-vdiskmanager, consolidar discoCANCELABLE
> vmware-vdiskmanager -r <origen>.vmdk -t 0 <destino>.vmdk
-t 0 genera un disco monolítico sin dispersión (no segmentado), fusionando la cadena de descriptor + extents en un solo archivo apto para análisis.
vmrun, suspender antes del volcado
> vmrun suspend <maquina>.vmx
Alteración mínima y controlada según NIST SP 800-86: congela el estado de la RAM antes de copiar .vmem, evitando que la memoria cambie durante la copia.
Robocopy, extracción de archivos de memoriaCANCELABLE
> robocopy <carpeta_vm> <destino> *.vmem *.vmss *.vmsn /J
Se ejecuta una vez por cada extensión encontrada. /J usa I/O sin buffer, más eficiente para archivos del tamaño de la RAM asignada.
vmrun, reanudar la VM
> vmrun start <maquina>.vmx
Opcional, a solicitud explícita del operador tras confirmar que la evidencia quedó copiada.
04.2

Máquinas Virtuales · VirtualBox

Menú Máquinas Virtuales · Opción 2

Clonado de disco virtual con conversión de formato opcional, y volcado de memoria en caliente vía core dump del hipervisor. VBoxManage se resuelve en cascada: instalación embebida → Program Files\Oracle\VirtualBox → PATH del sistema.

Enumerar VMs y detectar disco asociado
> VBoxManage list vms
> VBoxManage list runningvms
> VBoxManage showvminfo <uuid> --machinereadable
Se verifica que la VM esté apagada antes de clonar (integridad forense); el disco se identifica por ImageUUID o, si falla, por extensión de archivo (.vdi / .vmdk / .vhd).
Clonar disco, con selección de formato de salidaCANCELABLE
> VBoxManage clonemedium disk <uuid|ruta> <destino> --format VDI|VMDK|VHD|RAW
El operador elige el formato del clon: Original, VDI (nativo VirtualBox), VMDK (compatible Autopsy/FTK), VHD (Hyper-V/Windows) o RAW (análisis forense universal).
Volcado de memoria, core dump ELFCANCELABLE
> VBoxManage debugvm <uuid> dumpvmcore --filename <destino>.elf
Genera un ELF Core Dump, no memoria RAW, se documenta explícitamente en un FORMAT_NOTE.txt junto a la evidencia, con la sintaxis de análisis en Volatility (vboxelf) y la ruta de conversión a RAW con objcopy.
04.3

Máquinas Virtuales · Hyper-V

Menú Máquinas Virtuales · Opción 3, requiere Windows 8+ Pro/Enterprise

Adquisición de discos virtuales (.vhdx/.vhd/.avhdx) incluyendo la cadena completa de checkpoints, con consolidación opcional de snapshots diferenciales sobre una copia de trabajo, nunca sobre la evidencia original.

Enumerar VMs, discos y checkpoints
> Get-VM
> Get-VMHardDiskDrive -VMName <vm>
> Get-VMSnapshot -VMName <vm>
Los tres cmdlets se validan en una sola invocación de PowerShell al entrar al módulo (evita recargar el proveedor de Hyper-V tres veces).
Copia binaria de cada disco virtual
> copy /B /Y <disco>.vhdx <destino>\Disks\
/B modo binario (sin traducción EOF de texto), /Y sobrescribe sin confirmar. Se copian tanto el disco activo como todos los .avhdx de la cadena de checkpoints.
Consolidar cadena de checkpoints
> Get-VHD -Path <disco>
> Set-VHD -Path <hijo> -ParentPath <padre> -IgnoreIdMismatch
> Merge-VHD -Path <activo> -Force
Opera exclusivamente sobre una copia de trabajo (Consolidation\Working): re-enlaza las rutas ParentPath hacia esa copia y fusiona la cadena diferencial, dejando los discos originales adquiridos intactos.
04.4

Conversión de Disco Virtual · QEMU

Menú Máquinas Virtuales · Opción 4, transversal a VMware / VirtualBox / Hyper-V

Convierte cualquier disco virtual adquirido (.vmdk, .vhd, .vhdx, .vdi) a formato RAW plano, el estándar universal aceptado por Autopsy, Volatility, The Sleuth Kit, FTK y X-Ways.

Hash de origen, control previo a la conversión
> certutil -hashfile <origen> SHA256
Se calcula siempre, sin opción de omitirlo, es el único punto de control de integridad previo a modificar el formato del archivo. El hash del resultado final sí es opcional (decisión del operador).
qemu-img convert, conversión a RAWCANCELABLE
> qemu-img convert -p -f <formato_origen> -O raw <origen> <destino>.raw
Formato de origen detectado por extensión: vmdk, vpc (.vhd), vhdx (incluye .avhdx) o vdi. -p muestra barra de progreso en tiempo real.
Inspección de metadatos del disco
> qemu-img info <archivo>
Se ejecuta antes y después de la conversión; ambas salidas quedan embebidas en conversion_report.txt junto con los hashes de origen y destino.
05

Docker

Menú principal · Opción 5

Cuatro vías de adquisición sobre un contenedor: exportación completa del filesystem, copia de volúmenes montados, y extracción lógica dirigida mediante un navegador interactivo que lista el árbol de archivos sin ejecutar código arbitrario dentro del contenedor.

Enumerar contenedores
> docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}"
También usado internamente en formato {{.ID}}|{{.Names}} para poblar el selector de contenedores.
docker export, filesystem completoCANCELABLE
> docker export <contenedor> -o <destino>.tar
No incluye volúmenes montados externamente, solo la capa de filesystem propia del contenedor.
Inspeccionar volúmenes montados
> docker inspect <contenedor>  | ConvertFrom-Json
Parseado vía PowerShell para extraer Mounts[].Source/Destination/Type de forma segura, evitando el parseo frágil de texto plano.
Robocopy, copia de cada volumen detectado
> robocopy <origen_volumen> <destino> /E /COPY:DAT /R:1 /W:1
Se ejecuta una vez por volumen montado, iterando sobre todos los detectados en el paso anterior.
Navegador de filesystem, listar directorio
> docker exec <contenedor> sh -c "ls -1pL <ruta>"
-1pL: una entrada por línea, sufijo / en directorios, y sigue symlinks, así /bin → /usr/bin se clasifica correctamente como carpeta en vez de archivo. Solo lectura: no altera el estado del contenedor.
docker cp, adquisición lógica dirigidaCANCELABLE
> docker cp <contenedor>:<ruta> <destino>
Funciona igual para un archivo individual o una carpeta completa seleccionada en el navegador.
7-Zip, empaquetado de la evidencia lógica
> 7zr.exe a -t7z <destino>.7z <artefacto>
Todo artefacto adquirido lógicamente se empaqueta en un único contenedor .7z (formato soportado por la build reducida de 7-Zip incluida); el original sin comprimir se elimina tras el empaquetado exitoso.
06

Dispositivos Android · ADB

Menú principal · Opción 6

Gestión de conexión (USB o red) y adquisición lógica de un dispositivo Android mediante el mismo patrón de navegador interactivo usado en Docker, adaptado al shell de Android.

Estado de dispositivos conectados
> adb devices -l
Distingue device (autorizado) de unauthorized (pendiente de confirmación en pantalla del móvil).
Conectar por red
> adb connect <ip>:<puerto>
Requiere depuración inalámbrica activada previamente en el dispositivo. La conexión USB no necesita este paso.
Desconectar / detener servidor
> adb disconnect
> adb kill-server
disconnect cierra solo las sesiones de red; kill-server detiene el demonio ADB por completo, liberando también las conexiones USB.
Navegador de filesystem del dispositivo
> adb -s <serial> shell ls -1p <ruta>
> adb -s <serial> shell test -d <ruta>
Arranca en /sdcard/. Sin acceso root, la visibilidad queda limitada a rutas de almacenamiento externo legibles por el usuario shell.
adb pull, extracción lógicaCANCELABLE
> adb -s <serial> pull -a <ruta_origen> <destino>
-a preserva timestamps del archivo original durante la copia. El resultado se empaqueta en .7z con el mismo flujo que la adquisición lógica de Docker.
07

Write Blocker

Menú principal · Opción 7

Mitigación por software contra escritura accidental sobre un disco de evidencia, marcándolo como solo lectura a nivel de sistema operativo. No sustituye un write blocker físico y así se documenta explícitamente en cada operación.

Bloquear / desbloquear escritura
> Get-Disk
> Set-Disk -Number <n> -IsReadOnly $true|$false
Requiere el módulo Storage de PowerShell (Windows 8+); en Windows 7 el script lo detecta y ofrece la alternativa manual con diskpart > attributes disk set readonly.

Verificación de Integridad

Transversal, invocado al final de cada adquisición vía HASH_EVIDENCE

Tras cada adquisición el operador decide si calcular hash y con qué algoritmo, nunca es automático ni obligatorio, evitando bloquear el flujo en evidencias muy grandes.

HashMyFiles (NirSoft)

Motor primario. Interfaz gráfica silenciosa que exporta un reporte de texto.

  • /enable_hash 1|2|8, MD5 / SHA1 / SHA256
  • /file o /folder ... /subfolders 1
  • /stext <reporte>, salida a texto plano

certutil (fallback)

Si HashMyFiles no está presente, se usa el hasher nativo de Windows, sin dependencias externas.

  • certutil -hashfile <archivo> MD5|SHA1|SHA256
  • Para carpetas: itera con for /r sobre cada archivo

Núcleo Anti-Interrupción

Infraestructura, forensic_wrapper.ps1, envuelve toda operación marcada CANCELABLE

Cada comando de adquisición se ejecuta en un proceso aislado (CREATE_NEW_PROCESS_GROUP) para interceptar CTRL+C antes de que llegue a la herramienta forense: en vez de terminarla en seco, el wrapper la suspende, muestra un diálogo de confirmación, y solo aborta si el operador lo confirma explícitamente.

Secuencia de intercepción

  • SetConsoleCtrlHandler, captura la señal antes que la herramienta hija
  • NtSuspendProcess, congela el proceso mientras se decide
  • Diálogo: Continuar (recomendado) o Abortar
  • NtResumeProcess / TerminateProcess según la decisión

Contrato de salida

0éxito 1error de la herramienta 2abortado por el operador

El código 2 es la señal universal que usa todo el framework para devolver al operador al menú del módulo correspondiente, nunca lo deja caer fuera del script.