Communitygithub.com

análisis-forense-de-navegadores-con-hindsight

Analiza bases de datos de navegadores basados en Chromium con Hindsight para extraer y correlacionar el historial de navegación, descargas, cookies, contenido en caché, datos de autocompletado, contraseñas guardadas y extensiones de Chrome, Edge, Brave, Opera y Vivaldi en una línea de tiempo unificada (salida XLSX, JSON o SQLite). Útil durante la respuesta a incidentes, investigaciones de amenazas internas o casos penales cuando se necesita reconstruir la actividad web de un usuario.

¿Qué es análisis-forense-de-navegadores-con-hindsight?

Esta habilidad permite a un agente de IA realizar análisis forense de navegadores Chromium utilizando la herramienta de código abierto Hindsight. Extrae y correlaciona datos de múltiples archivos de bases de datos del navegador (Historial, Cookies, Datos Web, Datos de Inicio de Sesión, Marcadores, Preferencias) para crear una línea de tiempo cronológica unificada de la actividad web. La herramienta es compatible con Chrome, Edge, Brave, Opera y Vivaldi en Windows, macOS y Linux. Es útil en respuesta a incidentes, investigaciones de amenazas internas y casos penales, ya que permite reconstruir completamente la navegación de un usuario, incluyendo visitas a URL, descargas, términos de búsqueda, cookies de sesión y credenciales guardadas. El markdown de la habilidad incluye instrucciones detalladas de uso por línea de comandos e interfaz web, ubicaciones de perfiles de navegador, tablas de esquemas de bases de datos clave y un script Python de ejemplo para análisis personalizado. Se recomienda cuando se necesite automatizar la recolección de evidencia forense de navegadores en investigaciones de seguridad.

Compatible con~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-browser-forensics-with-hindsight

Preguntar en tu IA favorita

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

Documentación

Análisis Forense de Navegadores con Hindsight

Resumen

Hindsight es una herramienta forense de navegadores de código abierto diseñada para analizar artefactos de Google Chrome y otros navegadores basados en Chromium (Microsoft Edge, Brave, Opera, Vivaldi). Extrae y correlaciona datos de múltiples archivos de bases de datos del navegador para crear una línea de tiempo unificada de la actividad web. Hindsight puede analizar URL, historial de descargas, registros de caché, marcadores, registros de autocompletado, contraseñas guardadas, preferencias, extensiones del navegador, cookies HTTP, almacenamiento local (cookies HTML5), datos de inicio de sesión e información de sesiones/pestañas. La herramienta produce líneas de tiempo cronológicas en múltiples formatos de salida (XLSX, JSON, SQLite) que permiten a los investigadores reconstruir la actividad web del usuario para respuesta a incidentes, investigaciones de amenazas internas y casos penales.

Cuándo Usarlo

  • Al investigar incidentes de seguridad que requieran análisis forense de navegadores con Hindsight.
  • Al construir reglas de detección o consultas de búsqueda de amenazas para este dominio.
  • Cuando los analistas de SOC necesiten procedimientos estructurados para este tipo de análisis.
  • Al validar la cobertura de monitoreo de seguridad para técnicas de ataque relacionadas.

Prerrequisitos

  • Python 3.8+ con Hindsight instalado (pip install pyhindsight)
  • Acceso a los directorios de perfil del navegador desde una imagen forense
  • Datos del perfil del navegador (no cifrados con cifrado a nivel de sistema operativo)
  • Timeline Explorer o aplicación de hoja de cálculo para análisis

Ubicaciones de Perfiles de Navegador

NavegadorRuta del Perfil en Windows
Chrome%LOCALAPPDATA%\Google\Chrome\User Data\Default\
Edge%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\
Brave%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\
Opera%APPDATA%\Opera Software\Opera Stable\
Vivaldi%LOCALAPPDATA%\Vivaldi\User Data\Default\
Chrome (macOS)~/Library/Application Support/Google/Chrome/Default/
Chrome (Linux)~/.config/google-chrome/Default/

Archivos de Artefactos Clave

ArchivoContenido
HistoryVisitas a URL, descargas, búsquedas por palabras clave
CookiesCookies HTTP con dominio, caducidad, valores
Web DataEntradas de autocompletado, tarjetas de crédito guardadas
Login DataNombres de usuario y contraseñas guardados (cifrados)
BookmarksÁrbol de marcadores en JSON
PreferencesConfiguración del navegador y extensiones
Local Storage/Almacenamiento local HTML5 por dominio
Session Storage/Almacenamiento específico de sesión por dominio
Network Action PredictorURLs escritas anteriormente
ShortcutsAccesos directos y predicciones de Omnibox
Top SitesSitios visitados con frecuencia

