winforensics-mcp

Um servidor MCP abrangente para perícia digital no Windows, executado no KALI Linux

Documentação

WinForensics MCP

Servidor MCP de Forense Windows

DFIR do Windows a partir do Linux - Um kit de ferramentas forense abrangente projetado para ambientes Linux sem dependências de runtime do Windows. Analise artefatos do Windows nativamente, com um sidecar opcional em Rust SIDR para a Pesquisa do Windows.


Projetos Relacionados

  • mem_forensics-mcp - Servidor MCP de Forense de Memória Unificado - Mecanismo em múltiplas camadas que combina a velocidade do Rust com a cobertura do Vol3
  • mac_forensics-mcp - DFIR para macOS - Logs Unificados, FSEvents, Spotlight, Plists, bancos de dados SQLite, Atributos Estendidos

Recursos

Forense Principal

CategoriaCapacidades
Logs EVTXConsultas estruturadas compactas, filtros de campos, correlação de logon, resumos NTLM e exportação JSONL
NTDS OfflineConsulte contas SAM exatas, SIDs de domínio e metadados de confiança sem descriptografia de credenciais
RegistroAnalise SAM, SYSTEM, SOFTWARE, SECURITY e NTUSER.DAT; consultas paginadas, FILETIMEs normalizados e correlação USBSTOR/WPD
Coleta RemotaColete artefatos via WinRM (senha ou pass-the-hash)

Artefatos de Execução

CategoriaCapacidades
Análise de PEAnálise estática com hashes (MD5/SHA1/SHA256/imphash), imports, exports, detecção de empacotadores
PrefetchEvidências de execução com contagens de execução, carimbos de data/hora, arquivos carregados
AmcacheHashes SHA1 e carimbos de data/hora de primeira ocorrência do Amcache.hve
SRUMFiltragem exata de aplicativo/data/hora, contadores brutos de recursos, totais de rede em MB/MiB e agregação opcional do SRUDB.dat

Artefatos do Sistema de Arquivos

CategoriaCapacidades
MFTAnálise da Master File Table com metadados ADS e detecção de timestomping
Diário USNDiário de alterações para operações de arquivos e recuperação de arquivos excluídos
Linha do TempoLinha do tempo unificada de MFT, USN, Prefetch, Amcache, EVTX

Atividade do Usuário

CategoriaCapacidades
NavegadorHistórico e downloads do Edge, Chrome e Firefox
Arquivos LNKAnálise de atalhos do Windows para arquivos acessados recentemente
ShellBagsHistórico de navegação de pastas do UsrClass.dat e NTUSER.DAT, incluindo compartilhamentos UNC e interiores de arquivos navegados (libfwsi)
RecentDocsRastreamento de documentos recentes baseado no Registro
Pesquisa do WindowsWindows.edb de arquivos, histórico da internet, histórico de atividades e recuperação de System.Search.AutoSummary com suporte a SIDR

Forense de Rede

CategoriaCapacidades
Análise de PCAPAnalise arquivos PCAP/PCAPNG - conversas, consultas DNS, solicitações HTTP, conexões suspeitas

Análise de Captura do API Monitor

CategoriaCapacidades
Análise APMXAnalise capturas do API Monitor (.apmx64/.apmx86) - metadados de processo, extração de chamadas de API, valores de parâmetros
Detecção de PadrõesDetecte injeção, hollowing, despejo de credenciais e outros padrões de ataque de sequências de chamadas de API capturadas com mapeamento MITRE ATT&CK
Correlação de HandlesRastreie valores de handles entre chamadas para reconstruir cadeias de ataque (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread)
Análise de InjeçãoExtraia detalhes enriquecidos de cadeias de injeção: PID/processo alvo, tamanho do shellcode, endereços de alocação, classificação de técnica
Base de Conhecimento de API26.944 definições de API do Windows com assinaturas de parâmetros, mapeamentos de DLL e navegação por categoria

Detecção de Malware

