mcpField
W
Winforensics Mcp

Winforensics Mcp

Local
github.com/x746bSecurity25Updated 4w ago

About Winforensics Mcp

Winforensics Mcp is an MCP server for Windows digital forensics in Linux environments, aimed at DFIR investigators analyzing offline evidence without a Windows runtime. It parses and correlates artifacts, searches for IOCs, and builds timelines.

Key features

  1. 01Parse Windows logs, registry, and filesystem artifacts
  2. 02Analyze execution traces and user activity
  3. 03Correlate artifacts and build unified timelines
  4. 04Scan YARA rules and hunt behavioral IOCs
  5. 05Analyze PCAP and API Monitor captures

Use cases

  1. 01Investigate whether a binary ran and examine related activity
  2. 02Search multiple evidence sources for IOCs
  3. 03Reconstruct an event timeline from logs and filesystem artifacts

MCP support

It runs as a local stdio MCP server and exposes Windows forensics tools to MCP clients. Register winforensics-mcp in the client's settings.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README
WinForensics MCP

Windows Forensics MCP Server

Windows DFIR from Linux - A comprehensive forensics toolkit designed for Linux environments with no Windows runtime dependencies. Parse Windows artifacts natively, with an optional Rust SIDR sidecar for Windows Search.


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 LogsCompact structured queries, field filters, logon correlation, NTLM summaries, and JSONL export
Offline NTDSQuery exact SAM accounts, domain SIDs, and trust metadata without credential decryption
RegistryAnalyze SAM, SYSTEM, SOFTWARE, SECURITY, and NTUSER.DAT; paginated queries, normalized FILETIMEs, and USBSTOR/WPD correlation
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
SRUMExact application/time filtering, raw resource counters, network MB/MiB totals, and optional aggregation from SRUDB.dat
File System Artifacts
CategoryCapabilities
MFTMaster File Table parsing with ADS metadata and 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 from both UsrClass.dat and NTUSER.DAT, incl. UNC shares and browsed archive interiors (libfwsi)
RecentDocsRegistry-based recent document tracking
Windows SearchSIDR-backed Windows.edb file, internet-history, activity-history, and System.Search.AutoSummary recovery
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
IoC PacksBehavioral IoC packs for hunting across exported logs, filenames, and PCAP payloads; includes optional GPL-2.0 impacket-iocs pack with 65 rules
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
hunt_ioc_packHunts behavioral IoCs from bundled/external metadata packs such as impacket-iocs
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]"

Windows Search parsing uses SIDR 0.9.2. The source repository includes stripped Linux releases for ARM64 (.tools/sidr) and x86_64 (.tools/sidr_x86), built from the pinned commit recorded in their adjacent manifests. Either architecture can rebuild that exact revision with:

bash scripts/build_sidr.sh

The server discovers SIDR from an explicit tool argument, WINFORENSICS_SIDR_PATH, the architecture-matched bundled binary, or PATH, in that order. It never downloads or builds executables at runtime. Build or supply SIDR 0.9.2 separately on unsupported platforms. Without SIDR, windows_search_parse uses a clearly marked partial pyesedb fallback that cannot recover every compressed long value.

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

Add to an MCP client

Register winforensics-mcp as a local stdio server in your MCP client's settings. Configuration format and location depend on the client. For clients that accept mcpServers JSON, a PyPI install (uv tool install winforensics-mcp) looks like this:

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

For a source checkout (uv sync), use:

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

Replace the example path with the absolute path to your checkout. If your client uses a different configuration format, enter the same command and arguments through its MCP server settings. Make sure winforensics-mcp or uv, respectively, is on the client's PATH, then use the client's MCP server list to confirm it connects.


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

Compact EVTX and Offline AD Queries

Use compact, fields, where, and max_chars to keep EVTX results focused:

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

Follow next_cursor with the same query; evtx_get_event opens a full record. Use the helpers below for logon correlation, rare-first NTLM summaries, and JSONL exports. Descriptor tools decode explicit hex/base64 and report unavailable values honestly. NTDS tools query account, domain, and trust metadata without SYSTEM or credential decryption.

See the query reference for examples, limits, and completeness semantics.

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, Authenticode program name, packer detection
disk_parse_prefetchParse Prefetch for execution evidence
disk_parse_amcacheParse Amcache.hve for SHA1 hashes and timestamps
disk_parse_srumParse SRUDB.dat with exact/regex app filters, UTC ranges, derived network units, and optional aggregation
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
Behavioral IoC Packs
ToolDescription
ioc_pack_listList bundled and external IoC packs with license metadata
hunt_ioc_packHunt behavioral IoCs across text exports, filenames, and PCAP payloads
Threat Intelligence (VirusTotal)
ToolDescription
vt_lookup_hashLook up file hash (MD5/SHA1/SHA256) on VirusTotal
vt_lookup_behaviorBounded sandbox domains, URLs, commands, registry/file writes; optional full-result persistence
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 ADS metadata and 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 (UsrClass.dat + NTUSER.DAT) for folder navigation, network shares and archive browsing
windows_search_parseParse an explicit Windows.edb with SIDR; filter and paginate file, internet, activity, and indexed-content records
Offline Active Directory
ToolDescription
ntds_get_object_by_samRead allowlisted metadata for an exact offline SAM account selector
ntds_get_object_sidReturn SID metadata with explicit ambiguity/completeness status
ntds_get_domain_infoRead domain metadata and evidence-backed forest-root attribution
ntds_get_trustsRead paginated trust metadata without authentication secrets
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, compact field projection, response budgets, and stable continuation
evtx_get_eventRetrieve a full normalized event using its source-bound reference
evtx_correlate_logon_idJoin subject/target LUID occurrences within an explicit time window
evtx_exportPersist filtered JSONL with a hash, completion diagnostics, and bounded preview
evtx_ntlm_operational_summaryGroup NTLM 4021/4022/4023 events and surface rare process/user combinations
security_descriptor_decodeDecode bounded self-relative descriptor bytes from explicit hex/base64
evtx_describe_security_descriptorDescribe an EVTX attribute descriptor or report its source placeholder
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_queryPaginated exact/substring/regex registry query with subtree scope, field projection, and diagnostics
registry_get_persistenceGet Run keys and services
registry_get_usersGet user accounts from SAM
registry_get_usb_historyCorrelate USBSTOR identity, physical serial, WPD device names, and secondary volume labels
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
SIDR not found

Source checkouts include stripped SIDR releases for Linux ARM64 and x86_64. To rebuild the pinned revision for the current Rust target, run:

bash scripts/build_sidr.sh

For another installation, set WINFORENSICS_SIDR_PATH to a SIDR 0.9.2 executable. The parser reports the executable path, version, SHA-256, database state, extraction completeness, and evidence hashes in every response. See .tools/SIDR-LICENSE for the bundled sidecar's Apache-2.0 license.

Remove MCP Server

Remove the winforensics-mcp entry from your MCP client's server settings.


License

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

Core winforensics-mcp code is MIT licensed. See LICENSE.

Optional bundled IoC packs may use different licenses:

  • winforensics_mcp/ioc_packs/impacket-iocs contains material derived from ThatTotallyRealMyth/Impacket-IoCs and is licensed under GPL-2.0. See winforensics_mcp/ioc_packs/impacket-iocs/LICENSE.

Built for the DFIR community. No Windows required >)

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.