Ejecución de Hindsight

Línea de Comandos

# Análisis básico de un perfil de Chrome
hindsight.exe -i "C:\Evidence\Users\suspect\AppData\Local\Google\Chrome\User Data\Default" -o C:\Output\chrome_analysis

# Especificar el tipo de navegador
hindsight.exe -i "/path/to/profile" -o /output/analysis -b Chrome

# Formato de salida JSON
hindsight.exe -i "C:\Evidence\Chrome\Default" -o C:\Output\chrome --format jsonl

# Con análisis de caché (más lento pero más completo)
hindsight.exe -i "C:\Evidence\Chrome\Default" -o C:\Output\chrome --cache

Interfaz Web

# Iniciar la interfaz web de Hindsight
hindsight_gui.exe
# Navegar a http://localhost:8080
# Subir o apuntar al directorio del perfil del navegador
# Configurar el formato de salida y las opciones de análisis
# Generar y descargar el informe

Detalles del Análisis de Artefactos

Historial de URL y Visitas

-- Esquema de la base de datos de Historial de Chrome (tablas clave)
-- Tabla urls: id, url, title, visit_count, typed_count, last_visit_time
-- Tabla visits: id, url, visit_time, from_visit, transition, segment_id

-- Las marcas de tiempo están en formato Chrome/WebKit: microsegundos desde 1601-01-01
-- Convertir: datetime((visit_time/1000000)-11644473600, 'unixepoch')

Historial de Descargas

-- Tabla downloads: id, current_path, target_path, start_time, end_time,
--   received_bytes, total_bytes, state, danger_type, interrupt_reason,
--   url, referrer, tab_url, mime_type, original_mime_type

Análisis de Cookies

-- Tabla cookies: creation_utc, host_key, name, value, encrypted_value,
--   path, expires_utc, is_secure, is_httponly, last_access_utc,
--   has_expires, is_persistent, priority, samesite

Script de Análisis en Python

import sqlite3
import os
import json
import sys
from datetime import datetime, timedelta


EPOCA_CHROME = datetime(1601, 1, 1)


def chrome_time_a_datetime(chrome_ts: int):
    """Convierte una marca de tiempo de Chrome a datetime."""
    if chrome_ts == 0:
        return None
    try:
        return EPOCA_CHROME + timedelta(microseconds=chrome_ts)
    except (OverflowError, OSError):
        return None


def analizar_historial_chrome(ruta_perfil: str, dir_salida: str) -> dict:
    """Analiza la base de datos de Historial de Chrome en busca de evidencia forense."""
    db_historial = os.path.join(ruta_perfil, "History")
    if not os.path.exists(db_historial):
        return {"error": "Base de datos de Historial no encontrada"}

    os.makedirs(dir_salida, exist_ok=True)
    conn = sqlite3.connect(f"file:{db_historial}?mode=ro", uri=True)

    # Visitas a URL con marcas de tiempo
    cursor = conn.cursor()
    cursor.execute("""
        SELECT u.url, u.title, v.visit_time, u.visit_count,
               v.transition & 0xFF as transition_type
        FROM visits v JOIN urls u ON v.url = u.id
        ORDER BY v.visit_time DESC LIMIT 5000
    """)
    visitas = [{
        "url": r[0], "title": r[1],
        "visit_time": str(chrome_time_a_datetime(r[2])),
        "total_visitas": r[3], "transicion": r[4]
    } for r in cursor.fetchall()]

    # Descargas
    cursor.execute("""
        SELECT target_path, tab_url, start_time, end_time,
               received_bytes, total_bytes, mime_type, state
        FROM downloads ORDER BY start_time DESC LIMIT 1000
    """)
    descargas = [{
        "ruta": r[0], "url_origen": r[1],
        "hora_inicio": str(chrome_time_a_datetime(r[2])),
        "hora_fin": str(chrome_time_a_datetime(r[3])),
        "bytes_recibidos": r[4], "bytes_totales": r[5],
        "tipo_mime": r[6], "estado": r[7]
    } for r in cursor.fetchall()]

    # Búsquedas por palabras clave
    cursor.execute("""
        SELECT k.term, u.url, k.url_id
        FROM keyword_search_terms k JOIN urls u ON k.url_id = u.id
        ORDER BY u.last_visit_time DESC LIMIT 1000
    """)
    busquedas = [{"termino": r[0], "url": r[1]} for r in cursor.fetchall()]

    conn.close()

    reporte = {
        "timestamp_analisis": datetime.now().isoformat(),
        "ruta_perfil": ruta_perfil,
        "total_visitas": len(visitas),
        "total_descargas": len(descargas),
        "total_busquedas": len(busquedas),
        "visitas": visitas,
        "descargas": descargas,
        "busquedas": busquedas
    }

    ruta_reporte = os.path.join(dir_salida, "browser_forensics.json")
    with open(ruta_reporte, "w") as f:
        json.dump(reporte, f, indent=2)

    return reporte