CategoriaCapacidades
Varredura YARA718 regras do signature-base - APT, ransomware, webshells, ferramentas de hacking
Pacotes de IoCPacotes de IoC comportamentais para caça em logs exportados, nomes de arquivos e cargas úteis de PCAP; inclui pacote impacket-iocs opcional GPL-2.0 com 65 regras
VirusTotalConsultas de reputação de hash/IP/domínio com cache e limitação de taxa (camada gratuita suportada)
Integração DiEDetecte empacotadores (UPX, Themida, VMProtect), compiladores, .NET, instaladores via Detect It Easy

Orquestradores

FerramentaO Que Faz
investigate_executionCorrelaciona Prefetch + Amcache + SRUM para responder "Este binário foi executado?"
investigate_user_activityCorrelaciona Navegador + ShellBags + LNK + RecentDocs para linha do tempo de atividade do usuário
hunt_iocProcura IoC (hash/nome de arquivo/IP/domínio) em TODAS as fontes de artefatos + varredura YARA opcional
hunt_ioc_packCaça IoCs comportamentais de pacotes de metadados incluídos/externos, como impacket-iocs
build_timelineConstrói linha do tempo forense unificada de múltiplas fontes

Utilitários

FerramentaO Que Faz
ingest_parsed_csvImporta saída CSV da ferramenta Eric Zimmerman (MFTECmd, PECmd, AmcacheParser)

Instalação

Pré-requisitos

# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc

# Ensure Python 3.10+
python3 --version

Instalar do PyPI

uv tool install winforensics-mcp

Instalar do código-fonte

git clone https://github.com/x746b/winforensics-mcp.git
cd winforensics-mcp

# Install with uv (recommended)
uv sync

# Or install with all optional extras
uv venv && source .venv/bin/activate
uv pip install -e ".[all]"

A análise da Pesquisa do Windows usa SIDR 0.9.2. O repositório de código-fonte inclui versões Linux reduzidas para ARM64 (.tools/sidr) e x86_64 (.tools/sidr_x86), compiladas a partir do commit fixado registrado em seus manifestos adjacentes. Qualquer arquitetura pode recompilar essa revisão exata com:

bash scripts/build_sidr.sh

O servidor descobre o SIDR a partir de um argumento explícito da ferramenta, WINFORENSICS_SIDR_PATH, o binário incluído correspondente à arquitetura, ou PATH, nessa ordem. Ele nunca baixa ou compila executáveis em tempo de execução. Compile ou forneça o SIDR 0.9.2 separadamente em plataformas não suportadas. Sem o SIDR, windows_search_parse usa um fallback pyesedb parcial claramente marcado que não pode recuperar todos os valores longos compactados.

Verificar

uv run python -m winforensics_mcp.server
# Should start without errors (Ctrl+C to exit)

Adicionar a um cliente MCP

Registre winforensics-mcp como um servidor stdio local nas configurações do seu cliente MCP. O formato e a localização da configuração dependem do cliente. Para clientes que aceitam JSON mcpServers, uma instalação via PyPI (uv tool install winforensics-mcp) fica assim:

{
  "mcpServers": {
    "winforensics-mcp": {
      "command": "winforensics-mcp"
    }
  }
}

Para um checkout do código-fonte (uv sync), use:

{
  "mcpServers": {
    "winforensics-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/winforensics-mcp", "python", "-m", "winforensics_mcp.server"]
    }
  }
}

Substitua o caminho de exemplo pelo caminho absoluto do seu checkout. Se o seu cliente usar um formato de configuração diferente, insira o mesmo comando e argumentos nas configurações do servidor MCP. Certifique-se de que winforensics-mcp ou uv, respectivamente, esteja no PATH do cliente e use a lista de servidores MCP do cliente para confirmar a conexão.


Exemplos de Início Rápido

Este Binário Foi Executado?

Investigate if mimikatz.exe was executed on the system at /mnt/evidence

O orquestrador investigate_execution verifica Prefetch, Amcache e SRUM:

