Skip to main content
Glama
sift-forensic-mcp

sift-forensic-mcp

by OLGTX303

FIND EVIL! — SIFT Forensic AI Agent

Autonomous incident response agent that mounts a 119 GB forensic disk image, hunts malware and anti-forensics through 18 MCP tools on a SIFT Workstation VM, and writes a courtroom-ready report — with no human in the loop.

Demo video: https://youtu.be/ySjuSR9AP3Q
License: MIT
Architecture pattern: Custom MCP Server


What it does

The agent receives a single prompt ("investigate the VANKO disk image") and autonomously:

  1. Mounts the EWF forensic image read-only via ewfmount + ntfs-3g

  2. Enumerates users, recent files, and installed software

  3. Scans for suspicious executables in %TEMP%, %AppData%, and Downloads

  4. Parses the Windows registry for persistence mechanisms

  5. Extracts and correlates Windows Event Log logon events

  6. Runs YARA malware signatures across the image

  7. Identifies Prefetch artifacts proving anti-forensic tool execution

  8. Produces findings/findings_report.json with confidence-scored IOCs

On the VANKO case it found 8 confirmed findings including WiFi packet capture, evidence destruction (SDelete), an encrypted volume (VeraCrypt FORMAT confirmed), a typosquatted RAT, and identified the subject as anthony.vanko@gmail.com.


Related MCP server: SIFTGuard

Architecture

┌──────────────────────────────────────────────────────────┐
│  Windows Host (analyst workstation)                       │
│                                                           │
│  orchestrator.py  ←→  gpt-5.4-mini (OpenAI-compat API)   │
│        │                                                  │
│  sift-forensic-mcp  (18 MCP tools, stdio transport)       │
│        │  asyncssh (TCP 22)                               │
└────────┼─────────────────────────────────────────────────┘
         │
┌────────▼─────────────────────────────────────────────────┐
│  SIFT Workstation 2026 VM  (Ubuntu 22.04, VMware NAT)     │
│                                                           │
│  /cases/VANKO/surface_physical.E01                        │
│       ewfmount → /mnt/ewf/ewf1                            │
│       kpartx   → /dev/mapper/loop0p3                      │
│       ntfs-3g  → /mnt/windows/  (READ-ONLY)               │
│                                                           │
│  SIFT tools: ewfmount, log2timeline, yara,                │
│              regripper, python-evtx, strings, file        │
└──────────────────────────────────────────────────────────┘

See docs/architecture.md for the full tool inventory and security boundary breakdown.


Prerequisites

  • Windows 10/11 host with VMware Workstation Pro 17+

  • Python 3.10+

  • OpenAI-compatible API key (or set OPENAI_BASE_URL to a local endpoint)

  • ~150 GB free disk space (119 GB evidence + SIFT VM)

  • 8 GB+ RAM (16 GB recommended)


Quick start

1. Clone and install

git clone https://github.com/OLGTX303/find-evil-sift-agent
cd find-evil-sift-agent
pip install -e .

2. Import the SIFT Workstation VM

$ovftool = "C:\Program Files (x86)\VMware\VMware Workstation\OVFTool\ovftool.exe"
& $ovftool --acceptAllEulas --name="SIFT-2026" sift-2026-04-22.ova F:\SIFT-VM\

3. Place evidence files

find\VANKO\surface_physical.E01  (through .E21)
find\VANKO\vanko-c-drive.CYLR.7z

4. Start and configure the SIFT VM

python setup_sift_vm.py
# Starts the VM, enables SSH, copies evidence — prints the VM IP at the end

5. Set environment variables

$env:OPENAI_API_KEY    = "sk-..."
$env:OPENAI_BASE_URL   = "https://api.openai.com/v1"   # or your endpoint
$env:SIFT_HOST         = "192.168.x.x"   # from setup_sift_vm.py
$env:SIFT_PORT         = "22"
$env:SIFT_USER         = "sansforensics"
$env:SIFT_PASS         = "forensics"
$env:EVIDENCE_DIR      = "/cases/VANKO"

6. Run the investigation

python orchestrator.py --output-dir ./findings

The agent prints reasoning and tool calls to stderr in real time.
Investigation takes 15–30 minutes (log2timeline on 119 GB runs in background).

7. Review results

# Structured findings report
cat findings/findings_report.json

# Full timestamped audit trail
cat findings/agent_execution_log.jsonl

MCP server (standalone — use with Claude Code)

# Register the MCP server in Claude Code
claude mcp add sift-forensic \
  -e SIFT_HOST=192.168.x.x \
  -e SIFT_PORT=22 \
  -e SIFT_USER=sansforensics \
  -e SIFT_PASS=forensics \
  -- sift-mcp

# Then in Claude Code:
# "Mount the VANKO image and find evil"

Repository layout

