winforensics-mcp

Un servidor MCP completo para la forensia digital de Windows en KALI Linux

Documentación

WinForensics MCP

Servidor MCP de Forense de Windows

DFIR de Windows desde Linux - Un kit de herramientas forense integral diseñado para entornos Linux sin dependencias de runtime de Windows. Analiza artefactos de Windows de forma nativa, con un sidecar opcional SIDR en Rust para la búsqueda de Windows.


Proyectos Relacionados

  • mem_forensics-mcp - Servidor MCP unificado de forense de memoria - Motor de múltiples niveles que combina la velocidad de Rust con la cobertura de Vol3
  • mac_forensics-mcp - DFIR de macOS - Registros unificados, FSEvents, Spotlight, Plists, bases de datos SQLite, atributos extendidos

Características

Forense Principal

CategoríaCapacidades
Registros EVTXConsultas estructuradas compactas, filtros de campos, correlación de inicios de sesión, resúmenes NTLM y exportación JSONL
NTDS sin conexiónConsulta cuentas SAM exactas, SIDs de dominio y metadatos de confianza sin descifrado de credenciales
RegistroAnaliza SAM, SYSTEM, SOFTWARE, SECURITY y NTUSER.DAT; consultas paginadas, FILETIMEs normalizados y correlación USBSTOR/WPD
Recopilación remotaRecopila artefactos mediante WinRM (contraseña o pass-the-hash)

Artefactos de Ejecución

CategoríaCapacidades
Análisis PEAnálisis estático con hashes (MD5/SHA1/SHA256/imphash), importaciones, exportaciones, detección de empaquetadores
PrefetchEvidencia de ejecución con recuentos de ejecución, marcas de tiempo, archivos cargados
AmcacheHashes SHA1 y marcas de tiempo de primera aparición de Amcache.hve
SRUMFiltrado exacto de aplicación/tiempo, contadores de recursos sin procesar, totales de red MB/MiB y agregación opcional de SRUDB.dat

Artefactos del Sistema de Archivos

CategoríaCapacidades
MFTAnálisis de la Tabla de Archivos Maestra con metadatos ADS y detección de manipulación de marcas de tiempo
Diario USNDiario de cambios para operaciones de archivos y recuperación de archivos eliminados
Línea de tiempoLínea de tiempo unificada de MFT, USN, Prefetch, Amcache, EVTX

Actividad del Usuario

CategoríaCapacidades
NavegadorHistorial y descargas de Edge, Chrome, Firefox
Archivos LNKAnálisis de accesos directos de Windows para archivos de acceso reciente
ShellBagsHistorial de navegación de carpetas de UsrClass.dat y NTUSER.DAT, incl. recursos compartidos UNC e interiores de archivos explorados (libfwsi)
RecentDocsSeguimiento de documentos recientes basado en el registro
Búsqueda de WindowsArchivo respaldado por SIDR Windows.edb, historial de internet, historial de actividad y recuperación de System.Search.AutoSummary

Forense de Red

CategoríaCapacidades
Análisis PCAPAnaliza archivos PCAP/PCAPNG - conversaciones, consultas DNS, solicitudes HTTP, conexiones sospechosas

Análisis de Capturas del Monitor de API

CategoríaCapacidades
Análisis APMXAnaliza capturas de API Monitor (.apmx64/.apmx86) - metadatos de proceso, extracción de llamadas de API, valores de parámetros
Detección de patronesDetecta inyección, hollowing, volcado de credenciales y otros patrones de ataque de secuencias de llamadas de API capturadas con mapeo MITRE ATT&CK
Correlación de identificadoresRastrea valores de identificadores entre llamadas para reconstruir cadenas de ataque (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread)
Análisis de inyecciónExtrae detalles enriquecidos de cadenas de inyección: PID/proceso objetivo, tamaño del shellcode, direcciones de asignación, clasificación de técnica
Base de conocimiento de API26,944 definiciones de API de Windows con firmas de parámetros, asignaciones DLL y navegación por categorías

Detección de Malware

CategoríaCapacidades
Escaneo YARA718 reglas de signature-base - APT, ransomware, webshells, herramientas de hacking
Paquetes IoCPaquetes de IoC conductuales para la búsqueda en registros exportados, nombres de archivo y cargas útiles PCAP; incluye paquete opcional GPL-2.0 impacket-iocs con 65 reglas
VirusTotalConsultas de reputación de hash/IP/dominio con almacenamiento en caché y limitación de velocidad (nivel gratuito compatible)
Integración DiEDetecta empaquetadores (UPX, Themida, VMProtect), compiladores, .NET, instaladores mediante Detect It Easy

