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
| Categoria | Capacidades |
|---|
| Logs EVTX | Consultas estruturadas compactas, filtros de campos, correlação de logon, resumos NTLM e exportação JSONL |
| NTDS Offline | Consulte contas SAM exatas, SIDs de domínio e metadados de confiança sem descriptografia de credenciais |
| Registro | Analise SAM, SYSTEM, SOFTWARE, SECURITY e NTUSER.DAT; consultas paginadas, FILETIMEs normalizados e correlação USBSTOR/WPD |
| Coleta Remota | Colete artefatos via WinRM (senha ou pass-the-hash) |
Artefatos de Execução
| Categoria | Capacidades |
|---|
| Análise de PE | Análise estática com hashes (MD5/SHA1/SHA256/imphash), imports, exports, detecção de empacotadores |
| Prefetch | Evidências de execução com contagens de execução, carimbos de data/hora, arquivos carregados |
| Amcache | Hashes SHA1 e carimbos de data/hora de primeira ocorrência do Amcache.hve |
| SRUM | Filtragem 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
| Categoria | Capacidades |
|---|
| MFT | Análise da Master File Table com metadados ADS e detecção de timestomping |
| Diário USN | Diário de alterações para operações de arquivos e recuperação de arquivos excluídos |
| Linha do Tempo | Linha do tempo unificada de MFT, USN, Prefetch, Amcache, EVTX |
Atividade do Usuário
| Categoria | Capacidades |
|---|
| Navegador | Histórico e downloads do Edge, Chrome e Firefox |
| Arquivos LNK | Análise de atalhos do Windows para arquivos acessados recentemente |
| ShellBags | Histórico de navegação de pastas do UsrClass.dat e NTUSER.DAT, incluindo compartilhamentos UNC e interiores de arquivos navegados (libfwsi) |
| RecentDocs | Rastreamento de documentos recentes baseado no Registro |
| Pesquisa do Windows | Windows.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
| Categoria | Capacidades |
|---|
| Análise de PCAP | Analise arquivos PCAP/PCAPNG - conversas, consultas DNS, solicitações HTTP, conexões suspeitas |
Análise de Captura do API Monitor
| Categoria | Capacidades |
|---|
| Análise APMX | Analise capturas do API Monitor (.apmx64/.apmx86) - metadados de processo, extração de chamadas de API, valores de parâmetros |
| Detecção de Padrões | Detecte 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 Handles | Rastreie valores de handles entre chamadas para reconstruir cadeias de ataque (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread) |
| Análise de Injeção | Extraia 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 API | 26.944 definições de API do Windows com assinaturas de parâmetros, mapeamentos de DLL e navegação por categoria |
Detecção de Malware
| Categoria | Capacidades |
|---|
| Varredura YARA | 718 regras do signature-base - APT, ransomware, webshells, ferramentas de hacking |
| Pacotes de IoC | Pacotes 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 |
| VirusTotal | Consultas de reputação de hash/IP/domínio com cache e limitação de taxa (camada gratuita suportada) |
| Integração DiE | Detecte empacotadores (UPX, Themida, VMProtect), compiladores, .NET, instaladores via Detect It Easy |
Orquestradores
| Ferramenta | O Que Faz |
|---|
investigate_execution | Correlaciona Prefetch + Amcache + SRUM para responder "Este binário foi executado?" |
investigate_user_activity | Correlaciona Navegador + ShellBags + LNK + RecentDocs para linha do tempo de atividade do usuário |
hunt_ioc | Procura IoC (hash/nome de arquivo/IP/domínio) em TODAS as fontes de artefatos + varredura YARA opcional |
hunt_ioc_pack | Caça IoCs comportamentais de pacotes de metadados incluídos/externos, como impacket-iocs |
build_timeline | Constrói linha do tempo forense unificada de múltiplas fontes |
Utilitários
| Ferramenta | O Que Faz |
|---|
ingest_parsed_csv | Importa 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)
| Ferramenta | Descrição |
|---|
investigate_execution | Correlacione Prefetch/Amcache/SRUM para provar execução de binário |
investigate_user_activity | Correlacione Navegador/ShellBags/LNK/RecentDocs para atividade do usuário |
hunt_ioc | Caça IoC (hash/nome de arquivo/IP/domínio) em todos os artefatos; yara_scan=True adiciona inteligência de ameaças YARA |
build_timeline | Construa linha do tempo unificada de múltiplas fontes de artefatos |
Artefatos de Execução
| Ferramenta | Descrição |
|---|
file_analyze_pe | Análise estática de PE - hashes, imports, exports, nome de programa Authenticode, detecção de empacotadores |
disk_parse_prefetch | Analise Prefetch para evidências de execução |
disk_parse_amcache | Analise Amcache.hve para hashes SHA1 e carimbos de data/hora |
disk_parse_srum | Analise SRUDB.dat com filtros de aplicativo exatos/regex, intervalos UTC, unidades de rede derivadas e agregação opcional |
Detecção de Malware (YARA)
| Ferramenta | Descrição |
|---|
yara_scan_file | Varra arquivo com 718 regras YARA (Mimikatz, CobaltStrike, webshells, APT, ransomware) |
yara_scan_directory | Varredura em lote de diretório para malware |
yara_list_rules | Liste regras YARA disponíveis/incluídas |
Pacotes de IoC Comportamentais
| Ferramenta | Descrição |
|---|
ioc_pack_list | Liste pacotes de IoC incluídos e externos com metadados de licença |
hunt_ioc_pack | Caça IoCs comportamentais em exportações de texto, nomes de arquivos e cargas úteis de PCAP |
Inteligência de Ameaças (VirusTotal)
| Ferramenta | Descrição |
|---|
vt_lookup_hash | Consulte hash de arquivo (MD5/SHA1/SHA256) no VirusTotal |
vt_lookup_behavior | Domínios de sandbox limitados, URLs, comandos, gravações de registro/arquivos; persistência opcional de resultados completos |
vt_lookup_ip | Obtenha reputação de endereço IP e geolocalização |
vt_lookup_domain | Obtenha reputação e categorização de domínio |
vt_lookup_file | Calcule hashes de arquivo e consulte no VirusTotal |
Forense de Rede (PCAP)
| Ferramenta | Descrição |
|---|
pcap_get_stats | Obtenha estatísticas de PCAP - contagens de pacotes, protocolos, principais comunicadores |
pcap_get_conversations | Extraia conversas TCP/UDP com contagens de bytes |
pcap_get_dns | Extraia consultas e respostas DNS |
pcap_get_http | Extraia solicitações HTTP com URLs, métodos, user-agents |
pcap_search | Procure strings ou padrões regex em cargas úteis de pacotes |
pcap_find_suspicious | Detecte indicadores de C2, beaconing, tunelamento DNS |
Análise de Captura do API Monitor (APMX)
| Ferramenta | Descrição |
|---|
apmx_parse | Analise captura .apmx64/.apmx86 - informações de processo, módulos, contagens de chamadas |
apmx_get_calls | Extraia chamadas de API com filtragem, paginação e suporte a intervalo de tempo |
apmx_get_call_details | Registros detalhados com valores de parâmetros, valores de retorno, carimbos de data/hora |
apmx_detect_patterns | Detecte padrões de ataque (injeção, hollowing, despejo de credenciais) com IDs MITRE ATT&CK |
apmx_correlate_handles | Rastreie cadeias de produtor/consumidor de handles entre chamadas de API |
apmx_get_injection_info | Extração enriquecida de cadeias de injeção (PID alvo, tamanho do shellcode, técnica) |
apmx_get_calls_around | Janela de contexto de chamadas ao redor de um registro específico |
apmx_search_params | Procure em todos os registros um valor de parâmetro específico |
api_analyze_imports | Análise completa de imports de PE com detecção de padrões e mapeamento MITRE ATT&CK |
api_detect_patterns | Detecte padrões de ataque em tabelas de imports de PE |
api_lookup | Consulte assinatura de API do Windows (26.944 APIs com parâmetros, DLL, categoria) |
api_search_category | Navegue por APIs por categoria (ex.: "Injeção de Processo", "Gerenciamento de Arquivos") |
Detecção de Empacotadores (DiE)
| Ferramenta | Descrição |
|---|
die_analyze_file | Analise arquivo para empacotadores, compiladores, protetores, .NET |
die_scan_directory | Varredura em lote de diretório para executáveis empacotados |
die_get_packer_info | Obtenha informações sobre empacotador (dificuldade, ferramentas de desempacotamento) |
Sistema de Arquivos
| Ferramenta | Descrição |
|---|
disk_parse_mft | Analise $MFT com metadados ADS e detecção de timestomping |
disk_parse_usn_journal | Analise $J para operações de arquivos e arquivos excluídos |
Atividade do Usuário
| Ferramenta | Descrição |
|---|
browser_get_history | Analise histórico e downloads do Edge/Chrome/Firefox |
user_parse_lnk_files | Analise atalhos do Windows para caminhos de destino |
user_parse_shellbags | Analise ShellBags (UsrClass.dat + NTUSER.DAT) para navegação de pastas, compartilhamentos de rede e navegação de arquivos |
windows_search_parse | Analise um Windows.edb explícito com SIDR; filtre e pagine registros de arquivos, internet, atividades e conteúdo indexado |
Active Directory Offline
| Ferramenta | Descrição |
|---|
ntds_get_object_by_sam | Lê metadados permitidos para um seletor exato de conta SAM offline |
ntds_get_object_sid | Retorna metadados de SID com status explícito de ambiguidade/completude |
ntds_get_domain_info | Lê metadados de domínio e atribuição de raiz de floresta com base em evidências |
ntds_get_trusts | Lê metadados de confiança paginados sem segredos de autenticação |
Logs de Eventos
| Ferramenta | Descrição |
|---|
evtx_list_files | Lista arquivos EVTX em um diretório |
evtx_get_stats | Obtém contagens de eventos, intervalo de tempo, distribuição de IDs de Evento |
evtx_search | Pesquisa com filtros, projeção compacta de campos, orçamentos de resposta e continuação estável |
evtx_get_event | Recupera um evento normalizado completo usando sua referência vinculada à fonte |
evtx_correlate_logon_id | Junta ocorrências de LUID de assunto/alvo dentro de uma janela de tempo explícita |
evtx_export | Persiste JSONL filtrado com hash, diagnósticos de conclusão e pré-visualização limitada |
evtx_ntlm_operational_summary | Agrupa eventos NTLM 4021/4022/4023 e destaca combinações raras de processo/usuário |
security_descriptor_decode | Decodifica bytes de descritor autorrelativo limitados a partir de hex/base64 explícito |
evtx_describe_security_descriptor | Descreve um descritor de atributo EVTX ou relata seu placeholder de origem |
evtx_security_search | Pesquisas de eventos de segurança pré-construídas (logon, criação de processo, etc.) |
evtx_attack_summary | Resumo TSV compacto para triagem rápida - uma linha por evento, apenas colunas relevantes a ataques |
evtx_explain_event_id | Obtém descrição do ID de Evento |
Registro
| Ferramenta | Descrição |
|---|
registry_get_key | Obtém chave e valores específicos |
registry_search | Pesquisa valores por padrão |
registry_query | Consulta de registro paginada exata/substring/regex com escopo de subárvore, projeção de campos e diagnósticos |
registry_get_persistence | Obtém chaves Run e serviços |
registry_get_users | Obtém contas de usuário do SAM |
registry_get_usb_history | Correlaciona identidade USBSTOR, serial físico, nomes de dispositivos WPD e rótulos de volume secundários |
registry_get_system_info | Obtém versão do SO, nome do host, fuso horário |
registry_get_network | Obtém configuração de rede |
Utilitários
| Ferramenta | Descrição |
|---|
ingest_parsed_csv | Importa saída CSV do Eric Zimmerman (MFTECmd, PECmd, AmcacheParser, SrumECmd) |
forensics_list_important_events | Lista IDs de Eventos importantes por canal |
forensics_list_registry_keys | Lista chaves de registro forenses por categoria |
Coleta Remota
| Ferramenta | Descrição |
|---|
remote_collect_artifacts | Coleta artefatos via WinRM (senha ou pass-the-hash) |
remote_get_system_info | Obté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 >)