CLOUDFLARED
QUICK TUNNEL
PORT 7844
EDGE EGRESS
DetectionBlue TeamSOCOctober 12, 2026•9 min read

Detecting Cloudflare Tunnel Abuse: cloudflared Agent and Edge Egress

Cloudflare Tunnel traffic goes to infrastructure you trust. The detection has to be about the agent and the account behind it, not the destination.

Scroll

The cloudflared agent opens outbound connections to Cloudflare’s edge and publishes internal services through it. That is a legitimate product, and it is also a convenient way for an operator to expose RDP, SSH or a web shell with no inbound rule and no server of their own. The destination IP ranges are Cloudflare’s, so we detect the agent, its token and its quick-tunnel hostnames.

Signals at a Glance

SignalWhereATT&CK
cloudflared tunnel run with --token, or tunnel --url for a quick tunnelSysmon 1, 4688, auditd, EDRT1572
DNS or proxy requests to trycloudflare.comDNS, proxyT1090
Outbound TCP or UDP 7844 to Cloudflare edge addressesFirewall, Zeek conn.logT1572
Queries for regionN.v2.argotunnel.comDNS, EDRT1090
cloudflared installed as a service on a host with no approved useService install 7045, systemdT1543.003

Agent Execution and Services

A tunnel is created either with a long account token (a named tunnel) or with --url for an ephemeral quick tunnel that needs no account. Both are visible in the command line, and the token form is what persistence wrappers use. Alert on both and treat the service installation as an escalation:

title: cloudflared Tunnel Execution
logsource:
  category: process_creation
detection:
  selection_img:
    Image|endswith:
      - '\cloudflared.exe'
      - '/cloudflared'
  selection_args:
    CommandLine|contains:
      - 'tunnel run'
      - '--token'
      - 'tunnel --url'
      - 'service install'
  condition: selection_img and selection_args
level: medium
# tune/validate: raise to high on servers and domain controllers; allow-list
# hosts where your platform team deliberately runs Cloudflare Tunnel.

Edge Egress and Quick Tunnels

The agent connects out on port 7844 to regional edge names under argotunnel.com. Quick tunnels publish random hostnames under trycloudflare.com. Since the edge is shared infrastructure, key on the name and the port rather than on the IP:

# Splunk (Zeek conn.log + dns.log) - Cloudflare Tunnel signals
(index=zeek sourcetype=bro_dns (query="*.trycloudflare.com" OR query="*.argotunnel.com"))
OR (index=zeek sourcetype=bro_conn id.resp_p=7844)
| eval sig=if(match(query,"argotunnel|trycloudflare"),"dns","port7844")
| stats count AS events, values(sig) AS signals, min(_time) AS first, max(_time) AS last
    BY id.orig_h
| sort - events
# tune/validate: if you run Cloudflare Tunnel, list the approved connector
# hosts first and alert only on others.
Vetted sources

Use the Cloudflare Tunnel documentation for connection requirements, SigmaHQ and Elastic coverage for cloudflared and tunneling tools, and your DNS and firewall telemetry. Always baseline your own environment — an enterprise that deploys Cloudflare Tunnel needs an allow-list of connector hosts before this signal is usable.

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