Multi-pot threat intelligence infrastructure capturing attacks across SSH, HTTP, Redis, PostgreSQL and Docker services. Auto-extracts IOCs, downloads malware payloads, enumerates C2 infrastructure, and submits indicators to ThreatFox / MalwareBazaar / VirusTotal.
Operated by @NullBlue67.
┌─────────────────────────────────────────────────────────────────┐
│ Internet (attackers) │
└──────┬──────────┬──────────┬──────────┬──────────┬──────────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌───────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
│Cowrie │ │ Webpot │ │ Redis │ │ PG │ │ Docker │
│ SSH │ │ Flask │ │ pot │ │ pot │ │ pot │
│ :22 │ │ :80/443│ │ :6379 │ │ :5432 │ │ :2375 │
└───┬───┘ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘
│ │ │ │ │
└─────────┴──────────┴──────────┴──────────┘
│
▼
┌───────────────────┐
│ Cross-pot Scoring │ ──┐
│ (SQLite WAL) │ │
└───────────────────┘ │
│ │
▼ ▼
┌───────────────────┐ ┌─────────────────┐
│ Auto C2 Enumerator│ │ Telegram Alerts │
│ (nmap, banner, │ │ (live capture) │
│ WHOIS, probes) │ └─────────────────┘
└─────────┬─────────┘
│
▼
┌───────────────────────────┐
│ ThreatFox + MB + VT │
│ (auto-submit IOCs) │
└───────────────────────────┘
| File | Service | Description |
|---|---|---|
app/server.py |
Webpot (Flask) | Fake admin panels, AntSword shell, honeytokens, auto-fetch C2 URLs |
app/redis_pot.py |
Redis | Full RESP emulation, SLAVEOF/PSYNC payload capture, EVAL/CONFIG tracking |
app/postgres_pot.py |
PostgreSQL | Wire protocol emulation, COPY FROM PROGRAM detection, CREATE FUNCTION RCE capture |
app/docker_pot.py |
Docker API | Containers/create + exec exploitation logging |
app/c2_enum.py |
Background | Auto port-scan + banner + WHOIS + Redis/Stratum probes on captured C2 IPs |
app/attacker_score.py |
Background | Cross-pot APT scoring (SQLite WAL) |
- 🐍 SSH (via Cowrie Docker) — SFTP/SCP malware uploads + interactive command capture
- 🌐 Webpot — fake WordPress, phpMyAdmin, Spring Boot Actuator, GitLab, Confluence, Cisco AnyConnect baits
- 🔴 Redis pot — fake state (24 plausible keys), realistic
KEYS/DBSIZE/INFO/TYPE/OBJECT, captures SLAVEOF payloads via fake PSYNC - 🐘 PostgreSQL pot — full handshake emulation, fake
CREATE FUNCTIONsuccess to lure 2nd-stage payloads, multi-version banner rotation - 🐳 Docker pot —
/containers/create,/exec,nsenter,runcescape detection
- 🛰️ Auto C2 enumeration — on every captured malicious IP: nmap top-50, banner grab, WHOIS, Redis probe, Stratum probe → JSON report + Telegram alert
- 🏆 Cross-pot APT scoring — same IP hitting multiple pots = elevated alert (score ≥ 50)
- 🍯 Honeytokens — fake AWS keys / API endpoints / webhook URLs embedded in fake
.envresponses; beacon URLs trigger 🍯 HONEYTOKEN TRIGGERED alerts when attackers validate stolen creds - 📡 Auto-fetch — URLs found in attacker payloads are downloaded (SSRF-safe, size-capped, public IPs only) and hash-stored
- 🚀 Multi-platform IOC reporting — automated submission helpers for ThreatFox / MalwareBazaar / VirusTotal
- 🛡️ All pots run as non-root (
www-data) — no host escape from any pot - 🛡️ SSH/Cowrie isolated in Docker with no host bind mounts
- 🛡️ SSRF protection — blocks loopback, private nets, cloud metadata (169.254.169.254), and own VPS IP
- 🛡️ Size-capped downloads (50 MB max), no
eval/execof attacker input - 🛡️ Filenames hashed (no path traversal possible)
- 🛡️ TLS/SSH banner rotation per session (harder fingerprinting)
- Linux VPS (Debian 12 / Ubuntu 22.04 tested)
- Python 3.11+
- Cowrie (Docker) for SSH honeypot
- Nginx for TLS termination (optional)
# Clone
git clone https://github.com/NullBlue67/honeypot-network.git /opt/webpot
cd /opt/webpot
# Python deps
python3 -m venv venv
source venv/bin/activate
pip install flask requests urllib3
# Configure
cp .env.example .env
nano .env # Fill in your tokens + own VPS IP
# Create directories
mkdir -p captured_shells malware_samples c2_enum db logsSee systemd/ directory for unit files. Each pot runs as www-data.
sudo cp systemd/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now webpot redis-pot postgres-pot docker-pot- 30+ IOCs reported to ThreatFox (
elf.malxmr,elf.perlbot,elf.dofloo,elf.redtail,elf.xmrig) - 1st-in-world capture of Outlaw
dota3.tar.gztoolkit (VT/MB/TF all 404 before upload) - Confirmed campaigns: Outlaw, Multiverze, Redtail, Junko-Enoshima
This is defensive research infrastructure. The honeypots:
- ❌ Do NOT counter-hack
- ❌ Do NOT send extortion / threats
- ❌ Do NOT execute captured malware
- ✅ Passively log attacker behavior on services exposed to the internet
- ✅ Perform passive reconnaissance (nmap, banner grab, WHOIS) on captured IPs — limited to scanning of public services
- ✅ Submit IOCs to community platforms (abuse.ch ThreatFox/MalwareBazaar, VirusTotal)
If you deploy this, understand the legal landscape of your jurisdiction. Honeypot legality varies. Some countries treat capturing attacker tools as borderline. Get legal advice before operating one commercially.
MIT — but do not use this code to attack production systems you don't own. Defensive only.
- @NullBlue67 — honeypot operator + IOC reporter
- Built on top of Cowrie for SSH
- IOC submissions via abuse.ch / VirusTotal