sift-agent/
├── orchestrator.py          ← Autonomous IR agent (gpt-5.4-mini)
├── setup_sift_vm.py         ← One-time VM setup
├── pyproject.toml
├── LICENSE                  ← MIT
├── src/sift_mcp/
│   ├── server.py            ← MCP server (stdio transport)
│   ├── tools.py             ← 18 forensic tool implementations
│   └── ssh_client.py        ← asyncssh helper with sudo support
├── findings/
│   ├── findings_report.json         ← Structured IOC report
│   └── agent_execution_log.jsonl    ← Full timestamped audit trail
├── demo/
│   ├── demo_find_evil.mp4           ← Narrated demo video (local copy)
│   ├── mcp_session.json             ← Real captured tool output
│   └── cover_3x2.png                ← Devpost thumbnail (1200×800)
└── docs/
    ├── architecture.md      ← Component diagram + security boundaries
    ├── accuracy_report.md   ← Finding accuracy + false positive analysis
    ├── dataset.md           ← Evidence dataset documentation
    └── try-it-out.md        ← Judges guide

Docs

Document

Contents

docs/architecture.md

Component diagram, tool inventory, security boundaries, guardrails

docs/accuracy_report.md

8 findings vs ground truth, false positives, evidence integrity

docs/dataset.md

VANKO case dataset, provenance, integrity hashes

docs/try-it-out.md

Step-by-step judges guide with troubleshooting


License

MIT — see LICENSE.

Available Tools

19 tools
check_known_malware_hashesB

Check hashes against local NSRL/malware hash database.

Inputs: hashes (required).

extract_fileA

Read strings from a file on the mounted image (first 4KB).

Inputs: remote_path (required).

extract_network_artifactsB

Extract prefetch files, hosts file, browser history paths.

Inputs: no named parameters.

find_suspicious_executablesB

Find executables in anomalous locations: Temp dirs, user AppData, ProgramData.

Inputs: no named parameters.

get_logon_eventsB

Extract logon/logoff events (4624, 4625, 4634) from Security.evtx.

Inputs: top_n.

get_run_keysA

Extract Run/RunOnce autostart registry keys from all user hives.

Inputs: no named parameters.

get_system_infoB

Extract OS version, hostname, timezone from the mounted image.

Inputs: no named parameters.

get_timeline_statusA

Check if log2timeline is running; return last log lines.

Inputs: no named parameters.

hash_fileA

Compute MD5 and SHA256 hash of a file on the mounted image.

Inputs: remote_path (required).

list_recent_filesB

List recently accessed files (LNK files) for a user.

Inputs: username, count.

list_usersB

List Windows user accounts discovered in the image.

Inputs: no named parameters.

mount_imageA

Mount the E01 forensic image using ewfmount + kpartx. Required before any file-system analysis.

Inputs: image_path.

parse_evtxB

Parse a Windows EVTX event log file.

Inputs: evtx_path (required), event_ids, top_n.

parse_registryB

Parse a Windows registry hive. Optionally navigate to a specific key.

Inputs: hive_path (required), key_path.

run_log2timelineA

Start log2timeline timeline creation (long-running). Poll with get_timeline_status.

Inputs: output_file, partition.

run_psortC

Query the plaso timeline. Returns events sorted by time.

Inputs: filter_query, top_n.

setup_evidenceA

Copy evidence to SIFT VM and verify. Call this first.

Inputs: no named parameters.

unmount_imageA

Unmount the forensic image cleanly after analysis.

Inputs: no named parameters.

yara_scanB

Run YARA malware detection rules against a path in the mounted image.

Inputs: scan_path, rules_dir.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 19 tools

    Disambiguation4/5

    Tools are largely distinct, but some overlap exists: parse_evtx and get_logon_events both deal with EVTX files, and check_known_malware_hashes and yara_scan both target malware detection. However, descriptions clarify different contexts.

    Naming Consistency4/5

    Most tools follow a consistent snake_case verb_noun pattern (e.g., mount_image, parse_evtx). The exception is yara_scan (noun_verb) which breaks the pattern slightly. Overall, naming is predictable.

    Tool Count5/5

    19 tools cover a comprehensive forensic workflow without being overwhelming. Each tool serves a clear purpose in the analysis pipeline, from evidence setup to unmounting.

    Completeness4/5

    The tool set covers the core forensic workflow: evidence setup, mounting, system info, user analysis, artifact extraction, timeline creation, and malware scanning. Missing some advanced features like file carving or deep file system recovery, but it's adequate for typical investigations.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables autonomous digital forensics and incident response through 21 typed forensic tools covering disk, memory, registry, network, timeline, carving, and patterns, integrated with AI-driven reasoning and self-correction.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables autonomous digital forensics and incident response by wrapping SIFT Workstation tools as MCP tools and orchestrating a multi-agent AI pipeline for evidence analysis and remediation planning.
      2
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables autonomous DFIR investigation by turning the SIFT toolchain into evidence-safe MCP functions, with self-correction, corroboration, and traceable audit trails.
      34
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to perform digital forensics analysis including memory analysis, file metadata inspection, and threat-intelligence lookups.
      8 npm
      ISC