Orquestadores

HerramientaQué Hace
investigate_executionCorrelaciona Prefetch + Amcache + SRUM para responder "¿Se ejecutó este binario?"
investigate_user_activityCorrelaciona Navegador + ShellBags + LNK + RecentDocs para la línea de tiempo de actividad del usuario
hunt_iocBusca IoC (hash/nombre de archivo/IP/dominio) en TODAS las fuentes de artefactos + escaneo YARA opcional
hunt_ioc_packBusca IoC conductuales de paquetes de metadatos incluidos/externos como impacket-iocs
build_timelineConstruye una línea de tiempo forense unificada de múltiples fuentes

Utilidades

HerramientaQué Hace
ingest_parsed_csvImporta salida CSV de la herramienta Eric Zimmerman (MFTECmd, PECmd, AmcacheParser)

Instalación

Requisitos previos

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

# Ensure Python 3.10+
python3 --version

Instalar desde PyPI

uv tool install winforensics-mcp

Instalar desde el código fuente

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]"

El análisis de la búsqueda de Windows utiliza SIDR 0.9.2. El repositorio fuente incluye versiones Linux reducidas para ARM64 (.tools/sidr) y x86_64 (.tools/sidr_x86), compiladas desde la confirmación fijada registrada en sus manifiestos adyacentes. Cualquiera de las arquitecturas puede reconstruir esa revisión exacta con:

bash scripts/build_sidr.sh

El servidor descubre SIDR desde un argumento de herramienta explícito, WINFORENSICS_SIDR_PATH, el binario incluido que coincide con la arquitectura, o PATH, en ese orden. Nunca descarga ni compila ejecutables en tiempo de ejecución. Compila o proporciona SIDR 0.9.2 por separado en plataformas no compatibles. Sin SIDR, windows_search_parse utiliza un respaldo parcial pyesedb claramente marcado que no puede recuperar cada valor largo comprimido.

Verificar

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

Añadir a un cliente MCP

Registra winforensics-mcp como un servidor local stdio en la configuración de tu cliente MCP. El formato y la ubicación de la configuración dependen del cliente. Para clientes que aceptan JSON mcpServers, una instalación desde PyPI (uv tool install winforensics-mcp) se ve así:

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

Para una copia del código fuente (uv sync), usa:

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

Reemplaza la ruta de ejemplo con la ruta absoluta a tu copia. Si tu cliente usa un formato de configuración diferente, ingresa el mismo comando y argumentos a través de su configuración de servidor MCP. Asegúrate de que winforensics-mcp o uv, respectivamente, esté en el PATH del cliente, luego usa la lista de servidores MCP del cliente para confirmar que se conecta.


Ejemplos de Inicio Rápido

¿Se Ejecutó Este Binario?

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

El orquestador investigate_execution verifica Prefetch, Amcache y 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"}
  ]
}

Buscar IoC en Todos los Artefactos

Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidence

La herramienta hunt_ioc busca en Prefetch, Amcache, SRUM, MFT, USN, Navegador, EVTX y 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 y AD sin Conexión

Usa compact, fields, where y max_chars para mantener los resultados de EVTX enfocados:

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

Sigue next_cursor con la misma consulta; evtx_get_event abre un registro completo. Usa los ayudantes a continuación para la correlación de inicios de sesión, resúmenes NTLM de primero-raro y exportaciones JSONL. Las herramientas de descriptores decodifican hex/base64 explícitos e informan valores no disponibles honestamente. Las herramientas NTDS consultan metadatos de cuenta, dominio y confianza sin descifrado de credenciales o SYSTEM.

Consulta la referencia de consultas para ejemplos, límites y semántica de completitud.

Referencia de Herramientas

Orquestadores (Investigación de Alto Nivel)

HerramientaDescripción
investigate_executionCorrelaciona Prefetch/Amcache/SRUM para probar la ejecución de binarios
investigate_user_activityCorrelaciona Navegador/ShellBags/LNK/RecentDocs para la actividad del usuario
hunt_iocBusca IoC (hash/nombre de archivo/IP/dominio) en todos los artefactos; yara_scan=True añade inteligencia de amenazas YARA
build_timelineConstruye una línea de tiempo unificada de múltiples fuentes de artefactos

Artefactos de Ejecución

HerramientaDescripción
file_analyze_peAnálisis PE estático - hashes, importaciones, exportaciones, nombre de programa Authenticode, detección de empaquetadores
disk_parse_prefetchAnaliza Prefetch para evidencia de ejecución
disk_parse_amcacheAnaliza Amcache.hve para hashes SHA1 y marcas de tiempo
disk_parse_srumAnaliza SRUDB.dat con filtros de aplicación exactos/regex, rangos UTC, unidades de red derivadas y agregación opcional

