Communitygithub.com

análisis-del-registro-de-windows-para-artefactos

Extrae y analiza archivos de registro (hives) de Windows utilizando herramientas como RegRipper.

¿Qué es análisis-del-registro-de-windows-para-artefactos?

Esta habilidad permite a un agente de IA realizar análisis forenses profundo del registro de Windows para investigar incidentes de seguridad, actividad de usuarios y posibles infecciones de malware. El agente puede extraer hives del registro (SAM, SYSTEM, SOFTWARE, NTUSER.DAT) de una imagen forense montada de solo lectura, y luego procesarlos con herramientas como RegRipper (plugin-based), python-registry, y otros analizadores forenses. El análisis cubre la identificación de mecanismos de persistencia y autorun (claves Run/RunOnce), el historial de ejecución de programas (UserAssist con codificación ROT13), documentos recientes, URLs escritas, dispositivos USB conectados (USBSTOR), y configuraciones de red y sistema. La herramienta es compatible con entornos de análisis forense como SIFT Workstation y utiliza scripts en Bash y Python con librerías como python-registry. El flujo de trabajo incluye extracción automatizada de hives con hash de integridad (SHA-256), análisis individual por hive, y correlación de marcas de tiempo (Last Write Time) con otros artefactos forenses para reconstruir líneas de tiempo de actividad. Casos de uso comunes incluyen la detección de persistencia de malware, reconstrucción de actividad de usuario, identificación de software no autorizado e investigación de exfiltración de datos por USB.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-windows-registry-for-artifacts

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Análisis del Registro de Windows para Artefactos

Cuándo Usarlo

  • Al investigar la actividad de un usuario en un sistema Windows durante un incidente
  • Para identificar mecanismos de autorun/persistencia utilizados por malware
  • Al rastrear software instalado, dispositivos USB y conexiones de red
  • Durante investigaciones de amenazas internas para reconstruir acciones de usuario
  • Para correlacionar marcas de tiempo del registro con otros artefactos forenses

Prerrequisitos

  • Imagen forense o archivos de hive del registro extraídos
  • RegRipper, Registry Explorer (Eric Zimmerman) o python-registry
  • Acceso a las ubicaciones de los hives del registro (SAM, SYSTEM, SOFTWARE, NTUSER.DAT, UsrClass.dat)
  • Comprensión de la estructura del Registro de Windows (hives, claves, valores)
  • SIFT Workstation o entorno de análisis forense

Flujo de Trabajo

Paso 1: Extraer Hives del Registro de la Imagen Forense

# Montar la imagen forense en modo solo lectura
mkdir /mnt/evidence
mount -o ro,loop,offset=$((2048*512)) /cases/case-2024-001/images/evidence.dd /mnt/evidence

# Copiar hives del sistema
cp /mnt/evidence/Windows/System32/config/SAM /cases/case-2024-001/registry/
cp /mnt/evidence/Windows/System32/config/SYSTEM /cases/case-2024-001/registry/
cp /mnt/evidence/Windows/System32/config/SOFTWARE /cases/case-2024-001/registry/
cp /mnt/evidence/Windows/System32/config/SECURITY /cases/case-2024-001/registry/
cp /mnt/evidence/Windows/System32/config/DEFAULT /cases/case-2024-001/registry/

# Copiar hives específicos de usuario
cp /mnt/evidence/Users/*/NTUSER.DAT /cases/case-2024-001/registry/
cp /mnt/evidence/Users/*/AppData/Local/Microsoft/Windows/UsrClass.dat /cases/case-2024-001/registry/

