
Scanner rápido de takeover de subdomínios com mais de 50 assinaturas, suportando integrações com provedores de nuvem (AWS, Azure, Cloudflare) e modo de pipeline CI/CD para testes de segurança automatizados.
DNS Reaper é mais uma ferramenta de takeover de subdomínios, mas com ênfase em precisão, velocidade e na quantidade de assinaturas em nosso arsenal!
Podemos escanear cerca de 50 subdomínios por segundo, testando cada um com mais de 50 assinaturas de takeover.
Isso significa que a maioria das organizações pode escanear todo o seu patrimônio DNS em menos de 10 segundos.
Para facilitar o início, construímos uma versão web divertida que escaneia um arquivo de zona DNS, uma lista separada por vírgulas ou até 100 subdomínios que encontramos no ProjectDiscovery.
Confira: dnsreaper web
Claro que a ferramenta CLI é muito mais ÉPICA e mais rápida.

Você pode executá-lo fornecendo uma lista de domínios em um arquivo, ou um único domínio na linha de comando. O DNS Reaper então escaneará os domínios com todas as suas assinaturas, produzindo um arquivo CSV.
Você pode executá-lo deixando-o buscar seus registros DNS para você! Sim, é isso mesmo, você pode executá-lo com credenciais e testar toda a configuração do seu domínio de forma rápida e fácil. O DNS Reaper se conectará ao provedor DNS, buscará todos os seus registros e os testará.
Atualmente oferecemos suporte a AWS Route53, Cloudflare e Azure. A documentação sobre como adicionar seu próprio provedor pode ser encontrada aqui
Punk Security é uma empresa DevSecOps, e o DNS Reaper tem suas raízes nas melhores práticas modernas de segurança.
Você pode executar o DNS Reaper em um pipeline, fornecendo a ele uma lista de domínios que você pretende provisionar, e ele sairá com código Não-Zero se detectar que um takeover é possível. Você pode prevenir takeovers antes mesmo que sejam possíveis!
Para executar o DNS Reaper, você pode usar a imagem Docker ou executá-lo com Python 3.11.
Os resultados são retornados na saída e mais detalhes são fornecidos em um arquivo local "results.csv". Também oferecemos suporte a saída JSON como opção.
docker run punksecurity/dnsreaper --help
[!IMPORTANT] A versão mínima do Python que o dnsReaper suporta é 3.9, mas 3.11 é recomendada. Tentamos manter o suporte para versões estáveis do Python que não estão no fim da vida. Não forneceremos suporte nem aceitaremos pull requests para problemas que afetem versões do Python no fim da vida. Veja Status das versões do Python para mais informações.
Ao executar localmente, recomendamos usar um ambiente virtual (venv) para evitar conflitos de dependência. Instruções disponíveis Aqui.
pip install -r requirements.txt
python main.py --help
Escanear conta AWS:
docker run punksecurity/dnsreaper aws --aws-access-key-id <key> --aws-access-key-secret <secret>
Para mais informações, veja a documentação do provedor AWS
Escanear todos os domínios de um arquivo:
docker run -it --rm -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<filename>
Escanear um único domínio
docker run -it --rm punksecurity/dnsreaper single --domain <domain>
Escanear um único domínio e saída para stdout:
Você deve redirecionar a saída stderr ou salvar a saída stdout com >
docker run -it --rm punksecurity/dnsreaper single --domain <domain> --out stdout --out-format=json > output
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
DNS Reaper ☠️
Escaneie todos os seus registros DNS para takeovers de subdomínios!
uso:
main.py provider [options]
saída:
resultados exibidos na tela e (por padrão) results.csv
ajuda:
main.py --help
provedores:
> aws - Escaneia múltiplos domínios obtendo-os do AWS Route53
> azure - Escaneia múltiplos domínios obtendo-os dos serviços DNS do Azure
> bind - Lê domínios de um arquivo de zona BIND DNS, ou caminho para múltiplos
> cloudflare - Escaneia múltiplos domínios obtendo-os do Cloudflare
> digitalocean - Escaneia múltiplos domínios obtendo-os do Digital Ocean
> file - Lê domínios de um arquivo (ou pasta de arquivos), um por linha
> godaddy - Escaneia múltiplos domínios obtendo-os do GoDaddy
> googlecloud - Escaneia múltiplos domínios obtendo-os do Google Cloud. Requer a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
> projectdiscovery - Escaneia múltiplos domínios obtendo-os do ProjectDiscovery
> securitytrails - Escaneia múltiplos domínios obtendo-os do Security Trails
> single - Escaneia um único domínio fornecendo um domínio na linha de comando
> zonetransfer - Escaneia múltiplos domínios obtendo registros via transferência de zona DNS
argumentos posicionais:
{aws,azure,bind,cloudflare,digitalocean,file,godaddy,googlecloud,projectdiscovery,securitytrails,single,zonetransfer}
opções:
-h, --help Mostra esta mensagem de ajuda e sai
--out OUT Arquivo de saída (padrão: results) - use 'stdout' para transmitir
--out-format {csv,json}
--resolver RESOLVER Fornece um resolvedor DNS personalizado
--parallelism PARALLELISM
Número de domínios para testar em paralelo - muito alto e você pode ver resultados DNS estranhos (padrão: 30)
--disable-probable Não verificar condições prováveis
--enable-unlikely Verificar mais condições, mas com alta taxa de falsos positivos
--signature SIGNATURE
Escaneie apenas com esta assinatura (múltiplas aceitas)
--exclude-signature EXCLUDE_SIGNATURE
Não escaneie com esta assinatura (múltiplas aceitas)
--pipeline Sair com código Não-Zero na detecção (usado para falhar um pipeline)
-v, --verbose -v para verboso, -vv para extra verboso
--nocolour Desativa texto colorido
aws:
Escaneia múltiplos domínios obtendo-os do AWS Route53
--aws-access-key-id AWS_ACCESS_KEY_ID
Opcional
--aws-access-key-secret AWS_ACCESS_KEY_SECRET
Opcional
--aws-session-token AWS_SESSION_TOKEN
Opcional
azure:
Escaneia múltiplos domínios obtendo-os dos serviços DNS do Azure
--az-subscription-id AZ_SUBSCRIPTION_ID
Obrigatório
--az-tenant-id AZ_TENANT_ID
Obrigatório
--az-client-id AZ_CLIENT_ID
Obrigatório
--az-client-secret AZ_CLIENT_SECRET
Obrigatório
bind:
Lê domínios de um arquivo de zona BIND DNS, ou caminho para múltiplos
--bind-zone-file BIND_ZONE_FILE
Obrigatório
cloudflare:
Escaneia múltiplos domínios obtendo-os do Cloudflare
--cloudflare-token CLOUDFLARE_TOKEN
Obrigatório
digitalocean:
Escaneia múltiplos domínios obtendo-os do Digital Ocean
--do-api-key DO_API_KEY
Obrigatório
--do-domains DO_DOMAINS
Opcional
file:
Lê domínios de um arquivo (ou pasta de arquivos), um por linha
--filename FILENAME Obrigatório
projectdiscovery:
Escaneia múltiplos domínios obtendo-os do ProjectDiscovery
--pd-api-key PD_API_KEY
Obrigatório
--pd-domains PD_DOMAINS
Obrigatório
godaddy:
Escaneia múltiplos domínios obtendo-os do GoDaddy
--gd-api-key GD_API_KEY
Obrigatório
--gd-api-secret GD_API_SECRET
Obrigatório
--gd-domains GD_DOMAINS
Opcional
googlecloud:
Escaneia múltiplos domínios obtendo-os do Google Cloud. Requer a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
--project-id PROJECT_ID
Obrigatório
projectdiscovery:
Escaneia múltiplos domínios obtendo-os do ProjectDiscovery
--pd-api-key PD_API_KEY
Obrigatório
--pd-domains PD_DOMAINS
Obrigatório
securitytrails:
Escaneia múltiplos domínios obtendo-os do Security Trails
--st-api-key ST_API_KEY
Obrigatório
--st-domains ST_DOMAINS
Obrigatório
googlecloud:
Escaneia múltiplos domínios obtendo-os do Google Cloud
--project-id PROJECT_ID
Obrigatório
projectdiscovery:
Escaneia múltiplos domínios obtendo-os do ProjectDiscovery
--pd-api-key PD_API_KEY
Obrigatório
--pd-domains PD_DOMAINS
Opcional
securitytrails:
Escaneia múltiplos domínios obtendo-os do Security Trails
--st-api-key ST_API_KEY
Obrigatório
--st-domains ST_DOMAINS
Opcional
single:
Escaneia um único domínio fornecendo um domínio na linha de comando
--domain DOMAIN Obrigatório
zonetransfer:
Escaneia múltiplos domínios obtendo registros via transferência de zona DNS
--zonetransfer-nameserver ZONETRANSFER_NAMESERVER
Obrigatório
--zonetransfer-domain ZONETRANSFER_DOMAIN
Obrigatório