{
  "target": "mimikatz.exe",
  "execution_confirmed": true,
  "confidence": "HIGH",
  "evidence": [
    {"source": "Prefetch", "finding": "Executed 3 times, last at 2024-03-15T14:23:45Z"},
    {"source": "Amcache", "finding": "SHA1: abc123..., First seen: 2024-03-14T09:00:00Z"},
    {"source": "SRUM", "finding": "Network: 15.2 MB sent; Foreground: 47 seconds"}
  ]
}

Caçar IoC em Todos os Artefatos

Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidence

A ferramenta hunt_ioc procura em Prefetch, Amcache, SRUM, MFT, USN, Navegador, EVTX e, opcionalmente, YARA:

{
  "ioc": "204bc44c651e17f65c95314e0b6dfee586b72089",
  "ioc_type": "sha1",
  "found": true,
  "sources_with_hits": ["Amcache", "MFT"],
  "findings": [
    {"source": "Amcache", "matches": 1, "details": "bloodhound.exe"},
    {"source": "MFT", "matches": 1, "details": "Users\\Admin\\Downloads\\bloodhound.exe"}
  ]
}

Consultas Compactas de EVTX e AD Offline

Use compact, fields, where e max_chars para manter os resultados de EVTX focados:

{
  "evtx_path": "/evidence/Security.evtx",
  "event_ids": [4724],
  "where": {"EventData.SubjectUserName": {"neq": "Administrator"}},
  "compact": true,
  "fields": ["EventID", "TimeCreated", "EventData.TargetUserName"],
  "max_chars": 12000
}

Siga next_cursor com a mesma consulta; evtx_get_event abre um registro completo. Use os auxiliares abaixo para correlação de logon, resumos NTLM raros-primeiro e exportações JSONL. As ferramentas de descritores decodificam hex/base64 explícitos e relatam valores indisponíveis honestamente. As ferramentas NTDS consultam metadados de conta, domínio e confiança sem descriptografia de credenciais ou SYSTEM.

Consulte a referência de consultas para exemplos, limites e semântica de completude.

Referência de Ferramentas

Orquestradores (Investigação de Alto Nível)

FerramentaDescrição
investigate_executionCorrelacione Prefetch/Amcache/SRUM para provar execução de binário
investigate_user_activityCorrelacione Navegador/ShellBags/LNK/RecentDocs para atividade do usuário
hunt_iocCaça IoC (hash/nome de arquivo/IP/domínio) em todos os artefatos; yara_scan=True adiciona inteligência de ameaças YARA
build_timelineConstrua linha do tempo unificada de múltiplas fontes de artefatos

Artefatos de Execução

FerramentaDescrição
file_analyze_peAnálise estática de PE - hashes, imports, exports, nome de programa Authenticode, detecção de empacotadores
disk_parse_prefetchAnalise Prefetch para evidências de execução
disk_parse_amcacheAnalise Amcache.hve para hashes SHA1 e carimbos de data/hora
disk_parse_srumAnalise SRUDB.dat com filtros de aplicativo exatos/regex, intervalos UTC, unidades de rede derivadas e agregação opcional

Detecção de Malware (YARA)

FerramentaDescrição
yara_scan_fileVarra arquivo com 718 regras YARA (Mimikatz, CobaltStrike, webshells, APT, ransomware)
yara_scan_directoryVarredura em lote de diretório para malware
yara_list_rulesListe regras YARA disponíveis/incluídas

Pacotes de IoC Comportamentais

FerramentaDescrição
ioc_pack_listListe pacotes de IoC incluídos e externos com metadados de licença
hunt_ioc_packCaça IoCs comportamentais em exportações de texto, nomes de arquivos e cargas úteis de PCAP

Inteligência de Ameaças (VirusTotal)

FerramentaDescrição
vt_lookup_hashConsulte hash de arquivo (MD5/SHA1/SHA256) no VirusTotal
vt_lookup_behaviorDomínios de sandbox limitados, URLs, comandos, gravações de registro/arquivos; persistência opcional de resultados completos
vt_lookup_ipObtenha reputação de endereço IP e geolocalização
vt_lookup_domainObtenha reputação e categorização de domínio
vt_lookup_fileCalcule hashes de arquivo e consulte no VirusTotal

