winforensics-mcp

A comprehensive MCP server for Windows digital forensics on KALI Linux

Windows Forensics MCP Server

Windows DFIR from Linux - A comprehensive forensics toolkit designed entirely for Linux environments with zero Windows tool dependencies. Parse Windows artifacts natively using pure Python libraries.


Related Projects

  • mem_forensics-mcp - Unified Memory Forensics MCP Server - Multi-tier engine combining Rust speed with Vol3 coverage
  • mac_forensics-mcp - macOS DFIR - Unified Logs, FSEvents, Spotlight, Plists, SQLite databases, Extended Attributes

Features

Core Forensics

CategoryCapabilities
EVTX LogsParse Windows Event Logs with filtering, search, and pre-built security queries
RegistryAnalyze SAM, SYSTEM, SOFTWARE, SECURITY, NTUSER.DAT hives
Remote CollectionCollect artifacts via WinRM (password or pass-the-hash)

Execution Artifacts

CategoryCapabilities
PE AnalysisStatic analysis with hashes (MD5/SHA1/SHA256/imphash), imports, exports, packer detection
PrefetchExecution evidence with run counts, timestamps, loaded files
AmcacheSHA1 hashes and first-seen timestamps from Amcache.hve
SRUMApplication resource usage, CPU time, network activity from SRUDB.dat

File System Artifacts

CategoryCapabilities
MFTMaster File Table parsing with timestomping detection
USN JournalChange journal for file operations and deleted file recovery
TimelineUnified timeline from MFT, USN, Prefetch, Amcache, EVTX

User Activity

CategoryCapabilities
BrowserEdge, Chrome, Firefox history and downloads
LNK FilesWindows shortcut analysis for recently accessed files
ShellBagsFolder navigation history with suspicious path detection
RecentDocsRegistry-based recent document tracking

Network Forensics

CategoryCapabilities
PCAP AnalysisParse PCAP/PCAPNG files - conversations, DNS queries, HTTP requests, suspicious connections

API Monitor Capture Analysis

CategoryCapabilities
APMX ParsingParse API Monitor captures (.apmx64/.apmx86) - process metadata, API call extraction, parameter values
Pattern DetectionDetect injection, hollowing, credential dumping, and other attack patterns from captured API call sequences with MITRE ATT&CK mapping
Handle CorrelationTrack handle values across calls to reconstruct attack chains (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread)
Injection AnalysisExtract enriched injection chain details: target PID/process, shellcode size, allocation addresses, technique classification
API Knowledge Base26,944 Windows API definitions with parameter signatures, DLL mappings, and category browsing

Malware Detection

CategoryCapabilities
YARA Scanning718 rules from signature-base - APT, ransomware, webshells, hacktools
VirusTotalHash/IP/domain reputation lookups with caching and rate limiting (free tier supported)
DiE IntegrationDetect packers (UPX, Themida, VMProtect), compilers, .NET, installers via Detect It Easy

Orchestrators

ToolWhat It Does
investigate_executionCorrelates Prefetch + Amcache + SRUM to answer "Was this binary executed?"
investigate_user_activityCorrelates Browser + ShellBags + LNK + RecentDocs for user activity timeline
hunt_iocSearches for IOC (hash/filename/IP/domain) across ALL artifact sources + optional YARA scanning
build_timelineBuilds unified forensic timeline from multiple sources

Utilities

ToolWhat It Does
ingest_parsed_csvImport Eric Zimmerman tool CSV output (MFTECmd, PECmd, AmcacheParser)

Installation

Prerequisites

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

# Ensure Python 3.10+
python3 --version

Install from PyPI

uv tool install winforensics-mcp

Install from source

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

Verify

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

Adding to Claude CLI

Installed from PyPI

claude mcp add winforensics-mcp --scope user -- uv run winforensics-mcp

Installed from sources

claude mcp add winforensics-mcp \
  --scope user \
  -- uv run --directory /path/to/winforensics-mcp python -m winforensics_mcp.server

Verify:

claude mcp list
# Should show winforensics-mcp

LLM Integration (CLAUDE.md)

For AI-assisted forensic analysis, include CLAUDE.md in your case directory. It provides:

  • Orchestrator-first guidance - Ensures LLMs use high-level tools before low-level parsers
  • Token efficiency - Reduces API costs by 50%+ through proper tool selection
  • Investigation workflow - Step-by-step methodology for consistent analysis

Usage

Copy CLAUDE.md to your case directory:

cp /path/to/winforensics-mcp/CLAUDE.md /your/case/directory/
# Edit paths in CLAUDE.md to match your case

The LLM will automatically follow the orchestrator-first approach:

QuestionOrchestrator Used
"Was malware.exe executed?"investigate_execution
"What did the user do?"investigate_user_activity
"Find this hash everywhere"hunt_ioc
"Build incident timeline"build_timeline

Quick Start Examples

Was This Binary Executed?

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

The investigate_execution orchestrator checks Prefetch, Amcache, and 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"}
  ]
}

Hunt for IOC Across All Artifacts

Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidence

The hunt_ioc tool searches Prefetch, Amcache, SRUM, MFT, USN, Browser, EVTX, and optionally 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"}
  ]
}

Tool Reference

