Has used DNS tunnelling tools, such as dnscat/2 and Iodine, for C2 purposes.1
- Tactic
- Command and Control
- Platforms
- ESXi, Linux, macOS, Network Devices, Windows
- Version
- 1.4
- Created
- 15 March 2020
- Last modified
- 12 May 2026
- Contributors
- Jan Petrov, Citi; Chris Heald
Adversaries may communicate using the Domain Name System (DNS) application layer protocol to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.
DNS MITRE reference T1071.004
11 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has leveraged dynamic DNS providers for C2 communications.1
Has used Cobalt Strike to encapsulate C2 in DNS traffic.1
Has used remote access tools that leverage DNS in communications with C2.1
Tropic Trooper's backdoor has communicated to the C2 over the DNS protocol.1
All 11 groups for this technique · 6 newest in this preview
1 campaign has been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During Cutting Edge, threat actors used DNS to tunnel IPv4 C2 traffic.1
All 1 campaigns for this technique
43 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has used DNS over HTTPS to resolve C2 infrastructure and obscure DNS traffic from inspection.12345
Has used DNS servers to resolve .bit domains to C2 infrastructure.1
Can cloak command and control traffic in DNS records from legitimate services to avoid reputation-based detection techniques. 1
Can use a DNS tunneling plugin to exfiltrate data by adding it to the subdomain portion of a DNS request.1
All 43 software entries for this technique · 6 newest in this preview
Offense vs defense T1071.004
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
DNS detection strategy DET0400
MITRE names one behaviour worth catching for this technique and breaks it into 5 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Behavioral Detection of DNS Tunneling and Application Layer Abuse
AN1121 · Windows
Detects high-frequency or anomalous DNS queries initiated by non-browser, non-system processes (e.g., PowerShell, rundll32, python.exe) used to establish command and control via DNS tunneling.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
| Network Traffic ContentDC0085 | NSM:Flow | dns.log |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| QueryLengthThreshold | Subdomain length for detecting base32/base64-encoded payloads |
| ProcessImageFilter | Flag non-standard executables making DNS queries |
| TimeWindow | Rate of queries in short interval per process |
AN1122 · Linux
Detects local daemons or scripts generating outbound DNS queries with long or frequent subdomains, indicative of DNS tunneling via tools like iodine, dnscat2, or dig from cronjobs or reverse shells.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | auditd:SYSCALL | execve |
| Network Traffic ContentDC0085 | NSM:Flow | dns.log |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| SubdomainEntropyScore | Detects encoded payloads or randomness in DNS labels |
| DaemonAllowList | Allowlisted system daemons expected to perform frequent lookups |
AN1123 · macOS
Detects scripting environments (AppleScript, osascript, curl) or non-native tools performing DNS queries with encoded subdomains, often used for data exfiltration or beaconing.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic FlowDC0078 | macos:unifiedlog | log stream 'eventMessage contains "dns_request"' |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| EntropyThreshold | Tunable threshold for randomness in subdomain labels |
| UncommonProcessContext | Filters on user-launched or cron-based queries |
AN1124 · Network Devices
Detects clients issuing DNS queries with high volume, long subdomain lengths, encoded payload patterns, or to known malicious infrastructure; indicative of DNS-based C2 channels.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic ContentDC0085 | NSM:Flow | dns.log |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| DomainReputationFeed | List of suspicious/malicious C2 domains |
| QueryRatePerClient | Tunable burst rate per IP per second |
AN1125 · ESXi
Detects unusual outbound DNS traffic from ESXi hosts, often from shell scripts, custom daemons, or malicious VIBs interacting with external DNS infrastructure outside the management plane.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic FlowDC0078 | esxi:syslog | /var/log/syslog.log |
| Network Traffic ContentDC0085 | NSM:FLow | dns.log |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| OutboundDNSVolume | Threshold for data volume and frequency from ESXi IPs |
| KnownGoodVIBs | Baseline known packages for allowlist comparison |
Consider filtering DNS requests to unknown, untrusted, or known bad domains and resources. Resolving DNS requests with on-premise/proxy servers may also disrupt adversary attempts to conceal data within DNS packets.
Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level.
Tests from Atomic Red Team (MIT licence) · technique definition