# T1071.004 - DNS
## Técnica Pai
Esta é uma sub-técnica de [[t1071-application-layer-protocol|T1071 - T1071 - Application Layer Protocol]].
## Descrição
Adversários abusam do protocolo DNS (Domain Name System) como canal de comunicação encoberto, explorando o fato de que consultas DNS raramente são bloqueadas por firewalls corporativos - inclusive antes da autenticação de rede ser concluída. Ao embutir comandos e dados nas cargas de registros DNS (TXT, A, CNAME, MX), o atacante estabelece um canal de comando e controle que se mistura organicamente ao tráfego legítimo de resolução de nomes. Esse padrão é amplamente conhecido como *DNS tunneling* e representa uma das formas mais resilientes de manter comunicação com sistemas comprometidos.
A técnica é especialmente eficaz contra organizações cujas soluções de segurança inspecionam apenas tráfego HTTP/HTTPS. O atacante registra um domínio sob seu controle e configura um servidor DNS autoritativo que decodifica as queries recebidas como comandos, respondendo com dados codificados nos registros de resposta. O volume de consultas é mantido baixo (*low-and-slow beaconing*) para dificultar detecção por anomalia de volume, e os subdomínios gerados dinâmicamente mudam a cada ciclo para frustrar listas de bloqueio estáticas. Ferramentas como [[darkgaté|DarkGaté]], [[s0170-helminth|Helminth]] e [[sysupdate|SysUpdaté]] implementam canais DNS como canal primário ou de fallback.
**Contexto Brasil/LATAM:** No Brasil, essa técnica é frequentemente observada em campanhas contra o setor [[_sectors|financeiro]] e de infraestrutura crítica, onde políticas de firewall permissivas para DNS outbound - muitas vezes permitindo qualquer destino na porta 53/UDP - criam uma jánela de exfiltração persistente. O grupo [[g0049-oilrig|OilRig]] utilizou DNS tunneling via [[s0269-quadagent|QUADAGENT]] e [[s0170-helminth|Helminth]] em campanhas direcionadas ao Oriente Médio com TTPs documentados também em alvos latino-americanos do setor energético. Organizações brasileiras que dependem de provedores de DNS público (8.8.8.8, 1.1.1.1) sem inspeção de conteúdo são particularmente expostas, pois o tráfego malicioso passa diretamente para resolvers externos sob controle do atacante.
**Event IDs relevantes (Windows):**
| Source | Event ID | Descrição |
|--------|----------|-----------|
| Sysmon | **22** | DNSEvent - log de todas as queries DNS realizadas pelo processo |
| Windows DNS Server | **5152 / 5157** | Conexão de rede bloqueada pelo firewall |
| Sysmon | **3** | Network Connection - processo fazendo conexão UDP/53 |
| PowerShell | **4104** | Script Block Logging - uso de `Resolve-DnsName` suspeito |
**Sigma Rule - DNS Tunneling via Subdomínio Longo:**
```yaml
title: DNS Tunneling - Subdomain Length Anomaly
id: d9f3a1b2-4c5e-4d6f-8a7b-1c2d3e4f5a6b
status: experimental
description: >
Detecta queries DNS com subdomínios excessivamente longos ou com
alta entropia, indicativo de DNS tunneling (T1071.004).
logsource:
product: windows
category: dns_query
detection:
selection:
EventID: 22
filter_legit:
QueryName|contains:
- 'microsoft.com'
- 'windowsupdaté.com'
- 'office.com'
condition_length:
QueryName|re: '^[a-z0-9]{20,}\.'
condition: selection and condition_length and not filter_legit
falsepositives:
- CDNs que usam subdomínios gerados (Akamai, Cloudflare)
- Alguns serviços legítimos de monitoramento
level: medium
tags:
- attack.command_and_control
- attack.t1071.004
```
## Attack Flow
```mermaid
graph TB
A[Acesso inicial] --> B[Implante instalado]
B --> C[Registro DNS autoritativo<br/>do atacante]
C --> D:::highlight[T1071.004 - DNS Tunneling<br/>Beaconing via queries TXT/A]
D --> E[Exfiltração & C2<br/>comandos em respostas DNS]
classDef highlight fill:#e74c3c,color:#fff
```
## Como Funciona
**1. Preparação**
O atacante registra um domínio legítimo (ex.: `updaté-cdn[.]net`) e configura um servidor DNS autoritativo que funciona como servidor C2. Um implante como [[darkgaté|DarkGaté]] ou [[s0170-helminth|Helminth]] é entregue ao alvo via [[t1566-phishing|Phishing]] ou [[t1105-ingress-tool-transfer|Ingress Tool Transfer]]. O implante vem pré-configurado com o domínio C2 e o algoritmo de codificação (Base32, Base64 sobre subdomínio).
**2. Execução**
O implante gera queries DNS periódicas para subdomínios dinâmicos do domínio C2 - por exemplo, `a3f2b1.cmd.updaté-cdn[.]net` - onde `a3f2b1` codifica dados ou heartbeat. O servidor autoritativo do atacante decodifica o subdomínio, interpreta o conteúdo, e responde com registros TXT ou A contendo comandos codificados. O SO da vítima processa a resposta normalmente, e o implante decodifica o payload sem criar conexões TCP diretas ao C2. Técnica combinada frequentemente com [[t1572-protocol-tunneling|Protocol Tunneling]] para maior capacidade de banda.
**3. Pós-execução**
Com o canal estabelecido, o atacante pode enviar comandos shell, receber saídas, e exfiltrar arquivos fragmentados em múltiplas queries. O beaconing ocorre em intervalos longos (5–60 minutos) com *jitter* aleatório para evitar detecção por baseline de volume. O canal DNS persiste mesmo quando outros protocolos são bloqueados, funcionando como canal de contingência de longa duração em operações de [[_campaigns|campanhas]] prolongadas.
## Detecção
> [!warning] Indicadores-chave de DNS Tunneling
> - Alto volume de queries para um único domínio pai com subdomínios longos e aleatórios
> - Registros TXT com conteúdo incomum (strings Base64/Base32 longas)
> - Domínios com baixa reputação (recém-registrados, DGA-like)
> - Queries DNS para IPs diretos em vez de resolvers corporativos
## Mitigação
| Controle | Implementação Prática para Organizações Brasileiras |
|----------|-----------------------------------------------------|
| **DNS Filtering (Umbrella / Quad9 / NextDNS)** | Rotear todo tráfego DNS corporativo por um resolver com reputação de domínio; bloquear domínios recém-registrados (< 30 dias) por padrão |
| **Inspeção de Payload DNS** | Implementar DPI no firewall para inspecionar tamanho e entropia de subdomínios; alertar para subdomínios > 50 caracteres |
| **Bloqueio de DNS Externo Direto** | Bloquear saída na porta 53/UDP/TCP para qualquer destino exceto os resolvers corporativos aprovados - impede bypass via 8.8.8.8 |
| **[[m1031-network-intrusion-prevention\|M1031 - Network Intrusion Prevention]]** | Habilitar assinaturas IDS/IPS específicas para DNS tunneling (Snort SID 2016150–2016153, ET DNS rules) |
| **[[m1037-filter-network-traffic\|M1037 - Filter Network Traffic]]** | Implementar ACLs de rede que permitam DNS apenas de hosts autorizados para resolvers internos específicos |
| **Logging Centralizado de DNS** | Ativar log completo de queries no DNS server corporativo e encaminhar ao SIEM; baseline de domínios por host para detecção de anomalia |
## Threat Actors
- [[g0114-chimera|Chimera]] - grupo APT de espionagem industrial chinês; usa DNS tunneling para exfiltração de dados em campanhas contra semicondutores e telecomúnicações
- [[g0096-apt41|APT41]] - ator dupla motivação (espionagem + financeiro); emprega DNS C2 em operações de longa duração contra alvos governamentais e de saúde
- [[g0049-oilrig|OilRig]] - APT iraniano ligado ao MOIS; utiliza [[s0170-helminth|Helminth]] e [[s0269-quadagent|QUADAGENT]] com canais DNS como mecanismo de persistência de C2
- [[g0080-cobalt-group|Cobalt Group]] - grupo financeiro motivado; usa DNS beaconing em ataques contra instituições bancárias, relevante para o setor [[_sectors|financeiro]] brasileiro
- [[g0087-apt39|APT39]] - espionagem iraniana focada em telecomúnicações; DNS tunneling como técnica primária de C2 em operações de coleta de metadados
- [[g0004-apt15|Ke3chang]] - APT chinês voltado a diplomacia e governo; DNS C2 em operações de longa duração contra ministérios e embaixadas
- [[g1003-ember-bear|Ember Bear]] - ator russo (UAC-0056); combina DNS tunneling com [[t1572-protocol-tunneling|Protocol Tunneling]] em operações destrutivas
- [[g0081-tropic-trooper|Tropic Trooper]] - APT taiwanês/chinês; usa DNS em campanhas contra governo e transporte em países asiáticos e latino-americanos
- [[g0140-lazyscripter|LazyScripter]] - ator focado em phishing com DNS beaconing em campanhas contra companhias aéreas e setor de emigração
- [[g0026-apt18|APT18]] - grupo chinês de espionagem; DNS tunneling documentado em campanhas contra saúde e tecnologia
## Software Associado
- [[s0477-goopy|Goopy]] - backdoor associado ao [[g0004-apt15|Ke3chang]]; utiliza DNS como canal primário de C2 com codificação Base32 em subdomínios
- [[s0269-quadagent|QUADAGENT]] - implante do [[g0049-oilrig|OilRig]]; canal C2 via consultas TXT com payloads PowerShell codificados
- [[s0170-helminth|Helminth]] - backdoor do [[g0049-oilrig|OilRig]]; suporta múltiplos canais C2 incluindo DNS tunneling via subdomínios dinâmicos
- [[sysupdate|SysUpdaté]] - malware do [[g0004-apt15|Ke3chang]]; usa DNS como canal de fallback quando HTTP/HTTPS é bloqueado
- [[darkgaté|DarkGaté]] - loader multifuncional amplamente comercializado; implementa canal DNS como alternativa ao C2 HTTPS para persistência
- [[textmaté|TEXTMATE]] - backdoor do [[g0049-oilrig|OilRig]]; opera exclusivamente via DNS TXT records para comandos e exfiltração
- [[s1020-kevin|Kevin]] - implante associado ao Tropic Trooper; DNS beaconing de baixa frequência para evasão de detecção comportamental
- [[s1015-milan|Milan]] - backdoor documentado em campanhas do [[g0004-apt15|Ke3chang]]; DNS tunneling com fallback para HTTPS
- [[s0377-ebury|Ebury]] - rootkit Linux sofisticado; usa DNS como canal C2 em servidores comprometidos de hospedagem
- [[s0354-denis|Denis]] - backdoor multiprotocolo; suporte a DNS como canal de comunicação secundário
---
*Fonte: [MITRE ATT&CK - T1071.004](https://attack.mitre.org/techniques/T1071/004)*