Orchestrators (High-Level Investigation)

ToolDescription
investigate_executionCorrelate Prefetch/Amcache/SRUM to prove binary execution
investigate_user_activityCorrelate Browser/ShellBags/LNK/RecentDocs for user activity
hunt_iocHunt IOC (hash/filename/IP/domain) across all artifacts; yara_scan=True adds YARA threat intel
build_timelineBuild unified timeline from multiple artifact sources

Execution Artifacts

ToolDescription
file_analyze_peStatic PE analysis - hashes, imports, exports, packer detection
disk_parse_prefetchParse Prefetch for execution evidence
disk_parse_amcacheParse Amcache.hve for SHA1 hashes and timestamps
disk_parse_srumParse SRUDB.dat for app resource and network usage

Malware Detection (YARA)

ToolDescription
yara_scan_fileScan file with 718 YARA rules (Mimikatz, CobaltStrike, webshells, APT, ransomware)
yara_scan_directoryBatch scan directory for malware
yara_list_rulesList available/bundled YARA rules

Threat Intelligence (VirusTotal)

ToolDescription
vt_lookup_hashLook up file hash (MD5/SHA1/SHA256) on VirusTotal
vt_lookup_ipGet IP address reputation and geolocation
vt_lookup_domainGet domain reputation and categorization
vt_lookup_fileCalculate file hashes and look up on VirusTotal

Network Forensics (PCAP)

ToolDescription
pcap_get_statsGet PCAP statistics - packet counts, protocols, top talkers
pcap_get_conversationsExtract TCP/UDP conversations with byte counts
pcap_get_dnsExtract DNS queries and responses
pcap_get_httpExtract HTTP requests with URLs, methods, user-agents
pcap_searchSearch packet payloads for strings or regex patterns
pcap_find_suspiciousDetect C2 indicators, beaconing, DNS tunneling

API Monitor Capture Analysis (APMX)

ToolDescription
apmx_parseParse .apmx64/.apmx86 capture - process info, modules, call counts
apmx_get_callsExtract API calls with filtering, pagination, and time range support
apmx_get_call_detailsDetailed records with parameter values, return values, timestamps
apmx_detect_patternsDetect attack patterns (injection, hollowing, credential dumping) with MITRE ATT&CK IDs
apmx_correlate_handlesTrack handle producer/consumer chains across API calls
apmx_get_injection_infoEnriched injection chain extraction (target PID, shellcode size, technique)
apmx_get_calls_aroundContext window of calls around a specific record
apmx_search_paramsSearch all records for a specific parameter value
api_analyze_importsFull PE import analysis with pattern detection and MITRE ATT&CK mapping
api_detect_patternsDetect attack patterns from PE import tables
api_lookupLook up Windows API signature (26,944 APIs with params, DLL, category)
api_search_categoryBrowse APIs by category (e.g., "Process Injection", "File Management")

Packer Detection (DiE)

ToolDescription
die_analyze_fileAnalyze file for packers, compilers, protectors, .NET
die_scan_directoryBatch scan directory for packed executables
die_get_packer_infoGet info about packer (difficulty, unpack tools)

File System

ToolDescription
disk_parse_mftParse $MFT with timestomping detection
disk_parse_usn_journalParse $J for file operations and deleted files

User Activity

ToolDescription
browser_get_historyParse Edge/Chrome/Firefox history and downloads
user_parse_lnk_filesParse Windows shortcuts for target paths
user_parse_shellbagsParse ShellBags for folder navigation history

Event Logs

ToolDescription
evtx_list_filesList EVTX files in a directory
evtx_get_statsGet event counts, time range, Event ID distribution
evtx_searchSearch with filters (time, Event ID, keywords)
evtx_security_searchPre-built security event searches (logon, process creation, etc.)
evtx_attack_summaryCompact TSV summary for rapid triage - one line per event, attack-relevant columns only
evtx_explain_event_idGet Event ID description

Registry

ToolDescription
registry_get_keyGet specific key and values
registry_searchSearch values by pattern
registry_get_persistenceGet Run keys and services
registry_get_usersGet user accounts from SAM
registry_get_usb_historyGet USB device history
registry_get_system_infoGet OS version, hostname, timezone
registry_get_networkGet network configuration

Utilities

ToolDescription
ingest_parsed_csvImport Eric Zimmerman CSV output (MFTECmd, PECmd, AmcacheParser, SrumECmd)
forensics_list_important_eventsList important Event IDs by channel
forensics_list_registry_keysList forensic registry keys by category

Remote Collection

ToolDescription
remote_collect_artifactsCollect artifacts via WinRM (password or pass-the-hash)
remote_get_system_infoGet remote system info

Configuration

VirusTotal API Key

# 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

Get your free API key at virustotal.com. Free tier is rate-limited to 4 requests/minute; the client handles rate limiting and caches results for 24 hours.


Troubleshooting

DiE (Detect It Easy) not found

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

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

Remove MCP Server

claude mcp remove winforensics-mcp --scope user

License

Credits: Rohitab Batra (API Monitor), Neo23x0/signature-base (YARA rules), horsicq/DIE-engine (Detect It Easy)

MIT License | xtk | Built for the DFIR community. No Windows required >)

Related Servers