Communitygithub.com

Análise de Forense de Navegadores com Hindsight

Analise bancos de dados de navegadores baseados em Chromium com o Hindsight para extrair e correlacionar histórico de navegação, downloads, cookies, conteúdo em cache, dados de preenchimento automático, senhas salvas e extensões do Chrome, Edge, Brave, Opera e Vivaldi em uma linha do tempo unificada (saída XLSX, JSON ou SQLite). Use durante resposta a incidentes, investigações de ameaças internas ou casos criminais quando precisar reconstruir a atividade de um usuário.

O que é Análise de Forense de Navegadores com Hindsight?

Esta habilidade capacita a análise forense de navegadores usando o Hindsight, uma ferramenta de código aberto especializada em extrair artefatos do Google Chrome e outros navegadores baseados em Chromium, como Microsoft Edge, Brave, Opera e Vivaldi. Ela automatiza a coleta e correlação de dados de múltiplos arquivos de banco de dados do navegador (Histórico, Cookies, Dados da Web, Dados de Login, Favoritos, Preferências e Armazenamento Local) para construir uma linha do tempo cronológica unificada da atividade web do usuário. A saída pode ser gerada nos formatos XLSX, JSON ou SQLite, facilitando a integração com outras ferramentas de investigação. É particularmente útil em cenários de resposta a incidentes, investigações de ameaças internas e casos criminais onde é necessário reconstruir as ações online de um suspeito. A habilidade inclui instruções detalhadas sobre localizações de perfis de navegador, arquivos de artefatos chave, execução da ferramenta via linha de comando ou interface web, e um script Python de exemplo para análise programática dos bancos de dados do Chrome.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Análise de Forense de Navegadores com Hindsight faz?

Visão Geral

Hindsight é uma ferramenta de código aberto para forense de navegadores, projetada para analisar artefatos do Google Chrome e outros navegadores baseados em Chromium (Microsoft Edge, Brave, Opera, Vivaldi). Ela extrai e correlaciona dados de múltiplos arquivos de banco de dados do navegador para criar uma linha do tempo unificada da atividade web. O Hindsight pode analisar URLs, histórico de downloads, registros de cache, favoritos, registros de preenchimento automático, senhas salvas, preferências, extensões de navegador, cookies HTTP, Armazenamento Local (cookies HTML5), dados de login e informações de sessão/abas. A ferramenta produz linhas do tempo cronológicas em múltiplos formatos de saída (XLSX, JSON, SQLite) que permitem aos investigadores reconstruir a atividade web do usuário para resposta a incidentes, investigações de ameaças internas e casos criminais.

Quando Usar

  • Ao investigar incidentes de segurança que exigem análise de forense de navegadores com Hindsight
  • Ao construir regras de detecção ou consultas de caça a ameaças para este domínio
  • Quando analistas de SOC precisam de procedimentos estruturados para este tipo de análise
  • Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas

Pré-requisitos

  • Python 3.8+ com Hindsight instalado (pip install pyhindsight)
  • Acesso aos diretórios de perfil do navegador a partir de uma imagem forense
  • Dados do perfil do navegador (não criptografados com criptografia de nível de SO)
  • Timeline Explorer ou aplicativo de planilha para análise

Localizações dos Perfis de Navegador

NavegadorCaminho do Perfil no 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/

Principais Arquivos de Artefatos

ArquivoConteúdo
HistoryVisitas a URLs, downloads, pesquisas por palavras-chave
CookiesCookies HTTP com domínio, data de validade, valores
Web DataEntradas de preenchimento automático, cartões de crédito salvos
Login DataNomes de usuário/senhas salvos (criptografados)
BookmarksÁrvore de favoritos em JSON
PreferencesConfiguração do navegador e extensões
Local Storage/Armazenamento Local HTML5 por domínio
Session Storage/Armazenamento específico de sessão por domínio
Network Action PredictorURLs digitados anteriormente
ShortcutsAtalhos e previsões da Omnibox
Top SitesSites visitados com frequência

Executando o Hindsight

Linha de Comando

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

# Especificar o tipo de navegador
hindsight.exe -i "/caminho/para/perfil" -o /saida/analise -b Chrome

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

# Com análise de cache (mais lento, porém mais completo)
hindsight.exe -i "C:\Evidence\Chrome\Default" -o C:\Output\chrome --cache

Interface Web

# Iniciar interface web do Hindsight
hindsight_gui.exe
# Navegar para http://localhost:8080
# Enviar ou apontar para o diretório de perfil do navegador
# Configurar formato de saída e opções de análise
# Gerar e baixar relatório

Detalhes da Análise de Artefatos

Histórico de URLs e Visitas

