
Escâner concorrente de tomada de DNS detectando vulnerabilidades em CNAME, NS, AXFR, SPF, MX, SRV e registro A obsoleto em provedores de nuvem, com análise de cadeia multinível.
Scanner de Tomada de DNS
Subjack é um scanner de tomada de DNS escrito em Go, projetado para escanear uma lista de domínios simultaneamente e identificar aqueles que podem ser sequestrados. Com a velocidade e eficiência do Go, esta ferramenta realmente se destaca quando se trata de testes em massa. Sempre verifique os resultados manualmente para eliminar falsos positivos.
Subjack detecta:
include: do SPF permitindo falsificação de e-mailRequer Go
go install github.com/haccer/subjack@latest
subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
Subjack pode ler domínios da entrada padrão, facilitando o pipe de saída de outras ferramentas:
subfinder -d example.com | subjack -ssl -o results.json
cat domains.txt | subjack -t 20 -o results.txt
Com a flag -ns, o subjack realiza dois tipos de verificações de tomada de nameserver:
Domínios NS expirados: Verifica se algum dos nameservers de um domínio expirou e está disponível para compra. Um atacante que registra um nameserver expirado pode assumir o controle total de todo o DNS daquele domínio — ele pode apontar qualquer registro para qualquer lugar, interceptar e-mail, emitir certificados e muito mais.
Delegações NS pendentes: Detecta quando os registros NS de um domínio apontam para provedores de DNS na nuvem, mas a zona hospedada foi excluída. Subjack consulta cada nameserver diretamente por um registro SOA — se todos retornarem SERVFAIL ou REFUSED, a zona desapareceu e é potencialmente reivindicável. Provedores suportados:
ns-*.awsdns-*)ns-cloud-*.googledomains.com)ns*-*.azure-dns.*)ns*.digitalocean.com)ns*.vultr.com)ns*.linode.com)subjack -w subdomains.txt -ns -o results.json
Com a flag -ar, o subjack resolverá registros A e verificará se o endereço IP está realmente ativo. Quando uma empresa encerra um servidor na nuvem mas esquece de remover o registro A de DNS, o IP é liberado de volta para o pool do provedor. Um atacante pode iniciar novas instâncias naquele provedor até obter o mesmo IP, ganhando controle do subdomínio.
Subjack identifica o provedor de nuvem (AWS, GCP, Azure, DigitalOcean, Linode, Vultr, Oracle) quando possível, facilitando o direcionamento à plataforma correta. A detecção usa ping ICMP (requer root) com fallback TCP nas portas 80/443.
sudo subjack -w subdomains.txt -ar -o results.json
Os resultados são sinalizados como STALE A RECORD e devem ser verificados manualmente — um IP que não responde nem sempre significa que é reivindicável.
Com a flag -axfr, o subjack tentará transferências de zona DNS (AXFR) que podem expor todos os registros DNS de um domínio. Subjack vai além de apenas testar os nameservers oficiais do domínio — ele também faz força bruta em hostnames de nameserver comuns (ns1, dns-0, ns-backup, etc.) porque nameservers ocultos ou esquecidos geralmente permanecem desprotegidos mesmo depois que os primários foram travados.
subjack -d example.com -axfr -o results.json
subjack -w domains.txt -axfr -o results.json
Os resultados são sinalizados como ZONE TRANSFER com o nameserver vulnerável e o número de registros expostos.
Com a flag -mail, o subjack verifica dois vetores de tomada baseados em e-mail:
Tomada de include SPF: Analisa registros TXT de SPF e verifica se algum domínio include: expirou e está disponível para registro. Um atacante que registra o domínio incluído pode enviar e-mails totalmente autenticados como o alvo, contornando SPF e DMARC.
Tomada de registro MX: Verifica se algum destino de registro MX expirou e está disponível para registro. Um atacante que controla o servidor de e-mail pode interceptar todo o e-mail de entrada — redefinições de senha, códigos 2FA e muito mais.
subjack -w domains.txt -mail -o results.json
Essas verificações são executadas automaticamente em cada varredura:
Tomada de cadeia CNAME: Segue cadeias CNAME de múltiplos níveis (até 10 de profundidade) e verifica se algum alvo intermediário é reivindicável. A detecção padrão de CNAME verifica apenas o primeiro salto — cadeias capturam oportunidades de tomada mais profundas.
Tomada de registro SRV: Verifica registros SRV comuns (SIP, XMPP, LDAP, Kerberos, IMAP, CalDAV, etc.) quanto a alvos que expiraram e estão disponíveis para registro.
Você pode usar o scanio.sh que é uma espécie de script PoC para localizar em massa subdomínios vulneráveis usando resultados do Project Sonar da Rapid7. Este script analisa e filtra o dump em busca de registros CNAME desejados e gera uma grande lista de subdomínios para verificar com o subjack se são vulneráveis à tomada hostil de subdomínio. Por favor, use isso com responsabilidade.
Sua wordlist deve incluir uma lista de subdomínios, um por linha:
assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com
Informações adicionais sobre tomadas de DNS:
| Flag | Descrição | Padrão |
|---|
-d | Domínio único a verificar | |
-w | Caminho para a wordlist de subdomínios | |
-t | Número de threads concorrentes | 10 |
-timeout | Segundos para aguardar antes do timeout da conexão | 10 |
-o | Caminho para salvar a saída (use extensão .json para saída JSON) | |
-ssl | Forçar conexões HTTPS (pode aumentar a precisão) | false |
-a | Enviar requisições para todas as URLs, não apenas aquelas com CNAMEs identificados (recomendado) | false |
-m | Marcar registros CNAME mortos mesmo que o domínio não esteja disponível para registro | false |
-r | Caminho para uma lista de resolvedores DNS (um IP por linha, usa 8.8.8.8 como fallback em falha) | |
-ns | Verificar tomadas de NS (domínios NS expirados + delegações DNS na nuvem pendentes) | false |
-ar | Verificar registros A obsoletos apontando para IPs mortos (pode exigir root para ICMP) | false |
-axfr | Verificar transferências de zona (AXFR) incluindo força bruta de NS | false |
-mail | Verificar tomadas de include SPF e registro MX | false |
-v | Exibir mais informações por requisição | false |