Command-and-Control beaconing is the communication heartbeat between a malware implant and its operator. Once established, the attacker has persistent remote access — executing commands, staging exfiltration, and moving laterally. Breaking this channel is the analyst's primary containment goal.
C2 frameworks like Cobalt Strike, Sliver, Havoc, and Brute Ratel use traffic blending, jitter, and domain fronting to evade network controls. Detection relies on behavioral patterns — periodic connection regularity, unusual process-to-network mappings, and DNS anomalies — not just static signatures.
◈ Table of Contents
Background
CONTEXT| Framework | MITRE | Key Network Indicator | Process Indicator |
|---|---|---|---|
| Cobalt Strike | T1071.001, T1573 | Default beacon sleep 60s, malleable profile headers, JARM fingerprint 07d14d16d21d21d07c42d43d000000 | rundll32.exe or injected svchost with unusual outbound HTTPS |
| Sliver | T1071.001, T1132 | mTLS/WireGuard C2, HTTP implants with /fonts/ /stylesheets/ URI patterns, implant JARM differs per build | Injected process; memory-only implant via shellcode |
| Havoc / BruteRatel | T1071, T1573 | Daemon implant, encrypted HTTP channel, DemonID in headers | Unusual child of Office, browser, or LOLBin |
| Metasploit Meterpreter | T1059.001, T1095 | Reverse TCP/HTTPS; staged payload uses GET to download stage 2 | rundll32, powershell, wscript running shellcode |
| DNS C2 (Iodine, dnscat2) | T1071.004 | High-volume TXT/NULL record queries to single domain; encoded data in subdomains; >100 DNS req/min per host | Any process making unusual DNS volume |
| Log Source | Table / Index | What It Catches |
|---|---|---|
| Defender for Endpoint | DeviceNetworkEvents, DeviceProcessEvents | Process-to-IP mapping; connection regularity; rare domain connections |
| DNS logs (Defender/Sentinel) | DnsEvents, DeviceNetworkEvents (DnsQueryType) | High-volume DNS, long subdomain labels, NX domain ratios |
| Proxy / Firewall | index=proxy or CommonSecurityLog | Periodic connections, abnormal user agents, domain fronting |
| Sysmon | EventCode 3 (NetworkConnect), 22 (DNSQuery) | Per-process network telemetry, DNS query volume per process |
Identification
INVESTIGATEDNS tunnelling tools like dnscat2 encode C2 traffic in subdomain labels. A label length over 40 characters is a strong indicator — legitimate domains almost never have labels this long.
Cobalt Strike frequently injects into rundll32.exe or svchost.exe. A process that was NOT making outbound connections 24 hours ago but is now regularly beaconing is a high-fidelity signal — compare against baseline with 7d window.
Containment
STOP IT- 1Isolate the device: Defender XDR → Device page →
Isolate device → Full isolation. This cuts all network except Defender telemetry. - 2Block C2 IPs and domains org-wide: Defender XDR → Settings → Endpoints → Indicators → Add IP and URL/Domain indicators with action = Block. This propagates to all enrolled devices.
- 3Block at firewall/proxy: Notify network team to null-route the C2 IPs and add domain to DNS RPZ (Response Policy Zone) for additional coverage.
- 4Do NOT kill the beacon process immediately until the investigation package is collected — the process memory may hold decrypted C2 config (IP, encryption keys, staging paths).
Killing the beacon before collecting a process memory dump destroys evidence. Isolation cuts the network channel while keeping the process alive for forensics — do isolation first, collection second, process kill third.
- 1Live Response →
collect investigation package— captures running processes, network connections, scheduled tasks, registry run keys, and event logs. - 2Note the beacon process PID, parent PID, command line, and file path. If the process is fileless (injected), note the host process.
- 3Export C2 IP/domain list for org-wide threat hunting (I3 KQL across all devices).
Eradication
CLEAN UP- 1Kill the beacon process via Live Response:
run taskkill /F /PID [pid]. If injected, kill the host process. - 2Remove implant file on disk. If fileless, remove the loader (scheduled task, registry run key, WMI subscription) that staged it.
- 3Run Defender full scan on isolated device:
run MpCmdRun.exe -Scan -ScanType 2in Live Response. - 4Verify no remaining outbound connections to C2 infrastructure after implant removal — re-run I1 KQL on a 1h post-cleanup window.
- 5If a kernel rootkit or bootkit is suspected — do not attempt in-situ cleanup. Reimage from known-good baseline.
- Zero beacon connections to C2 infrastructure in last 1h
- Implant file and all persistence mechanisms removed
- Defender full scan returns clean on isolated device
- No additional hosts identified beaconing to same C2
Escalation
TIERS| Tier | Trigger | Action |
|---|---|---|
| L1 → L2 | TP confirmed, single host, no lateral movement, C2 blocked | Hand off with: C2 IPs/domains, implant path/hash, beacon interval, persistence mechanism |
| L2 → IR Team | Multiple hosts beaconing, credential dump or lateral movement detected, data staging observed | IR takes lead. Scope full compromise. Cross-reference SOP-07 (Exfiltration), SOP-06 (Lateral Movement) |
| IR → CISO | Nation-state TTPs, APT attribution indicators, data confirmed exfiltrated, critical infrastructure targeted | CISO + Legal notified, external IR retainer engaged if needed |
Authorized security research & penetration testing only. Unauthorized use is illegal. Authored by Rudra Verma | Senior Security Architect | CyberHawk Consultancy.