feat(15-01): add Discord, Slack, DevTo recon sources and wire all six

- DiscordSource uses dorking approach against configurable search endpoint
- SlackSource uses dorking against slack-archive indexers
- DevToSource searches dev.to API articles list + detail for body_markdown
- RegisterAll extended to include all 6 Phase 15 forum sources
- All credentialless, use ciLogKeyPattern for key detection
This commit is contained in:
salvacybersec
2026-04-06 16:29:52 +03:00
parent 282c145a43
commit fcc1a769c5
7 changed files with 621 additions and 1 deletions

View File

@@ -61,7 +61,8 @@ type SourcesConfig struct {
// RegisterAll registers every Phase 10 code-hosting, Phase 11 search engine /
// paste site, Phase 12 IoT scanner / cloud storage, Phase 13 package
// registry / container / IaC, Phase 14 CI/CD log / web archive / frontend
// leak, and Phase 15 collaboration tool source on engine (56 sources total).
// leak, and Phase 15 forum / collaboration tool / log aggregator source on
// engine (67 sources total).
//
// All sources are registered unconditionally so that cmd/recon.go can surface
// the full catalog via `keyhunter recon list` regardless of which credentials
@@ -261,9 +262,24 @@ func RegisterAll(engine *recon.Engine, cfg SourcesConfig) {
// Phase 14: JS bundle analysis (credentialless).
engine.Register(&JSBundleSource{Registry: reg, Limiters: lim})
// Phase 15: Forum and discussion sources (credentialless).
engine.Register(&StackOverflowSource{Registry: reg, Limiters: lim})
engine.Register(&RedditSource{Registry: reg, Limiters: lim})
engine.Register(&HackerNewsSource{Registry: reg, Limiters: lim})
engine.Register(&DiscordSource{Registry: reg, Limiters: lim})
engine.Register(&SlackSource{Registry: reg, Limiters: lim})
engine.Register(&DevToSource{Registry: reg, Limiters: lim})
// Phase 15: Collaboration tool sources (credentialless).
engine.Register(&TrelloSource{Registry: reg, Limiters: lim})
engine.Register(&NotionSource{Registry: reg, Limiters: lim})
engine.Register(&ConfluenceSource{Registry: reg, Limiters: lim})
engine.Register(&GoogleDocsSource{Registry: reg, Limiters: lim})
// Phase 15: Log aggregator sources (credentialless — target exposed instances).
engine.Register(&ElasticsearchSource{Registry: reg, Limiters: lim})
engine.Register(&KibanaSource{Registry: reg, Limiters: lim})
engine.Register(&SplunkSource{Registry: reg, Limiters: lim})
engine.Register(&GrafanaSource{Registry: reg, Limiters: lim})
engine.Register(&SentrySource{Registry: reg, Limiters: lim})
}