Forense de Rede (PCAP)

FerramentaDescrição
pcap_get_statsObtenha estatísticas de PCAP - contagens de pacotes, protocolos, principais comunicadores
pcap_get_conversationsExtraia conversas TCP/UDP com contagens de bytes
pcap_get_dnsExtraia consultas e respostas DNS
pcap_get_httpExtraia solicitações HTTP com URLs, métodos, user-agents
pcap_searchProcure strings ou padrões regex em cargas úteis de pacotes
pcap_find_suspiciousDetecte indicadores de C2, beaconing, tunelamento DNS

Análise de Captura do API Monitor (APMX)

FerramentaDescrição
apmx_parseAnalise captura .apmx64/.apmx86 - informações de processo, módulos, contagens de chamadas
apmx_get_callsExtraia chamadas de API com filtragem, paginação e suporte a intervalo de tempo
apmx_get_call_detailsRegistros detalhados com valores de parâmetros, valores de retorno, carimbos de data/hora
apmx_detect_patternsDetecte padrões de ataque (injeção, hollowing, despejo de credenciais) com IDs MITRE ATT&CK
apmx_correlate_handlesRastreie cadeias de produtor/consumidor de handles entre chamadas de API
apmx_get_injection_infoExtração enriquecida de cadeias de injeção (PID alvo, tamanho do shellcode, técnica)
apmx_get_calls_aroundJanela de contexto de chamadas ao redor de um registro específico
apmx_search_paramsProcure em todos os registros um valor de parâmetro específico
api_analyze_importsAnálise completa de imports de PE com detecção de padrões e mapeamento MITRE ATT&CK
api_detect_patternsDetecte padrões de ataque em tabelas de imports de PE
api_lookupConsulte assinatura de API do Windows (26.944 APIs com parâmetros, DLL, categoria)
api_search_categoryNavegue por APIs por categoria (ex.: "Injeção de Processo", "Gerenciamento de Arquivos")

Detecção de Empacotadores (DiE)

FerramentaDescrição
die_analyze_fileAnalise arquivo para empacotadores, compiladores, protetores, .NET
die_scan_directoryVarredura em lote de diretório para executáveis empacotados
die_get_packer_infoObtenha informações sobre empacotador (dificuldade, ferramentas de desempacotamento)

Sistema de Arquivos

FerramentaDescrição
disk_parse_mftAnalise $MFT com metadados ADS e detecção de timestomping
disk_parse_usn_journalAnalise $J para operações de arquivos e arquivos excluídos

Atividade do Usuário

FerramentaDescrição
browser_get_historyAnalise histórico e downloads do Edge/Chrome/Firefox
user_parse_lnk_filesAnalise atalhos do Windows para caminhos de destino
user_parse_shellbagsAnalise ShellBags (UsrClass.dat + NTUSER.DAT) para navegação de pastas, compartilhamentos de rede e navegação de arquivos
windows_search_parseAnalise um Windows.edb explícito com SIDR; filtre e pagine registros de arquivos, internet, atividades e conteúdo indexado

Active Directory Offline

FerramentaDescrição
ntds_get_object_by_samLê metadados permitidos para um seletor exato de conta SAM offline
ntds_get_object_sidRetorna metadados de SID com status explícito de ambiguidade/completude
ntds_get_domain_infoLê metadados de domínio e atribuição de raiz de floresta com base em evidências
ntds_get_trustsLê metadados de confiança paginados sem segredos de autenticação

Logs de Eventos

