dfWinReg: Análisis Forense de Registro Windows
dfWinReg: Análisis Forense de Registro Windows
python3-dfwinreg (Digital Forensics Windows Registry) es una biblioteca de Python diseñada para proporcionar un acceso de bajo nivel a los archivos del Registro de Windows (hives). En Kali Linux, es una herramienta esencial para analistas forenses que necesitan leer y extraer datos de registros de Windows de forma programática.
Aquí tienes una guía sobre qué es, cómo instalarlo y cómo empezar a usarlo.
1. ¿Qué es dfWinReg?
Es parte del ecosistema de herramientas de Log2Timeline (Plaso). A diferencia de otras herramientas que dependen de la API de Windows, dfwinreg lee directamente el formato de archivo binario.
Soporte de archivos: Puede leer archivos NTUSER.DAT, SYSTEM, SOFTWARE, SAM, etc.
Independencia: No necesita que el sistema operativo sea Windows para funcionar.
Virtualización: Permite combinar varios archivos de registro para verlos como un "árbol" único, similar a como lo vería un usuario en
regedit.
2. Instalación en Kali Linux
Kali suele tener gran parte de estas herramientas en sus repositorios oficiales. Para instalar la biblioteca de Python 3, abre la terminal y ejecuta:
sudo apt update
sudo apt install python3-dfwinreg
Si estás desarrollando un script y prefieres usar un entorno virtual o pip:
pip install dfwinreg
3. Conceptos Clave
Para usar esta librería, debes entender su estructura de objetos:
RegFile: Representa un único archivo de registro físico (ej.
SYSTEM).WinRegistry: Un objeto de nivel superior que puede contener múltiples archivos.
WinRegKey: Representa una "carpeta" o clave dentro del registro.
WinRegValue: Representa los datos (valores) contenidos en una clave.
4. Ejemplo Básico de Uso (Scripting)
Si quieres crear un script sencillo para leer una clave específica de un archivo de registro que hayas extraído, el código se vería así:
from dfwinreg import registry_file
# 1. Abrir el archivo de registro
reg_file = registry_file.RegistryFile()
with open('SYSTEM', 'rb') as file_object:
reg_file.Open(file_object)
# 2. Obtener una clave específica
key = reg_file.GetKeyByPath('\\Setup')
if key:
print(f"Clave encontrada: {key.path}")
# 3. Listar subclaves
for subkey in key.GetSubkeys():
print(f" Subclave: {subkey.name}")
# 4. Leer valores
for value in key.GetValues():
print(f" Valor: {value.name} - Datos: {value.data}")
5. ¿Por qué usarlo en Kali?
En una investigación forense real, normalmente montas el disco de la víctima en Kali. Dado que el registro de Windows es una de las fuentes de evidencia más ricas (programas ejecutados, dispositivos USB conectados, configuración de red), dfwinreg te permite automatizar la extracción de estos datos sin alterar la evidencia original.