diff --git a/README.md b/README.md index dd83a8e..57a1494 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ make down # Stop | headers | headers | HTTP header fingerprinting | | exploitdb | exploitdb | Exploit-DB search (local CSV) | | payload | payload | SQLi/XSS/SSTI/LFI/CMDi/XXE templates | +| dork | dork | Google dork query builder | +| wayback | wayback | Wayback Machine snapshot lookup | | chanmgmt | kick, ban, unban, topic, mode | Channel management (admin) | | example | echo | Demo plugin | diff --git a/ROADMAP.md b/ROADMAP.md index 139197f..592ed15 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -66,14 +66,14 @@ ## v1.1.0 -- Hardening + Wave 5 Plugins -- [ ] Message truncation for IRC 512-byte limit -- [ ] Configurable reconnect backoff (exponential) +- [x] Message truncation for IRC 512-byte limit +- [x] Configurable reconnect backoff (exponential) +- [x] Bot orchestrator + config merge tests +- [x] `wayback` plugin (Wayback Machine snapshot lookup) +- [x] `dork` plugin (Google dork query builder) - [ ] Per-channel plugin enable/disable - [ ] Integration tests with mock IRC server -- [ ] Bot orchestrator + config merge tests - [ ] `username` plugin (cross-platform username enumeration) -- [ ] `wayback` plugin (Wayback Machine snapshot lookup) -- [ ] `dork` plugin (Google dork query builder) ## v2.0.0 -- Multi-Server + Stable API diff --git a/TASKS.md b/TASKS.md index ead25bd..2355b05 100644 --- a/TASKS.md +++ b/TASKS.md @@ -1,22 +1,22 @@ # derp - Tasks -## Current Sprint -- v1.0.0 Stable (2026-02-15) +## Current Sprint -- v1.1.0 Hardening (2026-02-15) | Pri | Status | Task | |-----|--------|------| -| P0 | [x] | IRCv3 CAP LS 302 negotiation | -| P0 | [x] | IRCv3 message tag parsing | -| P0 | [x] | Channel management plugin (kick, ban, unban, topic, mode) | -| P0 | [x] | Plugin state persistence (SQLite key-value store) | -| P0 | [x] | Bot API: kick, mode, set_topic methods | -| P0 | [x] | Core !state command for inspection | -| P1 | [x] | Tests: tag parsing, state store CRUD | +| P0 | [x] | IRC 512-byte message truncation (RFC 2812) | +| P0 | [x] | Exponential reconnect backoff with jitter | +| P1 | [x] | `dork` plugin (Google dork query builder) | +| P1 | [x] | `wayback` plugin (Wayback Machine snapshot lookup) | +| P1 | [x] | Config merge/load/resolve unit tests | +| P1 | [x] | Bot API + format_msg + split_utf8 tests | | P1 | [x] | Documentation update | ## Completed | Date | Task | |------|------| +| 2026-02-15 | v1.1.0 (truncation, backoff, dork, wayback, tests) | | 2026-02-15 | v1.0.0 (IRCv3, chanmgmt, state persistence) | | 2026-02-15 | Wave 4 (opslog, note, subdomain, headers, exploitdb, payload) | | 2026-02-15 | Wave 3 plugins (geoip, asn, torcheck, iprep, cve) + update script | diff --git a/docs/CHEATSHEET.md b/docs/CHEATSHEET.md index 08cdef3..457e136 100644 --- a/docs/CHEATSHEET.md +++ b/docs/CHEATSHEET.md @@ -108,6 +108,19 @@ SASL auto-added when sasl_user/sasl_pass configured. !unload # Remove a plugin (admin) ``` +## Recon + +``` +!dork list # List dork categories +!dork admin example.com # Admin/login panel dorks +!dork files example.com # Exposed document dorks +!wayback example.com # Wayback Machine snapshot +!wayback example.com 20240101 # Snapshot near date +``` + +Categories: admin, backup, cloud, config, creds, dirs, errors, exposed, +files, login. + ## OSINT ``` diff --git a/docs/USAGE.md b/docs/USAGE.md index 9ec5e7e..74d2d1f 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -109,6 +109,8 @@ level = "info" # Logging level: debug, info, warning, error | `!headers ` | HTTP header fingerprinting | | `!exploitdb ` | Search local Exploit-DB mirror | | `!payload [variant]` | Web vuln payload templates | +| `!dork [target]` | Google dork query builder | +| `!wayback [YYYYMMDD]` | Wayback Machine snapshot lookup | ### Command Shorthand @@ -355,3 +357,46 @@ The `message` object provides: | `message.is_channel` | Whether target is a channel | | `message.params` | All message parameters | | `message.tags` | IRCv3 message tags (dict) | + +## Message Truncation + +Messages are automatically split at UTF-8 safe boundaries to comply with +the IRC 512-byte line limit (RFC 2812). The overhead of `PRIVMSG :` +and `\r\n` is accounted for, so plugins can send arbitrarily long text +without worrying about protocol limits. + +## Reconnect Backoff + +On connection loss, the bot reconnects with exponential backoff and jitter: + +- Initial delay: 5 seconds +- Growth: doubles each attempt (5s, 10s, 20s, 40s, ...) +- Cap: 300 seconds (5 minutes) +- Jitter: +/- 25% to avoid thundering herd +- Resets to 5s after a successful connection + +### `!dork` -- Google Dork Query Builder + +Generate Google dork queries for a target domain. Template-based, no HTTP +requests -- just outputs the query string for manual use. + +``` +!dork list List all dork categories +!dork admin example.com Admin/login panel dorks +!dork files example.com Exposed document dorks +``` + +Categories: admin, backup, cloud, config, creds, dirs, errors, exposed, +files, login. + +### `!wayback` -- Wayback Machine Lookup + +Check the Wayback Machine for archived snapshots of a URL. + +``` +!wayback example.com Check latest snapshot +!wayback example.com/page 20240101 Check snapshot near a date +``` + +Auto-prepends `https://` if no scheme is provided. Uses the Wayback Machine +availability API.