FerramentaDescrição
evtx_list_filesLista arquivos EVTX em um diretório
evtx_get_statsObtém contagens de eventos, intervalo de tempo, distribuição de IDs de Evento
evtx_searchPesquisa com filtros, projeção compacta de campos, orçamentos de resposta e continuação estável
evtx_get_eventRecupera um evento normalizado completo usando sua referência vinculada à fonte
evtx_correlate_logon_idJunta ocorrências de LUID de assunto/alvo dentro de uma janela de tempo explícita
evtx_exportPersiste JSONL filtrado com hash, diagnósticos de conclusão e pré-visualização limitada
evtx_ntlm_operational_summaryAgrupa eventos NTLM 4021/4022/4023 e destaca combinações raras de processo/usuário
security_descriptor_decodeDecodifica bytes de descritor autorrelativo limitados a partir de hex/base64 explícito
evtx_describe_security_descriptorDescreve um descritor de atributo EVTX ou relata seu placeholder de origem
evtx_security_searchPesquisas de eventos de segurança pré-construídas (logon, criação de processo, etc.)
evtx_attack_summaryResumo TSV compacto para triagem rápida - uma linha por evento, apenas colunas relevantes a ataques
evtx_explain_event_idObtém descrição do ID de Evento

Registro

FerramentaDescrição
registry_get_keyObtém chave e valores específicos
registry_searchPesquisa valores por padrão
registry_queryConsulta de registro paginada exata/substring/regex com escopo de subárvore, projeção de campos e diagnósticos
registry_get_persistenceObtém chaves Run e serviços
registry_get_usersObtém contas de usuário do SAM
registry_get_usb_historyCorrelaciona identidade USBSTOR, serial físico, nomes de dispositivos WPD e rótulos de volume secundários
registry_get_system_infoObtém versão do SO, nome do host, fuso horário
registry_get_networkObtém configuração de rede

Utilitários

FerramentaDescrição
ingest_parsed_csvImporta saída CSV do Eric Zimmerman (MFTECmd, PECmd, AmcacheParser, SrumECmd)
forensics_list_important_eventsLista IDs de Eventos importantes por canal
forensics_list_registry_keysLista chaves de registro forenses por categoria

Coleta Remota

FerramentaDescrição
remote_collect_artifactsColeta artefatos via WinRM (senha ou pass-the-hash)
remote_get_system_infoObtém informações do sistema remoto

Configuração

Chave de API do VirusTotal

# Option 1: Environment variable
export VIRUSTOTAL_API_KEY="your-api-key-here"

# Option 2: Config file
mkdir -p ~/.config/winforensics-mcp
echo "your-api-key-here" > ~/.config/winforensics-mcp/vt_api_key

Obtenha sua chave de API gratuita em virustotal.com. O nível gratuito é limitado a 4 requisições/minuto; o cliente gerencia o limite de taxa e armazena resultados em cache por 24 horas.


Solução de Problemas

DiE (Detect It Easy) não encontrado

# Debian/Ubuntu
sudo apt install detect-it-easy

# Or download from https://github.com/horsicq/DIE-engine/releases

SIDR não encontrado

Os checkouts de origem incluem versões SIDR reduzidas para Linux ARM64 e x86_64. Para reconstruir a revisão fixada para o alvo Rust atual, execute:

bash scripts/build_sidr.sh

Para outra instalação, defina WINFORENSICS_SIDR_PATH para um executável SIDR 0.9.2. O parser relata o caminho do executável, versão, SHA-256, estado do banco de dados, completude da extração e hashes de evidência em cada resposta. Consulte .tools/SIDR-LICENSE para a licença Apache-2.0 do sidecar incluído.

Remover Servidor MCP

Remova a entrada winforensics-mcp das configurações de servidor do seu cliente MCP.


Licença

Créditos: omerbenamram/evtx (parser EVTX em Rust), strozfriedberg/sidr (Windows Search), Rohitab Batra (API Monitor), Neo23x0/signature-base (regras YARA), horsicq/DIE-engine (Detect It Easy)

O código principal winforensics-mcp é licenciado sob MIT. Consulte LICENSE.

Pacotes opcionais de IoC incluídos podem usar licenças diferentes:

  • winforensics_mcp/ioc_packs/impacket-iocs contém material derivado de ThatTotallyRealMyth/Impacket-IoCs e é licenciado sob GPL-2.0. Consulte winforensics_mcp/ioc_packs/impacket-iocs/LICENSE.

Feito para a comunidade DFIR. Nenhum Windows necessário >)