Detección de Malware (YARA)

HerramientaDescripción
yara_scan_fileEscanea archivo con 718 reglas YARA (Mimikatz, CobaltStrike, webshells, APT, ransomware)
yara_scan_directoryEscaneo por lotes de directorio para malware
yara_list_rulesLista reglas YARA disponibles/incluidas

Paquetes de IoC Conductuales

HerramientaDescripción
ioc_pack_listLista paquetes de IoC incluidos y externos con metadatos de licencia
hunt_ioc_packBusca IoC conductuales en exportaciones de texto, nombres de archivo y cargas útiles PCAP

Inteligencia de Amenazas (VirusTotal)

HerramientaDescripción
vt_lookup_hashConsulta hash de archivo (MD5/SHA1/SHA256) en VirusTotal
vt_lookup_behaviorDominios de sandbox limitados, URLs, comandos, escrituras de registro/archivos; persistencia opcional de resultados completos
vt_lookup_ipObtiene reputación de dirección IP y geolocalización
vt_lookup_domainObtiene reputación de dominio y categorización
vt_lookup_fileCalcula hashes de archivo y consulta en VirusTotal

Forense de Red (PCAP)

HerramientaDescripción
pcap_get_statsObtiene estadísticas de PCAP - recuentos de paquetes, protocolos, principales interlocutores
pcap_get_conversationsExtrae conversaciones TCP/UDP con recuentos de bytes
pcap_get_dnsExtrae consultas y respuestas DNS
pcap_get_httpExtrae solicitudes HTTP con URLs, métodos, user-agents
pcap_searchBusca cadenas o patrones regex en cargas útiles de paquetes
pcap_find_suspiciousDetecta indicadores C2, beaconing, túnel DNS

Análisis de Capturas del Monitor de API (APMX)

HerramientaDescripción
apmx_parseAnaliza captura .apmx64/.apmx86 - información de proceso, módulos, recuentos de llamadas
apmx_get_callsExtrae llamadas de API con filtrado, paginación y soporte de rango de tiempo
apmx_get_call_detailsRegistros detallados con valores de parámetros, valores de retorno, marcas de tiempo
apmx_detect_patternsDetecta patrones de ataque (inyección, hollowing, volcado de credenciales) con IDs MITRE ATT&CK
apmx_correlate_handlesRastrea cadenas de productor/consumidor de identificadores entre llamadas de API
apmx_get_injection_infoExtracción enriquecida de cadenas de inyección (PID objetivo, tamaño del shellcode, técnica)
apmx_get_calls_aroundVentana de contexto de llamadas alrededor de un registro específico
apmx_search_paramsBusca en todos los registros un valor de parámetro específico
api_analyze_importsAnálisis completo de importaciones PE con detección de patrones y mapeo MITRE ATT&CK
api_detect_patternsDetecta patrones de ataque de tablas de importación PE
api_lookupConsulta firma de API de Windows (26,944 APIs con parámetros, DLL, categoría)
api_search_categoryNavega APIs por categoría (p. ej., "Inyección de Procesos", "Gestión de Archivos")

Detección de Empaquetadores (DiE)

HerramientaDescripción
die_analyze_fileAnaliza archivo para empaquetadores, compiladores, protectores, .NET
die_scan_directoryEscaneo por lotes de directorio para ejecutables empaquetados
die_get_packer_infoObtiene información sobre el empaquetador (dificultad, herramientas de desempaquetado)

Sistema de Archivos

HerramientaDescripción
disk_parse_mftAnaliza $MFT con metadatos ADS y detección de manipulación de marcas de tiempo
disk_parse_usn_journalAnaliza $J para operaciones de archivos y archivos eliminados

Actividad del Usuario

HerramientaDescripción
browser_get_historyAnaliza historial y descargas de Edge/Chrome/Firefox
user_parse_lnk_filesAnaliza accesos directos de Windows para rutas de destino
user_parse_shellbagsAnaliza ShellBags (UsrClass.dat + NTUSER.DAT) para navegación de carpetas, recursos compartidos de red y navegación de archivos
windows_search_parseAnaliza un Windows.edb explícito con SIDR; filtra y pagina registros de archivos, internet, actividad y contenido indexado

Active Directory sin Conexión

