detecting-dns-exfiltration-with-dns-query-analysis
Ajuda seu agente a detectar roubo de dados via DNS. Ele analisa padrões de consulta DNS para identificar tráfego suspeito usado para esconder dados.
O que ela faz
Esta ferramenta analisa o tráfego de DNS para encontrar tentativas de roubo de dados. Ela procura por padrões incomuns em como os dados são enviados através de consultas e respostas de DNS, que podem indicar o uso de ferramentas maliciosas.
Quando usar
- ✓Ao investigar um possível vazamento de dados pela rede.
- ✓Ao monitorar a segurança da rede para atividades suspeitas.
- ✓Ao tentar entender como ferramentas de ataque usam o DNS.
Exemplo do que pedir para a IA
“Procure por atividades anômalas no tráfego DNS que possam indicar exfiltração de dados.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta examina características das consultas DNS, como o comprimento dos subdomínios, a quantidade de consultas para um mesmo domínio e os tipos de registros DNS usados. Ela compara essas características com padrões normais para identificar anomalias.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill detecting-dns-exfiltration-with-dns-query-analysisOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-dns-exfiltration-with-dns-query-analysis/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Detecção de Exfiltração de DNS com Análise de Consultas DNS
Visão Geral
A exfiltração de DNS explora o Sistema de Nomes de Domínio como um canal oculto para extrair dados de redes comprometidas. Atacantes codificam dados roubados em nomes de consultas DNS (subdomínios) ou registros de resposta DNS (TXT, CNAME, NULL), contornando controles de segurança tradicionais que geralmente permitem tráfego DNS sem restrições. Ferramentas como iodine, dnscat2 e dns2tcp permitem o tunelamento TCP completo via DNS. A detecção requer a análise de padrões de consultas DNS em busca de anomalias, incluindo comprimento excessivo de consultas, strings de subdomínio de alta entropia, volumes anormais de consultas para domínios únicos e respostas de registro TXT de tamanho excessivo. Esta habilidade abrange a construção de uma capacidade abrangente de detecção de exfiltração de DNS usando análise passiva de DNS, métodos estatísticos e abordagens de aprendizado de máquina.
Quando Usar
- Ao investigar incidentes de segurança que exigem a detecção de exfiltração de DNS com análise de consultas DNS.
- Ao construir regras de detecção ou consultas de caça a ameaças para este domínio.
- Quando analistas de SOC precisam de procedimentos estruturados para este tipo de análise.
- Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas.
Pré-requisitos
- Acesso a logs de consultas DNS (captura passiva de DNS, logs de servidor DNS ou PCAP).
- Zeek, Suricata ou tcpdump para captura de tráfego DNS.
- Python 3.8+ com scipy, numpy, pandas e scikit-learn.
- Plataforma SIEM para correlação de alertas.
- Linha de base de padrões de tráfego DNS normal para o ambiente.
Conceitos Principais
Mecanismos de Tunelamento DNS
A exfiltração de DNS codifica dados em diferentes partes das mensagens DNS:
Saída (Exfiltração baseada em consulta):
Encoded data as subdomain labels:
dGhlIHNlY3JldCBkYXRh.exfil.attacker.com
[base64-encoded data].[tunnel domain]
Query types used: A, AAAA, CNAME, MX, TXT, NULL
Entrada (Canal de comando baseado em resposta):
TXT records carry encoded commands/data in responses
CNAME records chain encoded data through multiple labels
NULL records carry arbitrary binary data
Indicadores de Detecção
| Indicador | DNS Normal | Tunelamento DNS |
|---|---|---|
| Comprimento do subdomínio | 5-20 caracteres | 40-253 caracteres |
| Contagem de rótulos | 2-4 rótulos | 5-10+ rótulos |
| Entropia de Shannon | 2.5-3.5 bits | 4.0-5.5 bits |
| Volume de consulta (por domínio) | Variável | 100s-1000s/min |
| Tamanho da resposta TXT | < 100 bytes | 200-4000+ bytes |
| Subdomínios únicos | Baixo | Muito alto |
| Distribuição do tipo de consulta | Principalmente A/AAAA | Pesado em TXT, NULL, CNAME |
Ferramentas Comuns de Tunelamento
| Ferramenta | Protocolo | Codificação | Dificuldade de Detecção |
|---|---|---|---|
| iodine | IP-over-DNS | Base32/Base64/Raw | Média |
| dnscat2 | TCP-over-DNS | Codificação Hex | Média |
| dns2tcp | TCP-over-DNS | Base64 | Média |
| DNSExfiltrator | Personalizado | Base64 | Baixa |
| Cobalt Strike DNS | C2 via DNS | Codificação personalizada | Alta |
Fluxo de Trabalho
Etapa 1: Capturar Tráfego DNS
Usando Zeek:
# Live capture
zeek -i eth0 -C base/protocols/dns
# Offline PCAP analysis
zeek -r traffic.pcap base/protocols/dns
# Output: dns.log with query, qtype, answers, TTL
Usando tcpdump:
# Capture all DNS traffic
tcpdump -i eth0 -w dns_capture.pcap port 53
# Capture with size filter (large DNS packets)
tcpdump -i eth0 -w large_dns.pcap 'port 53 and greater 512'
Usando Suricata:
# In suricata.yaml, enable DNS logging
outputs:
- eve-log:
types:
- dns:
query: yes
answer: yes
formats: [detailed]
Etapa 2: Analisar Características da Consulta
Script Python para detecção de exfiltração de DNS:
#!/usr/bin/env python3
"""Detector de Exfiltração de DNS - Analisa logs de DNS em busca de indicadores de tunelamento."""
import json
import math
import re
import sys
from collections import defaultdict
from datetime import datetime, timedelta
import pandas as pd
def calculate_entropy(domain: str) -> float:
"""Calcula a entropia de Shannon de uma string."""
if not domain:
return 0.0
freq = defaultdict(int)
for char in domain:
freq[char] += 1
length = len(domain)
entropy = -sum(
(count / length) * math.log2(count / length)
for count in freq.values()
)
return entropy
def extract_subdomain(query: str) -> str:
"""Extrai a porção do subdomínio de um FQDN."""
parts = query.rstrip('.').split('.')
if len(parts) > 2:
return '.'.join(parts[:-2])
return ''
def get_base_domain(query: str) -> str:
…
Perguntas frequentes
O que é exfiltração de dados via DNS?
É uma técnica onde atacantes escondem dados roubados dentro de consultas ou respostas de DNS para enviá-los para fora da rede, contornando firewalls.
Quais ferramentas usam essa técnica?
Ferramentas comuns incluem iodine, dnscat2 e dns2tcp, que criam túneis para transferir dados através do DNS.
O que são 'registros TXT/CNAME/NULL'?
São tipos de registros DNS que podem ser usados para transportar dados. Ataques podem abusar desses registros para enviar ou receber informações.
Detalhes
Descrição original do autor
Detect data exfiltration via DNS tunneling (tools like iodine, dnscat2, dns2tcp) by analyzing query entropy, subdomain length, query volume to single domains, TXT/CNAME/NULL record abuse, and oversized response payloads using passive DNS monitoring and statistical/ML methods. Use when hunting for covert DNS-based data exfiltration or building a passive DNS anomaly detection capability.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5661
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
data-throughput-accelerator
Faz seu agente acelerar a movimentação de grandes volumes de dados. Ele encontra gargalos e garante que os dados sejam transferidos de forma rápida e correta.
affaan-m/ECC
inventory-demand-planning
Ajuda seu agente a prever a demanda de produtos em lojas. Ele otimiza o estoque e planeja quando fazer promoções para vender mais.
affaan-m/ECC
market-research
Ajuda seu agente a realizar pesquisas de mercado e análises competitivas. Fornece resumos com atribuição de fontes.
affaan-m/ECC