Notifiers

Interaction notifiers

Notifiers are used to send notifications to external services or log interactions to the app log.

Available notifiers: app_log, slack, discord, webhook.

Filters

Each notifier accepts a filter configuration option, compiled into a Go regexp. The notifier only fires when the filter matches — this applies to every notifier (app_log, slack, discord, webhook). The default filter is .* (match everything).

The regexp is matched against a single canonical string that is consistent across every handler:

HANDLER ACTION DETAIL from IP[,IP...]
  • HANDLER — the handler name (HTTPX, DNS, FTP, SMTP, SSH, TCP, SMB).
  • ACTION — the interaction kind (HTTP method, DNS query type, Auth, Mail, Data, …).
  • DETAIL — handler-specific specifics (HTTP path+query, DNS name, SSH user, SMB account, …).
  • IP chain — the unique source IPs. For HTTPX this is the de-duplicated X-Forwarded-For + X-Real-Ip + peer chain (client first); for other handlers it’s the peer IP.

Because the shape is uniform, one regexp can select across any handler:

GoalFilter
HTTP payload hits under /x/^HTTPX (GET|POST) /x/
Captured SMB hashes^SMB Auth
DNS lookups for a C2 domain^DNS (A|AAAA) .*\.evil\.com
SSH login attempts as root^SSH \w+ root
Admin console logins (needs notify_logins)^HTTPX Login
Anything from one source IPfrom .*10\.0\.0\.5

Example canonical strings:

HTTPX POST /x/beacon?id=1 from 203.0.113.9,10.0.0.1
HTTPX Login alice from 10.0.0.5
DNS A c2.evil.com. from 10.0.0.5
SMB Auth CORP\alice from 10.0.0.5
SSH PasswordAuth root from 10.0.0.5

The HTTPX Login events are only emitted when the HTTPX handler is configured with notify_logins: "true" (see the HTTPX handler).

Check each handler for the exact FilterString its events produce.


App Log

Log to application log

Discord

Discord notification

Slack

Slack notifications

Webhook

Generic HTTP Webhook