HerramientaDescripción
ntds_get_object_by_samLeer metadatos permitidos para un selector exacto de cuenta SAM offline
ntds_get_object_sidDevolver metadatos SID con estado explícito de ambigüedad/completitud
ntds_get_domain_infoLeer metadatos de dominio y atribución de raíz de bosque respaldada por evidencia
ntds_get_trustsLeer metadatos de confianza paginados sin secretos de autenticación

Registros de eventos

HerramientaDescripción
evtx_list_filesListar archivos EVTX en un directorio
evtx_get_statsObtener conteos de eventos, rango de tiempo, distribución de ID de evento
evtx_searchBuscar con filtros, proyección de campos compacta, presupuestos de respuesta y continuación estable
evtx_get_eventRecuperar un evento normalizado completo usando su referencia vinculada a la fuente
evtx_correlate_logon_idUnir ocurrencias de LUID de sujeto/objetivo dentro de una ventana de tiempo explícita
evtx_exportPersistir JSONL filtrado con hash, diagnósticos de finalización y vista previa limitada
evtx_ntlm_operational_summaryAgrupar eventos NTLM 4021/4022/4023 y resaltar combinaciones raras de proceso/usuario
security_descriptor_decodeDecodificar bytes de descriptor auto-relativo limitados desde hex/base64 explícito
evtx_describe_security_descriptorDescribir un descriptor de atributo EVTX o informar su marcador de posición de origen
evtx_security_searchBúsquedas de eventos de seguridad predefinidas (inicio de sesión, creación de procesos, etc.)
evtx_attack_summaryResumen TSV compacto para triaje rápido: una línea por evento, solo columnas relevantes para ataques
evtx_explain_event_idObtener descripción de ID de evento

Registro

HerramientaDescripción
registry_get_keyObtener clave y valores específicos
registry_searchBuscar valores por patrón
registry_queryConsulta de registro paginada exacta/subcadena/regex con alcance de subárbol, proyección de campos y diagnósticos
registry_get_persistenceObtener claves Run y servicios
registry_get_usersObtener cuentas de usuario de SAM
registry_get_usb_historyCorrelacionar identidad USBSTOR, número de serie físico, nombres de dispositivos WPD y etiquetas de volumen secundarias
registry_get_system_infoObtener versión del SO, nombre de host, zona horaria
registry_get_networkObtener configuración de red

Utilidades

HerramientaDescripción
ingest_parsed_csvImportar salida CSV de Eric Zimmerman (MFTECmd, PECmd, AmcacheParser, SrumECmd)
forensics_list_important_eventsListar ID de eventos importantes por canal
forensics_list_registry_keysListar claves de registro forenses por categoría

Recopilación remota

HerramientaDescripción
remote_collect_artifactsRecopilar artefactos mediante WinRM (contraseña o pass-the-hash)
remote_get_system_infoObtener información del sistema remoto

Configuración

Clave API de 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

Obtén tu clave API gratuita en virustotal.com. El nivel gratuito está limitado a 4 solicitudes/minuto; el cliente maneja la limitación de velocidad y almacena en caché los resultados durante 24 horas.


Solución de problemas

DiE (Detect It Easy) no encontrado

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

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

SIDR no encontrado

Los checkouts de la fuente incluyen versiones SIDR reducidas para Linux ARM64 y x86_64. Para reconstruir la revisión fijada para el objetivo Rust actual, ejecuta:

bash scripts/build_sidr.sh

Para otra instalación, establece WINFORENSICS_SIDR_PATH a un ejecutable SIDR 0.9.2. El analizador informa la ruta del ejecutable, versión, SHA-256, estado de la base de datos, completitud de extracción y hashes de evidencia en cada respuesta. Consulta .tools/SIDR-LICENSE para la licencia Apache-2.0 del sidecar incluido.

Eliminar servidor MCP

Elimina la entrada winforensics-mcp de la configuración de servidores de tu cliente MCP.


Licencia

Créditos: omerbenamram/evtx (analizador EVTX en Rust), strozfriedberg/sidr (Búsqueda de Windows), Rohitab Batra (API Monitor), Neo23x0/signature-base (reglas YARA), horsicq/DIE-engine (Detect It Easy)

El código central de winforensics-mcp tiene licencia MIT. Consulta LICENSE.

Los paquetes de IoC opcionales incluidos pueden usar licencias diferentes:

  • winforensics_mcp/ioc_packs/impacket-iocs contiene material derivado de ThatTotallyRealMyth/Impacket-IoCs y está licenciado bajo GPL-2.0. Consulta winforensics_mcp/ioc_packs/impacket-iocs/LICENSE.

Construido para la comunidad DFIR. No se requiere Windows >)