def main():
    if len(sys.argv) < 3:
        print("Uso: python process.py <ruta_perfil_chrome> <dir_salida>")
        sys.exit(1)
    analizar_historial_chrome(sys.argv[1], sys.argv[2])


if __name__ == "__main__":
    main()

Referencias

Ejemplo de Salida

$ python hindsight.py -i /evidence/chrome-profile -o /analysis/hindsight_output

Hindsight v2024.01 - Análisis Forense de Navegadores Chrome/Chromium
================================================================

Perfil: /evidence/chrome-profile (Chrome 120.0.6099.130)
SO: Windows 10

[+] Analizando base de datos de Historial...
    Registros de URL:          12,456
    Registros de descargas:     234
    Términos de búsqueda:       567

[+] Analizando base de datos de Cookies...
    Registros de cookies:       8,923
    Cookies cifradas:           6,712

[+] Analizando Datos Web (Autocompletado)...
    Entradas de autocompletado: 1,234
    Entradas de tarjetas:       2 (cifradas)

[+] Analizando Datos de Inicio de Sesión...
    Credenciales guardadas:     45 (cifradas)

[+] Analizando Marcadores...
    Entradas de marcadores:     189

--- Historial de Navegación (Últimas 10 Entradas) ---
Marca de tiempo (UTC)      | URL                                          | Título                       | Conteo de Visitas
2024-01-15 14:32:05.123  | https://mail.corporate.com/inbox             | Correo Corporativo           | 45
2024-01-15 14:33:12.456  | https://drive.google.com/file/d/1aBcDe...    | Q4_Financial_Report.xlsx     | 1
2024-01-15 14:35:44.789  | https://mega.nz/folder/xYz123               | MEGA - Nube Segura           | 3
2024-01-15 14:36:01.234  | https://mega.nz/folder/xYz123#upload        | MEGA - Subir                 | 8
2024-01-15 14:42:15.567  | https://pastebin.com/raw/kL9mN2pQ           | Pastebin (crudo)             | 1
2024-01-15 15:01:33.890  | https://192.168.1.50:8443/admin              | Panel de Administración      | 12
2024-01-15 15:15:22.111  | https://transfer.sh/upload                  | transfer.sh                  | 2
2024-01-15 15:30:45.222  | https://vpn-gateway.corporate.com            | Inicio de Sesión VPN         | 5
2024-01-15 16:00:00.333  | https://whatismyipaddress.com                 | Cuál es mi IP                | 1
2024-01-15 16:05:12.444  | https://protonmail.com/inbox                 | ProtonMail                   | 3

--- Descargas (Sospechosas) ---
Marca de tiempo (UTC)      | Nombre de Archivo           | URL Origen                                  | Tamaño
2024-01-15 14:33:15.000  | Q4_Financial_Report.xlsm   | https://phish-domain.com/docs/report        | 245 KB
2024-01-15 14:34:02.000  | update_client.exe           | https://cdn.evil-updates.com/client.exe     | 1.2 MB

--- Cookies (Tokens de Sesión) ---
Dominio                   | Nombre            | Expira            | Segura | HttpOnly
.corporate.com           | SESSION_ID        | 2024-01-16 14:32  | Sí     | Sí
.mega.nz                 | session           | Sesión            | Sí     | Sí
.protonmail.com          | AUTH-TOKEN        | 2024-02-15 00:00  | Sí     | Sí

Informe guardado en: /analysis/hindsight_output/Hindsight_Report.xlsx

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-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,

analyzing-docker-container-forensics

Investigate compromised Docker containers by analyzing images, layers,

Skills relacionados