Saltar al contenido
← Volver al blog

Carving de fragmentos de colmenas de registro desde pagefile.sys

20/5/2026 · 5 min de lectura

Las colmenas del registro viven en RAM de forma continua — todos los procesos abren handles a colmenas al arrancar, y Windows mantiene en caché las colmenas activas en el non-paged pool. Pero las porciones más antiguas / frías de las colmenas grandes (piensa en SOFTWARE en un servidor ocupado, o el NTUSER.DAT rancio de un usuario inactivo) sí se paginan, y ahí es donde el carving de pagefile gana su sueldo: puedes reconstruir datos de registro borrados o modificados que ya no son visibles en disco.

Las dos firmas que importan

Las colmenas del registro de Windows están hechas de dos tipos de bloque, ambos alineados a 4 KB y ambos trivialmente carveables:

FirmaHexQué es
regf72 65 67 66Bloque base de la colmena — la cabecera del archivo
hbin68 62 69 6EBin de la colmena — un contenedor de celdas de 4 KB

Una colmena completa en disco empieza con un único bloque regf (4 KB) seguido de una secuencia de bloques hbin. En un pagefile, casi nunca obtienes la secuencia intacta — lo que obtienes son muchos bloques hbin aislados, cada uno representando un trozo de 4 KB de datos de registro que fue paginado desde la RAM.

El parser clasifica cada página de 4 KB y etiqueta los aciertos regf / hbin en la pestaña Page map. Haz clic en cada uno para ver su offset absoluto en el archivo.

Qué sobrevive en un hbin aislado

Un hbin es un contenedor de celdas. Cada celda es alguna de estas:

  • Un nodo de clave (nk) — tiene el nombre de la clave, la fecha de última escritura, la referencia al padre, el conteo de subclaves.
  • Una entrada de valor (vk) — nombre, tipo (REG_SZ, REG_DWORD, REG_BINARY, etc.), offset de datos.
  • Una lista de subclaves (lf, lh, li, ri).
  • Un descriptor de seguridad (sk).
  • Big data para valores mayores que el tamaño de celda (db).
  • Los bytes reales del valor.

Un único hbin de 4 KB suele contener unas docenas de celdas. Incluso un bin huérfano puede darte:

  • Los nombres y fechas de última escritura de las claves que vivían en ese bin.
  • Los nombres y tipos de los valores, más sus datos si los datos eran inline (la mayoría de los REG_SZ y REG_DWORD lo son).
  • Celdas borradas: cuando se elimina una clave o un valor, la celda se marca libre (el bit alto del tamaño se invierte) pero su contenido no se pone a cero. Las herramientas sobre colmena viva saltan las celdas borradas; los carvers pueden leerlas.

Este es el premio forense principal — artefactos de registro que ya no existen en la colmena viva.

Extraer celdas de un hbin carveado

No puedes cargar un único hbin en Regedit ni en Registry Explorer directamente — quieren un archivo prefijado con regf completo. El flujo:

  1. Encuentra páginas hbin en el pagefile vía el Page map de esta herramienta.
  2. Anota los offsets absolutos, p. ej. 0x12340000, 0x12341000.
  3. Saca los bytes con dd:
    dd if=pagefile.sys of=hbin1.bin bs=1 skip=$((0x12340000)) count=4096
    
  4. Después:
    • Parsea manualmente: la referencia del formato de archivo del registro de Microsoft Windows (docs de libregf) es la fuente canónica.
    • Antepón una cabecera regf sintética para que un visor de colmenas acepte el archivo — yarp (el parser de registro en Python de Maxim Suhanov) tiene helpers para esto y es mucho más tolerante a la corrupción que hivexsh o Registry Explorer.

Qué buscar en colmenas carveadas

Las claves que más merece la pena recuperar de un pagefile:

  • SAM\Domains\Account\Users\… — RID, hash NT, flags de cuenta.
  • SECURITY\Policy\Secrets\… — secretos de LSA (contraseña de la cuenta de máquina, credenciales de cuentas de servicio, claves maestras de DPAPI).
  • SOFTWARE\Microsoft\Windows\CurrentVersion\Run / RunOnce — entradas de persistencia.
  • SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks — GUIDs de tareas programadas.
  • SYSTEM\CurrentControlSet\Services\… — servicios instalados, incluyendo malware que se ha registrado a sí mismo.
  • NTUSER.DAT Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU — comandos recientemente tecleados en el diálogo Ejecutar.
  • NTUSER.DAT Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths — historial de la barra de direcciones del Explorador.
  • UsrClass.dat ShellBags — carpetas que el usuario abrió, incluso las que ya no existen.

Un fragmento carveado por página de cualquiera de estas es forensemente significativo incluso sin el contexto de la colmena que lo rodea.

Comparar con el sistema vivo

Si tienes el pagefile y las colmenas vivas SOFTWARE / SYSTEM / SAM / NTUSER.DAT de C:\Windows\System32\config\:

  • Diferencia los fragmentos carveados contra la colmena viva — cualquier cosa en los datos carveados que no esté en la colmena viva está borrada. Esa es la evidencia.
  • Usa yarp (o regipy) para recorrer ambas y emitir una lista unificada de valores.

Limitaciones específicas del carving de registro

  • Sin replay del log de transacciones: el sistema de colmenas vivas usa archivos *.LOG1/*.LOG2 para hacer durables las escrituras; en un fragmento paginado puedes estar viendo un estado pre-commit que la colmena viva ya ha sobrescrito.
  • Los offsets de celda son relativos a la base de la colmena: los punteros de una celda a otra (punteros de listas de subclaves, listas de valores) son inútiles sin el bloque base completo de la colmena — lees las celdas inline pero no puedes navegar.
  • Páginas comprimidas: en Windows 10+, un hbin puede estar comprimido con Xpress-Huffman antes de ser paginado. Esta herramienta marca tales páginas en el page map; la descompresión manual queda como funcionalidad futura.

Lectura relacionada