diff --git a/ROADMAP.md b/ROADMAP.md index 355cd3f..50b1734 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -74,7 +74,7 @@ - [x] Per-channel plugin enable/disable - [x] Structured logging (JSON output option) - [ ] Integration tests with mock IRC server -- [ ] `username` plugin (cross-platform username enumeration) +- [x] `username` plugin (cross-platform username enumeration) ## v2.0.0 -- Multi-Server + Stable API diff --git a/TASKS.md b/TASKS.md index 2201d32..2b3e6ca 100644 --- a/TASKS.md +++ b/TASKS.md @@ -13,6 +13,7 @@ | P1 | [x] | Per-channel plugin enable/disable | | P1 | [x] | Structured JSON logging | | P1 | [x] | Documentation update | +| P1 | [x] | `username` plugin (cross-platform username enumeration) | ## Completed diff --git a/docs/CHEATSHEET.md b/docs/CHEATSHEET.md index ebdb77a..fbdbf27 100644 --- a/docs/CHEATSHEET.md +++ b/docs/CHEATSHEET.md @@ -143,6 +143,9 @@ files, login. ## OSINT ``` +!username list # List services by category +!username john # Full scan (~25 services) +!username john github # Check single service !dns example.com # A record lookup !dns 1.2.3.4 # Reverse PTR lookup !dns example.com MX # Specific type (A/AAAA/MX/NS/TXT/CNAME/PTR/SOA) diff --git a/docs/USAGE.md b/docs/USAGE.md index e9984a7..9843a85 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -112,6 +112,9 @@ format = "text" # Log format: "text" (default) or "json" | `!payload [variant]` | Web vuln payload templates | | `!dork [target]` | Google dork query builder | | `!wayback [YYYYMMDD]` | Wayback Machine snapshot lookup | +| `!username ` | Check username across ~25 services | +| `!username ` | Check single service | +| `!username list` | Show available services by category | ### Command Shorthand @@ -444,3 +447,39 @@ Check the Wayback Machine for archived snapshots of a URL. Auto-prepends `https://` if no scheme is provided. Uses the Wayback Machine availability API. + +### `!username` -- Username Enumeration + +Check username availability across ~25 services using HTTP probes and +public JSON APIs. Supports GitHub, GitLab, Reddit, Docker Hub, Keybase, +Dev.to, Twitch, Steam, and more. + +``` +!username list List services by category +!username john Full scan (~25 services) +!username john github Check single service +``` + +Output format: + +``` +Full scan: + Checking "john" across 25 services... + john -- 8 found, 14 not found, 3 errors + Found: GitHub, GitLab, Reddit, Twitch, Steam, PyPI, Docker Hub, Medium + +Single service: + GitHub: john -> found | https://github.com/john + GitHub: john -> not found + +List: + Dev: GitHub, GitLab, Codeberg, ... + Social: Reddit, Twitter/X, ... + Media: Twitch, Spotify, ... + Other: Steam, Pastebin, ... +``` + +- Username must match `[a-zA-Z0-9._-]{1,39}` +- Full scan sends acknowledgment before probing +- 8 parallel workers, 20s overall timeout +- Three check methods: HTTP status, JSON API, body search