# Copiar registros de transacciones (para recuperación de hives sucios)
cp /mnt/evidence/Windows/System32/config/*.LOG* /cases/case-2024-001/registry/logs/

# Generar hash de todos los hives extraídos
sha256sum /cases/case-2024-001/registry/* > /cases/case-2024-001/registry/hive_hashes.txt

Paso 2: Analizar con RegRipper para Extracción Automatizada de Artefactos

# Instalar RegRipper
git clone https://github.com/keydet89/RegRipper3.0.git /opt/regripper

# Ejecutar RegRipper contra NTUSER.DAT (perfil de usuario)
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/NTUSER.DAT \
   -f ntuser > /cases/case-2024-001/analysis/ntuser_report.txt

# Ejecutar contra el hive SYSTEM
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -f system > /cases/case-2024-001/analysis/system_report.txt

# Ejecutar contra el hive SOFTWARE
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SOFTWARE \
   -f software > /cases/case-2024-001/analysis/software_report.txt

# Ejecutar contra el hive SAM (cuentas de usuario)
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SAM \
   -f sam > /cases/case-2024-001/analysis/sam_report.txt

# Ejecutar plugins específicos
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/NTUSER.DAT \
   -p userassist > /cases/case-2024-001/analysis/userassist.txt

perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -p usbstor > /cases/case-2024-001/analysis/usbstor.txt

Paso 3: Extraer Entradas de Persistencia y Autorun

# Usando python-registry para extracción dirigida
pip install python-registry

python3 << 'PYEOF'
from Registry import Registry

# Abrir hive SOFTWARE
reg = Registry.Registry("/cases/case-2024-001/registry/SOFTWARE")

# Comprobar claves Run (inicio automático)
autorun_paths = [
    "Microsoft\\Windows\\CurrentVersion\\Run",
    "Microsoft\\Windows\\CurrentVersion\\RunOnce",
    "Microsoft\\Windows\\CurrentVersion\\RunServices",
    "Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\Run",
    "Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run"
]

for path in autorun_paths:
    try:
        key = reg.open(path)
        print(f"\n=== {path} (Última modificación: {key.timestamp()}) ===")
        for value in key.values():
            print(f"  {value.name()}: {value.value()}")
    except Registry.RegistryKeyNotFoundException:
        pass

# Comprobar servicios instalados
key = reg.open("Microsoft\\Windows NT\\CurrentVersion\\Svchost")
print(f"\n=== Grupos de Svchost ===")
for value in key.values():
    print(f"  {value.name()}: {value.value()}")
PYEOF

# Comprobar NTUSER.DAT para autorun específico de usuario
python3 << 'PYEOF'
from Registry import Registry

reg = Registry.Registry("/cases/case-2024-001/registry/NTUSER.DAT")

user_autorun = [
    "Software\\Microsoft\\Windows\\CurrentVersion\\Run",
    "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce",
    "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\Run"
]

for path in user_autorun:
    try:
        key = reg.open(path)
        print(f"\n=== {path} (Última modificación: {key.timestamp()}) ===")
        for value in key.values():
            print(f"  {value.name()}: {value.value()}")
    except Registry.RegistryKeyNotFoundException:
        pass
PYEOF

Paso 4: Analizar Artefactos de Actividad del Usuario

# Extraer datos de UserAssist (historial de ejecución de programas con codificación ROT13)
python3 << 'PYEOF'
from Registry import Registry
import codecs, struct, datetime

reg = Registry.Registry("/cases/case-2024-001/registry/NTUSER.DAT")

ua_path = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\UserAssist"
key = reg.open(ua_path)

for guid_key in key.subkeys():
    count_key = guid_key.subkey("Count")
    print(f"\n=== {guid_key.name()} ===")
    for value in count_key.values():
        decoded_name = codecs.decode(value.name(), 'rot_13')
        data = value.value()
        if len(data) >= 16:
            run_count = struct.unpack('<I', data[4:8])[0]
            focus_count = struct.unpack('<I', data[8:12])[0]
            timestamp = struct.unpack('<Q', data[60:68])[0] if len(data) >= 68 else 0
            if timestamp > 0:
                ts = datetime.datetime(1601,1,1) + datetime.timedelta(microseconds=timestamp//10)
                print(f"  {decoded_name}: Ejecuciones={run_count}, Foco={focus_count}, Último={ts}")
            else:
                print(f"  {decoded_name}: Ejecuciones={run_count}, Foco={focus_count}")
PYEOF

# Extraer Documentos Recientes (listas MRU)
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/NTUSER.DAT \
   -p recentdocs > /cases/case-2024-001/analysis/recentdocs.txt

# Extraer URLs escritas (navegador)
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/NTUSER.DAT \
   -p typedurls > /cases/case-2024-001/analysis/typedurls.txt

# Extraer rutas escritas en el Explorador
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/NTUSER.DAT \
   -p typedpaths > /cases/case-2024-001/analysis/typedpaths.txt

Paso 5: Extraer Información del Sistema y Red

# Nombre del equipo y versión del SO desde el hive SYSTEM
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -p compname > /cases/case-2024-001/analysis/system_info.txt

# Interfaces de red y configuración
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -p nic2 >> /cases/case-2024-001/analysis/system_info.txt

# Historial de redes inalámbricas
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SOFTWARE \
   -p networklist > /cases/case-2024-001/analysis/network_history.txt

# Configuración de zona horaria
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -p timezone > /cases/case-2024-001/analysis/timezone.txt

# Hora de apagado
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SYSTEM \
   -p shutdown > /cases/case-2024-001/analysis/shutdown.txt

# Software instalado desde claves Uninstall
perl /opt/regripper/rip.pl -r /cases/case-2024-001/registry/SOFTWARE \
   -p uninstall > /cases/case-2024-001/analysis/installed_software.txt

Conceptos Clave

ConceptoDescripción
Hive del registroArchivo binario que almacena una sección del registro (SAM, SYSTEM, SOFTWARE, NTUSER.DAT)
MRU (Recientemente Usado)Listas que rastrean archivos, comandos y términos de búsqueda accedidos recientemente
UserAssistEntradas del registro codificadas en ROT13 que rastrean la ejecución de programas con marcas de tiempo
ShimCacheCaché de compatibilidad de aplicaciones que registra programas ejecutados
AmCacheHistorial detallado de ejecución que incluye hashes SHA-1 de ejecutables
BAM/DAMModerador de actividad en segundo plano/escritorio que rastrea ejecución de programas en Win10+
Hora de última escrituraMarca de tiempo en las claves del registro que indica cuándo se modificaron por última vez
Registros de transaccionesArchivos de diario que permiten recuperar el estado del registro después de un apagado incorrecto

Herramientas y Sistemas

HerramientaPropósito
RegRipperExtracción automatizada de artefactos del registro con arquitectura de plugins
Registry ExplorerHerramienta GUI de Eric Zimmerman para análisis interactivo del registro
python-registryBiblioteca Python para análisis programático de hives del registro
RECmdHerramienta de línea de comandos de Eric Zimmerman para análisis del registro
yarpYet Another Registry Parser para análisis basado en Python
AppCompatCacheParserAnalizador dedicado de ShimCache/AppCompatCache
AmcacheParserHerramienta dedicada de análisis de AmCache.hve
ShellBags ExplorerHerramienta especializada para analizar artefactos de ShellBag

Escenarios Comunes

Escenario 1: Investigación de Persistencia de Malware Extraer hives SOFTWARE y NTUSER.DAT, revisar todas las claves Run/RunOnce en busca de entradas no autorizadas, examinar servicios en busca de adiciones sospechosas, verificar claves de registro de tareas programadas, correlacionar marcas de tiempo de autorun con la línea de tiempo de ejecución del malware.

Escenario 2: Reconstrucción de Actividad del Usuario Analizar UserAssist para historial de ejecución de programas, examinar RecentDocs para archivos accedidos, verificar TypedPaths para navegación en el Explorador, extraer ShellBags para patrones de acceso a carpetas, construir una línea de tiempo de actividad del usuario alrededor de la ventana del incidente.

Escenario 3: Detección de Software No Autorizado Analizar claves Uninstall para todas las aplicaciones instaladas, comparar con la línea base de software aprobado, verificar BAM/DAM para programas ejecutados recientemente no en la lista aprobada, examinar AppCompatCache para evidencia de ejecución incluso después de la desinstalación.

Escenario 4: Investigación de Exfiltración de Datos por USB Extraer entradas USBSTOR del hive SYSTEM para dispositivos conectados, correlacionar números de serie de dispositivos con MountedDevices, verificar NTUSER.DAT MountPoints2 para acceso del usuario a medios extraíbles, examinar registros SetupAPI para marcas de tiempo de primera conexión.

Formato de Salida

Resumen de Análisis del Registro:
  Sistema: DESKTOP-ABC123 (Windows 10 Pro Build 19041)
  Zona Horaria: Hora Estándar del Este (UTC-5)
  Último Apagado: 2024-01-18 23:45:12 UTC

  Entradas de Autorun:
    HKLM Run:     5 entradas (1 sospechosa: "updater.exe" -> C:\ProgramData\svc\updater.exe)
    HKCU Run:     3 entradas (todas legítimas)
    Servicios:    142 entradas (2 desconocidas: "WinDefSvc", "SysMonAgent")

  Actividad del Usuario (NTUSER.DAT):
    Programas UserAssist:  234 entradas
    Documentos Recientes:    89 entradas
    URLs Escritas:           45 entradas
    Rutas Escritas:          12 entradas

  Dispositivos USB Conectados:
    - Kingston DataTraveler (Serial: 0019E06B4521) - Primero: 2024-01-10, Último: 2024-01-18
    - WD My Passport (Serial: 575834314131) - Primero: 2024-01-15, Último: 2024-01-15

  Software Instalado:       127 aplicaciones
  Hallazgos Sospechosos:    3 elementos marcados para revisión

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills relacionados