-- Esquema do banco de dados History do Chrome (tabelas principais)
-- urls: id, url, title, visit_count, typed_count, last_visit_time
-- visits: id, url, visit_time, from_visit, transition, segment_id

-- Carimbos de data/hora estão no formato Chrome/WebKit: microssegundos desde 1601-01-01
-- Converter: datetime((visit_time/1000000)-11644473600, 'unixepoch')

Histórico de Downloads

-- 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álise de Cookies

-- 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álise em Python

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


CHROME_EPOCH = datetime(1601, 1, 1)


def chrome_time_to_datetime(chrome_ts: int):
    """Converter carimbo de data/hora do Chrome para datetime."""
    if chrome_ts == 0:
        return None
    try:
        return CHROME_EPOCH + timedelta(microseconds=chrome_ts)
    except (OverflowError, OSError):
        return None


def analyze_chrome_history(profile_path: str, output_dir: str) -> dict:
    """Analisar banco de dados History do Chrome para evidências forenses."""
    history_db = os.path.join(profile_path, "History")
    if not os.path.exists(history_db):
        return {"error": "Banco de dados History não encontrado"}

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

    # Visitas a URLs com carimbos de data/hora
    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
    """)
    visits = [{
        "url": r[0], "title": r[1],
        "visit_time": str(chrome_time_to_datetime(r[2])),
        "total_visits": r[3], "transition": r[4]
    } for r in cursor.fetchall()]

    # Downloads
    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
    """)
    downloads = [{
        "path": r[0], "source_url": r[1],
        "start_time": str(chrome_time_to_datetime(r[2])),
        "end_time": str(chrome_time_to_datetime(r[3])),
        "received_bytes": r[4], "total_bytes": r[5],
        "mime_type": r[6], "state": r[7]
    } for r in cursor.fetchall()]

    # Pesquisas por palavras-chave
    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
    """)
    searches = [{"term": r[0], "url": r[1]} for r in cursor.fetchall()]

    conn.close()

    report = {
        "analysis_timestamp": datetime.now().isoformat(),
        "profile_path": profile_path,
        "total_visits": len(visits),
        "total_downloads": len(downloads),
        "total_searches": len(searches),
        "visits": visits,
        "downloads": downloads,
        "searches": searches
    }

    report_path = os.path.join(output_dir, "browser_forensics.json")
    with open(report_path, "w") as f:
        json.dump(report, f, indent=2)

    return report


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


if __name__ == "__main__":
    main()

Referências

Exemplo de Saída

$ python hindsight.py -i /evidencia/perfil-chrome -o /analise/saida_hindsight

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

Perfil: /evidencia/perfil-chrome (Chrome 120.0.6099.130)
SO: Windows 10

[+] Analisando banco de dados History...
    Registros de URL:          12.456
    Registros de download:     234
    Termos de pesquisa:        567

[+] Analisando banco de dados Cookies...
    Registros de cookies:       8.923
    Cookies criptografados:     6.712

[+] Analisando Web Data (Preenchimento Automático)...
    Entradas de preenchimento automático:     1.234
    Entradas de cartão de crédito:              2 (criptografadas)

[+] Analisando Login Data...
    Credenciais salvas:       45 (criptografadas)

[+] Analisando Favoritos...
    Entradas de favoritos:    189

--- Histórico de Navegação (Últimas 10 Entradas) ---
Carimbo de Data/Hora (UTC)  | URL                                          | Título                       | Contagem de Visitas
2024-01-15 14:32:05.123     | https://mail.corporate.com/inbox             | Corporate Mail               | 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 - Nuvem Segura         | 3
2024-01-15 14:36:01.234     | https://mega.nz/folder/xYz123#upload        | MEGA - Upload               | 8
2024-01-15 14:42:15.567     | https://pastebin.com/raw/kL9mN2pQ           | Pastebin (bruto)            | 1
2024-01-15 15:01:33.890     | https://192.168.1.50:8443/admin              | Painel de Administração     | 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            | Login VPN                   | 5
2024-01-15 16:00:00.333     | https://whatismyipaddress.com                 | Qual é o Meu IP             | 1
2024-01-15 16:05:12.444     | https://protonmail.com/inbox                 | ProtonMail                  | 3

--- Downloads (Suspeitos) ---
Carimbo de Data/Hora (UTC)  | Nome do Arquivo            | URL de Origem                               | Tamanho
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 Sessão) ---
Domínio                   | Nome              | Expira em           | Seguro | HttpOnly
.corporate.com            | SESSION_ID        | 2024-01-16 14:32    | Sim    | Sim
.mega.nz                  | session           | Sessão              | Sim    | Sim
.protonmail.com           | AUTH-TOKEN        | 2024-02-15 00:00    | Sim    | Sim

Relatório salvo em: /analise/saida_hindsight/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,

Habilidades Relacionadas