Repository navigation
SuckerPot v0.3.0
Changed
just test-integrationusesdocker-compose.it.yml, an overlay that keepsredison the backend network only, so the throwaway project fits in Docker's default address pools next to the live stack.- The sidebar is grouped into ten entries. Related pages sit behind one entry with tabs: Attacks (Sessions, Attackers, Networks), Campaigns (Campaigns, Techniques), Tools (Scripts, Malware, Infrastructure), Trends (Activity, Patterns), Protection (Blocklists, Detections) and Exposure (Your exposure, CVE watch). Every old URL still works;
/attackers?view=asnsnow redirects to/networks. - Today is a visual story of the last 24 hours in plain words: a flow from country to service to how far each visit got, an hour-by-hour strip, and three to five stories of the day with their technical details one click away. Hard words have a short definition on hover.
Added
- VPN configuration upload (M23): Settings > VPN takes the WireGuard
.conffrom your VPN provider, parses it strictly (noPostUpand the like, IP endpoint only, full tunnel) after asking for the password again, and writes it to the newvpn-configvolume. Thevpnservice notices the new file and restarts on it; nothing leaves outside the tunnel during the switch, and the API gets no Docker socket. A new exit address stays blocked until the owner trusts the /24 the gate observed (tableegress_trusted_exits, migration0020); an exit inside the honeypot's own addresses or in an AS listed in the newEGRESS_DENY_ASNScan never be trusted, and the exit's AS is shown next to it./api/v1/settings/vpnendpoints, new guardrails. - Anonymous reporting (M22): an ingest worker (
ABUSE_REPORTS_ENABLED, off by default) finds abuse contacts over RDAP through the egress gate and prepares draft reports per recipient. The newreporting/package renders plain text, X-ARF v0.2,.eml, STIX 2.1 and MISP JSON and builds password-protected sample bundles. An identity guard checks every artefact before it is returned and fails closed. Learned self terms need the owner's confirmation. The package ships no wording: the owner writes it in Settings > Reporting. Nothing is ever sent by the stack. Migration0019,/api/v1/abuseendpoints, the Abuse reports page, Export for CERT, the sample bundle and the Reporting tab in Settings,just abuse-guard-checkand theABUSE_*settings. - Anonymous egress (M21): a
vpnservice (WireGuard through gluetun, profileegress) with a kill switch and an HTTP proxy is the only container with a route to the internet.ingestand the newcollectorgo through the proxy, an egress gate pauses outbound work when the tunnel or its exit address looks wrong, and the oldegressnetwork is removed. Newjust guardrailsandjust egress-check, new host firewall rules forsp-vpn,sp-egressandsp-samples. - Payload collection and static analysis (M21): the
collectorservice fetches captured download URLs through the VPN into a quarantine volume (SSRF validator, size, time and rate caps, never executed), and the network-lessanalyzerservice identifies, hashes, scans with YARA, deobfuscates shell scripts and extracts C2 addresses in a limited child process. Migration0018, rolessuckerpot_collectorandsuckerpot_analyzer, the/api/v1/samplesand/api/v1/egressendpoints, a Samples tab, a sample page and an Egress card in Settings.FETCH_PAYLOADS,PAYLOAD_MAX_BYTESandPAYLOAD_TIMEOUT_SECONDSare replaced byCOLLECTOR_ENABLEDand theCOLLECTOR_*andQUARANTINE_*settings. - Synology NAS sensor (M20): a fake unpatched Synology NAS on DSM 7.2.1 (Update 11), with the DSM login page and Web API on HTTP 5000 and HTTPS 5001. Logins always fail with real DSM error codes and are recorded. Requests that match the forged-session and SCGI shapes of CVE-2026-13639 and CVE-2026-13684 are tagged
synology-exploit, ransomware indicators of the C3RB3R campaign are taggedc3rb3r, and DSM API calls are taggedsynology-dsm. Migration0017adds the sensor to the inventory. - Probable C2 lookups ignore VirusTotal contacts in big shared networks (Google, Cloudflare, Microsoft, Akamai, Fastly, Meta, Apple, from the local ASN database) and CDN or update domains, and clean up already stored rows on start.
- Probable C2 addresses: for file hashes that VirusTotal or abuse.ch already know, ingest reads which addresses sandboxes saw the malware contact (VirusTotal relationships, ThreatFox
botnet_cc), with the same fixed hosts, quotas and 24 h cache as the other intel lookups and no contact with the addresses. New tableindicator_contacts(migration 0016),GET /api/v1/indicators/c2, and a blocklist reason "probable C2" (75 for ThreatFox, 40 for VirusTotal, capped at 45 when no sensor computed the hash and fewer than three networks dropped it). GET /api/v1/story, the plain-language summary behind Today.- A
stagefilter onGET /api/v1/sessionsand on the Attacks page (looked, guessed, got in, ran commands, tried to install, sent an exploit), plussinceanduntilin the Attacks URL.
Fixed
- The abuse, alerts and intel workers no longer wait up to an hour for their first run on a host that booted recently.
- CVE watch: the NVD window is 60 days (was 30) and is read in one-day chunks, oldest first, with a page budget, so a busy day no longer loses CVEs silently at the 10,000-result limit. A run that stops early resumes from its last complete chunk.
- CVE watch: GitHub advisories are read in seven-day chunks, oldest first. A one-time start-up rewind refills a shallow history, and watched CVEs that are missing from the table are fetched by id (at most 10 per run, once per id per 24 hours).
Docs
- A "Provider API keys" guide: what each optional key adds and how to get it, step by step.
- A Troubleshooting section in the deployment guide, and the upgrade command.
- Refreshed screenshots and a new README gallery for the three-space navigation.
Upgrade: git pull && just up (migrations 0017 to 0020 run automatically). See the deployment guide for the VPN, collector and reporting settings.
Full changelog: v0.2.0...v0.3.0