Hivex: Herramienta Registro Windows Linux
Hivex: Herramienta Registro Windows Linux
Hivex es una herramienta poderosísima en Kali Linux si lo que necesitas es "meterte" en las entrañas de Windows sin haber iniciado sesión.
Básicamente, es una biblioteca y un conjunto de herramientas diseñadas para extraer, consultar y editar el Registro de Windows desde sistemas Linux.
¿Para qué se usa Hivex?
Lo más común en auditorías de seguridad o forense digital es:
Resetear contraseñas: Modificar el archivo
SAMpara limpiar contraseñas de usuarios locales.Análisis forense: Extraer información sobre programas instalados, redes conectadas o historial de archivos.
Desactivar malware: Editar llaves de registro que ejecutan programas al iniciar Windows.
Herramientas principales del paquete
Cuando instalas o usas libhivex-bin en Kali, los comandos más útiles son:
hivexml: Convierte un archivo de registro (comoSYSTEMoSOFTWARE) a formato XML para que sea legible.hivexget: Extrae una llave específica del registro de forma rápida.hivexregedit: Permite exportar o importar archivos en formato.reg.hivexsh: (La joya de la corona) Abre un "shell" interactivo dentro del archivo del registro para navegar por él como si fueran carpetas.
Ejemplo rápido: Cómo entrar a un registro
Si tienes montado el disco de Windows en /mnt/windows, el comando para empezar a explorar sería:
# Para navegar de forma interactiva
hivexsh /mnt/windows/Windows/System32/config/SAM
Una vez dentro, puedes usar comandos como ls para ver las llaves o cd para moverte entre ellas.
Ojo con esto: Trabajar con el registro es como una cirugía a corazón abierto. Si borras o editas la llave equivocada, el Windows de esa máquina podría no volver a arrancar. ¡Haz siempre una copia de seguridad del archivo original!
Cómo instalarlo (si no lo tienes)
Aunque suele venir por defecto en muchas versiones de Kali, puedes asegurarte con:
sudo apt update && sudo apt install libhivex-bin
Para resetear una contraseña de Windows desde Kali Linux usando herramientas relacionadas con Hivex, la forma más efectiva y estándar es combinarlo con una utilidad llamada chntpw (Change NT Password).
Aquí tienes la guía paso a paso para hacerlo de forma segura:
1. Preparación: Montar el disco de Windows
Primero, debes identificar la partición donde está instalado Windows y montarla en tu sistema Kali.
Identifica la partición: Usa
lsblkosudo fdisk -l. Suele ser una partición grande de tipo NTFS (ej:/dev/sda2).Crea un punto de montaje:
sudo mkdir /mnt/winMonta la partición: *
sudo mount /dev/sdaX /mnt/win(Sustituye X por tu número de partición).Nota: Si Windows hibernó, podrías necesitar usar
-o remove_hiberfile.
2. Localizar el archivo SAM
El registro de usuarios de Windows se guarda en un archivo llamado SAM. Navega hasta la carpeta de configuración:
cd /mnt/win/Windows/System32/config/
3. Usar chntpw para limpiar la contraseña
Esta herramienta utiliza las librerías de Hivex para modificar el registro SAM. Para listar los usuarios del sistema, ejecuta:
sudo chntpw -l SAM
Una vez que veas el nombre del usuario que quieres desbloquear, lanza el modo interactivo:
sudo chntpw -u "NombreDeUsuario" SAM
4. Menú de edición
Verás un menú con varias opciones. Para un reseteo limpio, te recomiendo seguir este orden:
Presiona
1(Clear / Blank user password): Esto deja la contraseña en blanco. Es mucho más seguro que intentar escribir una nueva desde Linux.Presiona
2(Unlock and enable user account): Solo si la cuenta aparece como bloqueada o deshabilitada.Presiona
qpara salir.Presiona
ycuando te pregunte si quieres guardar los cambios (Write hive files). Este paso es crítico.
5. Finalización
Para evitar errores de escritura o corrupción del sistema de archivos, desmonta el disco antes de reiniciar:
cd ~
sudo umount /mnt/win
⚠️ Notas importantes
Cuentas de Microsoft: Este método funciona de maravilla para cuentas locales. Si el usuario inicia sesión con un correo (Cuenta de Microsoft), este proceso podría no funcionar o simplemente "romper" el enlace, obligándote a entrar de forma local.
BitLocker: Si el disco está cifrado con BitLocker, no podrás montar la partición ni ver los archivos a menos que tengas la clave de recuperación de 48 dígitos.
Es fundamental verificar esto antes de intentar cualquier cosa, porque si BitLocker está activo, la partición aparecerá como un bloque de datos ilegibles y no podrás montar la carpeta System32/config/.
En Kali Linux, puedes comprobar el estado del cifrado de la siguiente manera:
1. Identificar la partición
Primero, localiza el nombre de tu partición de Windows (normalmente una tipo NTFS de gran tamaño):
lsblk
(Supongamos que tu partición es /dev/nvme0n1p3 o /dev/sda3).
2. Verificar el estado con lsblk -f
Ejecuta el siguiente comando para ver el sistema de archivos detallado:
lsblk -f /dev/sda3
Si es legible: Verás que dice
ntfsen la columna FSTYPE.Si está cifrado: Verás que dice
BitLockero que el tipo de sistema de archivos aparece vacío/desconocido a pesar de saber que es la partición de Windows.
3. La prueba definitiva: dislocker
Kali incluye una herramienta llamada dislocker que es específica para manejar BitLocker. Intenta leer los metadatos de la partición:
sudo dislocker-find /dev/sda3
Si el comando devuelve información técnica (como el GUID del volumen), la unidad está cifrada.
Si no devuelve nada, la unidad es un volumen NTFS normal y puedes proceder con el reseteo de contraseña que vimos antes.
¿Qué pasa si está cifrado?
Si BitLocker está activo, tienes dos opciones:
Conseguir la clave de recuperación: Es un código de 48 números que el usuario suele tener guardado en su cuenta de Microsoft o impreso.
Desbloquearlo desde Kali: Si tienes la clave, tendrías que usar
dislockerpara "abrir" el volumen antes de poder usarchntpw.
Dato curioso: Si el equipo está encendido y suspendido (no apagado del todo), a veces es posible extraer las llaves de la memoria RAM, pero eso ya entra en terreno de forense avanzado.
Si la partición está cifrada con BitLocker, no puedes usar chntpw directamente porque el archivo SAM es ilegible (está "mezclado" matemáticamente). Para avanzar, necesitamos desbloquear la capa de cifrado primero.
En Kali Linux, la herramienta estándar para esto es Dislocker. Aquí tienes el proceso paso a paso:
1. Preparar las carpetas de trabajo
Necesitas dos puntos de montaje: uno para el archivo cifrado y otro para el disco ya "abierto".
sudo mkdir -p /mnt/bitlocker /mnt/windows_desbloqueado
2. Desbloquear el volumen (Necesitas la clave)
Aquí es donde introduces la clave de recuperación de 48 dígitos. Sustituye /dev/sdaX por tu partición:
sudo dislocker /dev/sdaX -p123456-123456-123456-123456-123456-123456-123456-123456 -- /mnt/bitlocker
Si no tienes la clave de 48 dígitos, este método se detiene aquí. BitLocker es un cifrado de grado militar (AES-128/256) y no se puede "romper" por fuerza bruta fácilmente.
3. Montar el disco "virtual"
Dislocker crea un archivo llamado dislocker-file dentro de /mnt/bitlocker. Este archivo es, ahora sí, una partición NTFS legible. Vamos a montarla:
sudo mount -o loop /mnt/bitlocker/dislocker-file /mnt/windows_desbloqueado
4. Ahora sí: Resetear la contraseña
Ahora que el disco es legible en /mnt/windows_desbloqueado, repites los pasos de antes pero apuntando a la nueva ruta:
Ve a la carpeta del registro:
cd /mnt/windows_desbloqueado/Windows/System32/config/Ejecuta chntpw:
sudo chntpw -u "NombreDeUsuario" SAMLimpia la contraseña: Presiona
1, luegoq, y luegoypara guardar.
5. Cerrar todo de forma segura (Importante)
Para no corromper el registro, desmonta en orden inverso:
sudo umount /mnt/windows_desbloqueado
sudo umount /mnt/bitlocker
¿Qué pasa si NO tienes la clave de 48 dígitos?
Si estás en una auditoría y no tienes la clave, tus opciones se reducen drásticamente:
Ataque DMA: Si el equipo tiene puertos FireWire o Thunderbolt antiguos, a veces se puede extraer la clave de la RAM.
Ataque al TPM: Si tienes acceso físico avanzado, se puede intentar "escuchar" la clave cuando el chip TPM la envía al procesador durante el arranque (requiere hardware externo como una Raspberry Pi o analizador lógico).