# 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)*