detecting-command-and-control-over-dns
Ajuda seu agente a detectar tráfego malicioso escondido em DNS. Identifica comandos enviados através de consultas de domínio.
O que ela faz
Esta ferramenta ajuda a encontrar tráfego de internet suspeito que usa o sistema de nomes de domínio (DNS) para esconder atividades maliciosas, como o envio de comandos para computadores infectados ou a cópia de dados.
Quando usar
- ✓Quando você suspeita que o DNS está sendo usado para esconder comunicação perigosa.
- ✓Ao analisar registros de DNS em busca de dados codificados em nomes de domínio.
- ✓Para identificar domínios criados automaticamente por programas maliciosos (DGA).
Exemplo do que pedir para a IA
“Procure por atividades incomuns nos registros de DNS que possam indicar túneis de comando e controle.”
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
Ela analisa os nomes dos domínios consultados, verificando se eles parecem aleatórios ou codificados demais, o que pode indicar que estão sendo usados para esconder tráfego malicioso.
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-command-and-control-over-dnsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-command-and-control-over-dns/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 Comando e Controle Via DNS
Quando Usar
- Investigando suspeitas de túneis DNS usados para comunicação C2 ou exfiltração de dados
- Analisando logs de consultas DNS em busca de sinais de payloads codificados em strings de subdomínios
- Classificando domínios como gerados por DGA vs. legítimos usando métodos estatísticos ou de ML
- Detectando padrões de beaconing DNS (intervalos regulares, tamanhos de consulta consistentes)
- Caçando por tráfego Iodine, dnscat2, dns2tcp, Cobalt Strike DNS ou Sliver DNS
- Monitorando o abuso de registros TXT para entrega de comandos ou download de payloads em estágios
- Construindo regras de detecção de anomalias DNS para implantação em SOC/SIEM
Não use para monitoramento geral de desempenho DNS ou auditoria de configuração DNS; use ferramentas de monitoramento de saúde DNS para isso. Para detecção de C2 baseada em HTTP/HTTPS, use habilidades de análise de tráfego de rede focadas em protocolos web.
AVISO LEGAL: As ferramentas de túnel DNS referenciadas nesta habilidade (Iodine, dnscat2, dns2tcp) são de uso duplo. Elas têm usos legítimos (contornar portais cativos, pesquisa de segurança) e usos maliciosos (canais C2, exfiltração). Implante a detecção apenas em redes que você está autorizado a monitorar. Testar ferramentas de túnel requer autorização explícita.
Pré-requisitos
- Logs de consultas DNS do resolvedor recursivo, Zeek/Bro, Suricata ou tap de DNS passivo
- Python 3.9+ com
numpy,scikit-learn,pandas,tldextractednspython - Zeek (anteriormente Bro) com saída dns.log ou Suricata com log JSON EVE de DNS
- Acesso a SIEM (Splunk, Elastic, Microsoft Sentinel) para correlação de logs
- Acesso a banco de dados de DNS passivo (CIRCL pDNS, Farsight DNSDB ou interno) para enriquecimento
- Wireshark/tshark para inspeção de DNS em nível de pacote
- Lista branca de domínios conhecidos como bons (Alexa/Tranco top 1M ou Majestic Million)
Fluxo de Trabalho
Etapa 1: Coletar e Analisar Logs de Consultas DNS
Ingerir tráfego DNS de sensores de rede e analisar em formato legível:
# Zeek - extract dns.log fields
# Default Zeek dns.log columns:
# ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id rtt query
# qclass qclass_name qtype qtype_name rcode rcode_name AA TC RD RA Z
# answers TTLs rejected
# Filter for potentially suspicious record types
cat dns.log | zeek-cut ts id.orig_h query qtype_name answers rcode_name | \
grep -E "TXT|NULL|CNAME|MX" > suspicious_qtypes.log
# Extract unique queried domains
cat dns.log | zeek-cut query | sort -u > unique_domains.txt
# Suricata EVE JSON - extract DNS events
cat eve.json | jq -r 'select(.event_type=="dns") |
[.timestamp, .src_ip, .dns.rrname, .dns.rrtype, .dns.rcode] |
@tsv' > dns_events.tsv
# tshark - extract DNS queries from pcap
tshark -r capture.pcap -T fields \
-e frame.time -e ip.src -e ip.dst \
-e dns.qry.name -e dns.qry.type \
-e dns.resp.type -e dns.txt \
-Y "dns" > dns_queries.tsv
# Count queries per domain (find high-volume destinations)
cat dns.log | zeek-cut query | \
awk -F. '{print $(NF-1)"."$NF}' | \
sort | uniq -c | sort -rn | head -50
Etapa 2: Análise de Entropia de Shannon de Consultas DNS
Calcular a entropia de strings de subdomínios para identificar dados codificados/criptografados:
#!/usr/bin/env python3
"""Análise de entropia de Shannon para subdomínios de consultas DNS."""
import math
import csv
import sys
from collections import Counter
try:
import tldextract
HAS_TLDEXTRACT = True
except ImportError:
HAS_TLDEXTRACT = False
def shannon_entropy(data):
"""Calcular a entropia de Shannon de uma string (bits por caractere)."""
if not data:
return 0.0
counter = Counter(data)
length = len(data)
entropy = -sum(
(count / length) * math.log2(count / length)
for count in counter.values()
)
return entropy
def extract_subdomain(fqdn):
"""Extrair a porção do subdomínio de um nome de domínio totalmente qualificado."""
if HAS_TLDEXTRACT:
ext = tldextract.extract(fqdn)
if ext.subdomain:
return ext.subdomain, f"{ext.domain}.{ext.suffix}"
return "", f"{ext.domain}.{ext.suffix}"
else:
# Fallback: assumir que os dois últimos rótulos são domínio + TLD
parts = fqdn.rstrip(".").split(".")
if len(parts) > 2:
return ".".join(parts[:-2]), ".".join(parts[-2:])
return "", fqdn
def analyze_dns_entropy(queries, entropy_threshold=3.5, length_threshold=30):
"""
Analisar consultas DNS para indicadores de túnel usando entropia.
Limiares (ajustáveis por ambiente):
- entropy_threshold: Entropia de Shannon acima deste valor sinaliza como suspeito (3.5-4.0 típico)
…
Perguntas frequentes
O que é 'command and control' (C2)?
É a comunicação entre um hacker e um computador que ele conseguiu infectar, usada para dar ordens ou roubar informações.
O que é 'DNS tunneling'?
É uma técnica onde dados ou comandos são escondidos dentro de consultas e respostas normais de DNS, que são geralmente permitidas pelas redes.
O que são 'DGA domains'?
São domínios gerados por algoritmos, frequentemente usados por malware para dificultar o bloqueio, pois mudam constantemente.
Detalhes
Descrição original do autor
Detect command-and-control (C2) traffic tunneled over DNS from tools like Iodine, dnscat2, dns2tcp, and Cobalt Strike DNS beacon, using Shannon entropy analysis of query subdomains, ML-based DGA classification, passive DNS correlation, and Zeek/Suricata signatures. Use when investigating suspected DNS tunneling, classifying DGA domains, detecting DNS beaconing, or building DNS anomaly rules for a
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5647
- 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
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC