# DC0103 — Active DNS > [!info] Data Component MITRE ATT&CK > **ID:** DC0103 | **Fonte pai:** [[ds0029-network-traffic|DS0029 — Network Traffic]] | **Cobertura:** Consultas DNS em tempo real — resoluções ativas de domínio para IP ## Descrição Active DNS captura dados de consultas DNS realizadas em tempo real — mapeamentos atuais entre nomes de domínio e seus endereços IP. Diferente do [[dc0096-passive-dns|Passive DNS]] (histórico acumulado ao longo do tempo), o Active DNS reflete o estado *presente* da infraestrutura DNS: qual IP um domínio resolve agora, quais registros TXT estão configurados, quais servidores de mail (MX) aténdem um domínio. A telemetria de Active DNS é coletada de três formas principais: (1) **Logs de servidores DNS corporativos** — registros de todas as consultas feitas por hosts na rede interna; (2) **Consultas proativas** — equipes de threat intelligence realizam queries periódicas para monitorar domínios de interesse (C2 conhecidos, domínios de grupos rastreados); (3) **Integração com threat intelligence** — plataformas como VirusTotal e Microsoft Defender TI expõem APIs para consulta DNS em tempo real. No contexto de detecção, Active DNS é essencial para identificar técnicas de [[T1071.004-application-layer-protocol-dns]] (C2 sobre DNS, DNS tunneling) e [[T1568.002-dynamic-resolution-domain-generation-algorithms]] (DGA). Implantes que utilizam DGA geram centenas de nomes de domínio algoritmicamente — a maioria não resolvida — com apenas um ou poucos domínios "ativos" recebendo resposta do servidor C2. Para analistas de CTI rastreando atores como [[g0032-lazarus-group]], [[g0016-apt29]] e grupos de ransomware ativos no Brasil, a capacidade de consultar ativamente domínios suspeitos (via `dig`, `nslookup`, plataformas OSINT) é fundamental para confirmar infraestrutura ativa antes de indicar um IoC como válido. ## Telemetria | Fonte | Log / Ferramenta | Descrição | |-------|-----------------|-----------| | Windows DNS Server | **DNS Analytical Log** | Todas as consultas processadas pelo servidor DNS Windows | | BIND / Named | **query.log** | Log de todas as queries (`query` ou `querylog` no named.conf) | | Pi-hole / AdGuard | **query.log** | DNS interno com bloqueio de domínios maliciosos | | Infoblox / BlueCat | **DNS query logs** | DNS enterprise com integração SIEM nativa | | Sysmon | **EID 22** — DNSEvent | Consultas DNS realizadas por processos Windows (com PID/processo) | | Zeek (Bro) | **dns.log** | Queries e respostas DNS capturadas no nível de rede | | Suricata | **eve.json (dns events)** | Consultas e respostas DNS com alertas de assinatura | | AWS Route 53 | **Query Logs (CloudWatch)** | Consultas DNS para domínios hospedados no Route 53 | | Azure DNS | **DNS Diagnostic Logs** | Queries DNS em zonas privadas e públicas Azure | | GCP Cloud DNS | **DNS Query Logs** | Logs de consulta DNS via Cloud Logging | | Ferramentas CLI | `dig`, `nslookup`, `host` | Consultas manuais/automatizadas para threat intel | | VirusTotal API | `/domain/report` | Resolução atual + histórico + detecções de malware | ## Queries de Detecção ### KQL — Microsoft Sentinel: DNS Tunneling — Alta Entropia em Subdomínios ```kql DnsEvents | where TimeGenerated > ago(1h) | where QueryType == "A" or QueryType == "TXT" | extend TopDomain = strcat( tostring(split(Name,".")[-2]), ".", tostring(split(Name,".")[-1]) ) | extend Subdomain = replace_string(Name, strcat(".", TopDomain), "") | where strlen(Subdomain) > 30 // subdomínios muito longos = DNS tunneling | summarize QueryCount = count(), UniqueSubdomains = dcount(Subdomain), SampleDomain = any(Name) by ClientIP, TopDomain, bin(TimeGenerated, 5m) | where UniqueSubdomains > 10 or QueryCount > 100 | extend Alert = "Possível DNS Tunneling" | order by QueryCount desc ``` ### KQL — Sentinel: Sysmon EID 22 — Processo Consultando Domínio Recém-Criado ```kql Event | where Source == "Microsoft-Windows-Sysmon" and EventID == 22 | parse EventData with * "<Data Name='QueryName'>" DnsQuery "</Data>" * | parse EventData with * "<Data Name='Image'>" Process "</Data>" * | parse EventData with * "<Data Name='ProcessId'>" Pid "</Data>" * | where DnsQuery matches regex @"(?i)[a-z0-9]{8,}\.(tk|ml|ga|cf|gq|top|pw|xyz)" or strlen(tostring(split(DnsQuery, ".")[0])) > 20 | project TimeGenerated, Computer, Process, Pid, DnsQuery | order by TimeGenerated desc ``` ### SPL — Splunk: Domínios DGA — Consultas sem Resposta (NXDOMAIN) ```spl index=dns sourcetype=zeek:dns rcode_name="NXDOMAIN" | stats count as nxdomain_queries, dc(query) as unique_domains by src_ip | where nxdomain_queries > 100 AND unique_domains > 50 | eval dga_score=round(unique_domains/nxdomain_queries*100,1) | where dga_score > 70 | eval alert="Possível DGA - Alto volume de NXDOMAIN" | sort - nxdomain_queries ``` ### SPL — Splunk: C2 via DNS TXT Records (Exfiltração/Implant Config) ```spl index=dns sourcetype=zeek:dns qtype_name="TXT" NOT query IN ("*.google.com","*.microsoft.com","*.cloudflare.com", "_dmarc.*","_domainkey.*","*.amazonaws.com") | where len(answers) > 100 // respostas TXT muito longas = possível dado exfiltrado | stats count, values(answers) as txt_content by query, src_ip | sort - count ``` ## Técnicas Relacionadas | Técnica | Nome | Relevância | |---------|------|-----------| | [[T1071.004-application-layer-protocol-dns]] | Application Layer Protocol: DNS | C2 e exfiltração via protocolo DNS | | [[T1568.002-dynamic-resolution-domain-generation-algorithms]] | Dynamic Resolution: DGA | Geração algorítmica de domínios — alto volume NXDOMAIN | | [[T1583.001-acquire-infrastructure-domains]] | Acquire Infrastructure: Domains | Identificação de domínios recém-registrados por adversários | | [[T1566.002-phishing-spearphishing-link]] | Phishing: Spearphishing Link | Domínios de phishing ativos detectados por resolução DNS | | [[t1590-gather-victim-network-information\|T1590-gather-victim-network-information]] | Gather Victim Network Information | Adversários consultando DNS da vítima para reconhecimento | ## Contexto LATAM > [!warning] Relevância para Brasil e América Latina > DNS é o vetor de exfiltração e C2 mais subestimado pelas organizações brasileiras. Malwares bancários como **Grandoreiro** e campanhas de smishing direcionadas ao **PIX** frequentemente usam DNS para resolver servidores C2 que mudam de IP diariamente — tornando bloqueios por IP ineficazes e highlights a importância da análise de domínios. > > **Ação prioritária para SOCs brasileiros:** Habilitar logging completo do servidor DNS interno (Windows DNS Analytical Log ou BIND querylog) e correlacionar com Sysmon EID 22 para mapear qual processo está realizando cada consulta. Domínios com TLD como `.tk`, `.ml`, `.top` e `.xyz` em consultas geradas por processos Office ou navegadores são indicadores imediatos de comprometimento. > > Para threat hunters: monitorar consultas DNS para domínios com palavras-chave bancárias brasileiras ("bradesco","itau","caixa","nubank","picpay") registradas em TLDs suspeitos é um hunt de alto retorno para detecção de phishing ativo. ## Referências - [MITRE ATT&CK — DC0103 Active DNS](https://attack.mitre.org/datacomponents/DC0103) - [Sysmon Event ID 22 — DNS Query](https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon) - [BIND DNS Query Logging](https://bind9.readthedocs.io/en/latest/reference.html#logging-statement) - [VirusTotal DNS API](https://docs.virustotal.com/reference/domain-info) - [[dc0096-passive-dns|DC0096 — Passive DNS]] - [[ds0029-network-traffic|DS0029 — Network Traffic]] - [[_defenses|Hub de Defesas]] - [[_data-sources|Índice de Data Sources]]