WEBHOOKS
DISCORD
TELEGRAM
PASTEBIN
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Exfiltration over Webhooks and Paste Sites

Webhook endpoints turn a chat channel into an upload target. Infostealers use them because they need no infrastructure and the traffic looks like chat.

Scroll

A webhook accepts an HTTPS POST and delivers it to a chat channel. That makes Discord, Slack and Telegram convenient drop points for credential stealers and small-scale exfiltration. The endpoints have recognisable URL structures, and in most corporate environments nothing but a browser or a sanctioned integration should be calling them.

Signals at a Glance

SignalWhereATT&CK
POST to /api/webhooks/ on discord.com or discordapp.comProxy, DNS, EDRT1567.004
POST to api.telegram.org/bot with sendDocumentProxy, EDRT1567.004
POST to hooks.slack.com/services/ from a non-integration hostProxyT1567.004
Request to paste or request-capture services (Pastebin, webhook.site, transfer.sh)Proxy, DNST1567
Script interpreter or unsigned binary as the network initiatorEDR network eventsT1567

Endpoint URL Patterns

Webhook URLs follow fixed structures, which makes them one of the more precise network detections. Match the path as well as the host, and require a POST, since a user reading a Discord link in a browser is not exfiltration:

title: Webhook Or Paste Service Upload From Non-Browser Client
logsource:
  category: proxy
detection:
  webhook:
    c-uri|contains:
      - 'discord.com/api/webhooks/'
      - 'discordapp.com/api/webhooks/'
      - 'hooks.slack.com/services/'
      - 'api.telegram.org/bot'
      - 'pastebin.com/api/api_post.php'
      - 'webhook.site/'
      - 'requestbin'
  method:
    cs-method: 'POST'
  filter_browser:
    c-useragent|contains: 'Chrome/'
  condition: webhook and method and not filter_browser
level: medium
# tune/validate: allowlist CI/CD and monitoring integrations by source host

Endpoint telemetry tells you which process made the call, which the proxy cannot. A PowerShell session or a binary in a user profile talking to a webhook is a high-quality lead:

// Microsoft Defender XDR (KQL) - webhook or paste endpoints from non-browser processes
// tune/validate: extend the allowlist with sanctioned chat clients
let ok = dynamic(["chrome.exe","msedge.exe","firefox.exe","discord.exe","slack.exe","teams.exe","ms-teams.exe"]);
DeviceNetworkEvents
| where Timestamp > ago(7d)
| where RemoteUrl has_any ("discord.com","discordapp.com","hooks.slack.com","api.telegram.org","pastebin.com","webhook.site","transfer.sh")
| where InitiatingProcessFileName !in~ (ok)
| summarize conns = count(), firstSeen = min(Timestamp), lastSeen = max(Timestamp)
    by DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath, RemoteUrl
| order by conns desc

Triage and Policy

Vetted sources

SigmaHQ rules for Discord, Telegram and paste-site access, Elastic detections for suspicious webhook calls, and public malware analysis that documents webhook use by stealer families. Baseline your own environment — engineering teams use Slack and Discord webhooks for build and monitoring alerts.

Build Detections That Fire

Mjolnir Security helps blue teams turn threat intelligence into high-fidelity detections across endpoint, network, identity and cloud telemetry.

Detection EngineeringManaged Detection & ResponseThreat HuntingIncident ResponsePurple Teaming
  • Detection Engineering We build and tune detections mapped to ATT&CK from your own telemetry.
  • Threat Hunting as a Service Hypothesis-driven hunts for the behaviours on this page.
  • 24/7 Incident Response Containment when a detection fires. Call +1 833 403 5875.
Written by: Mjolnir Threat Research (MTAC)  |  Published: October 12, 2026  |  Last reviewed: October 12, 2026