log lines / second
Trace the intrusion.
Keep the evidence local.
Shellhound is a local DFIR workbench for compromised CMS systems and web servers. Index the evidence once, then follow files, clients, requests, and indicators through one connected case.
git clone https://github.com/Mateodevv/shellhound.git
rules across evidence
local by default
plus CSV and JSON
One index.
Every lead connected.
Stop making another pass over gigabytes for every question. Shellhound links suspicious artifacts to the clients that requested them, when they appeared, and what happened next.
Which clients requested the dropped shell—and what did they do next?
→ 77 CONSPICUOUS CLIENTSBring copies.
Keep the originals clean.
Webroot
A copy of the compromised web directory, scanned for suspicious files, known patterns, and deviations from a clean release.
Access logs
Apache or Nginx logs—including .gz—indexed once to connect clients, requests, responses, and dropped files.
SQL dump
A CMS database export analyzed for suspicious accounts, injected code, and anomalies that belong in the case timeline.
Reference copy
A clean CMS release of the same version unlocks a direct webroot diff and makes unexpected changes stand out.
Decide once.
Preserve the reasoning.
Shellhound groups every rule hit into the object it describes. Five observations about one dropped shell become one triage decision—not five disconnected alerts.
- 01 Inspect the exact file context and every rule that fired
- 02 Confirm, dismiss, review, or flag without deleting history
- 03 Carry paths, SHA-256s, and requesting clients into the IOC box

Multiple observations. One defensible decision.
From evidence
to incident timeline.
Register evidence
Point Shellhound at copies of the webroot, access logs, and database export. Automatic detection recognizes each source by content.
Index and analyze
The engines run once in the background. After that, every investigation is a fast query against the local index.
Triage the case
Group observations by artifact, confirm what matters, reconstruct chronology, trace actors, and collect indicators.
Export findings
Take IOCs and relationships with you as CSV, JSON, or STIX 2.1—without uploading the case to a service.
See every request
in context.
Follow a selected client over the full period, filter by URI, status, method, or user agent, and export the trace with a manifest and SHA-256 checksum.

Case data stays
on the analysis machine.
No hosted service, no account, no telemetry. Optional third-party lookups are off by default and send one explicit value per click—never the case.
Start a local
investigation.
Shellhound requires Python 3.10 or newer. Node 20 or newer is only needed to build the interface from source.
Read the installation guide ↗git clone https://github.com/Mateodevv/shellhound.git
cd shellhound && pip install -r requirements.txt
cd web && npm ci && npm run build && cd ..
python -m server.mainOpens locally at http://127.0.0.1:8710