This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Webhook

Generic HTTP Webhook

    POSTs every matching event as a JSON object to a configured URL. Slack and Discord notifiers share this codepath under the hood, but webhook can also be used directly as a standalone notifier — no custom code required. This makes it the primary integration point for external workflows: pipe NTLM hashes to a cracking service, forward SMB auth events to n8n, send everything to a SIEM, etc.

    Payload shape

    {
      "RemoteAddr": "203.0.113.5",
      "RemotePort": 54321,
      "UserAgent":  "curl/8.0",
      "Data":       "DELETE /probe HTTP/1.1\r\nHost: ...",
      "Details":    "HTTPX: DELETE http://.../probe from 203.0.113.5:54321",
      "Curl":       "curl -X DELETE ..."
    }
    

    Curl is only populated for HTTP events; it is omitted for other handlers. Data and Curl fields are capped at 32 KB each; Truncated is true when either field was clipped.

    Configuration

    KeyRequiredDefaultNotes
    notifieryesMust be webhook.
    urlyesDestination URL. Posted with Content-Type: application/json.
    filterno.*Go regexp matched against "HANDLER ACTION DETAIL from IP". See Notifiers for the full filter reference.

    Example

    notifiers:
      # Forward every captured SMB hash to an external cracking pipeline.
      - notifier: webhook
        url: https://n8n.myteam.internal/webhook/ntlm-capture
        filter: "^SMB Auth"
    
      # Alert a SIEM on any /l path hit (the default notify path).
      - notifier: webhook
        url: https://siem.example.com/ingest/xodbox
        filter: "^HTTPX.*\\/l"
    
      # No filter — forward everything.
      - notifier: webhook
        url: https://my-siem.example.com/ingest
    

    Failure handling

    • 2xx/3xx responses are treated as success.
    • 4xx/5xx responses log an error but do not propagate it to the dispatcher (a flaky webhook does not block other notifiers).
    • Connection/transport failures (DNS, refused, timeout) propagate as errors and are surfaced in the app log.