
Escáner rápido de toma de subdominios con más de 50 firmas, con soporte para integraciones con proveedores de nube (AWS, Azure, Cloudflare) y modo de pipeline CI/CD para pruebas de seguridad automatizadas.
DNS Reaper es otra herramienta de toma de control de subdominios, pero con énfasis en precisión, velocidad y la cantidad de firmas en nuestro arsenal.
Podemos escanear alrededor de 50 subdominios por segundo, probando cada uno con más de 50 firmas de toma de control. Esto significa que la mayoría de las organizaciones pueden escanear todo su patrimonio DNS en menos de 10 segundos.
Para facilitar el inicio, hemos creado una pequeña versión web que escanea un archivo de zona DNS, una lista separada por comas o hasta 100 subdominios que encontramos de ProjectDiscovery.
Échale un vistazo: dnsreaper web
Por supuesto, la herramienta CLI es mucho más ÉPICA y más rápida.

Puedes ejecutarlo proporcionando una lista de dominios en un archivo, o un solo dominio en la línea de comandos. DNS Reaper entonces escaneará los dominios con todas sus firmas, generando un archivo CSV.
¡Puedes ejecutarlo dejando que obtenga tus registros DNS por ti! Sí, así es, puedes ejecutarlo con credenciales y probar toda tu configuración de dominio de manera rápida y sencilla. DNS Reaper se conectará al proveedor DNS y obtendrá todos tus registros, y luego los probará.
Actualmente soportamos AWS Route53, Cloudflare y Azure. La documentación para agregar tu propio proveedor se puede encontrar aquí
Punk Security es una empresa de DevSecOps, y DNS Reaper tiene sus raíces en las mejores prácticas de seguridad modernas.
Puedes ejecutar DNS Reaper en un pipeline, alimentándolo con una lista de dominios que planeas aprovisionar, y saldrá con código distinto de cero si detecta que es posible una toma de control. ¡Puedes prevenir tomas de control incluso antes de que sean posibles!
Para ejecutar DNS Reaper, puedes usar la imagen de Docker o ejecutarlo con Python 3.11.
Los hallazgos se devuelven en la salida y se proporcionan más detalles en un archivo local "results.csv". También soportamos salida JSON como opción.
docker run punksecurity/dnsreaper --help
[!IMPORTANT] La versión mínima de Python que soporta dnsReaper es 3.9, pero se recomienda 3.11. Intentamos mantener soporte para versiones estables de Python que no estén al final de su vida útil. No proporcionaremos soporte ni aceptaremos pull requests para problemas que afecten versiones de Python al final de su vida útil. Consulta Estado de las versiones de Python para más información.
Al ejecutar localmente, recomendamos usar un entorno virtual (venv) para evitar conflictos de dependencias. Instrucciones disponibles Aquí.
pip install -r requirements.txt
python main.py --help
Escanear cuenta AWS:
docker run punksecurity/dnsreaper aws --aws-access-key-id <key> --aws-access-key-secret <secret>
Para más información, consulta la documentación del proveedor aws
Escanear todos los dominios desde un archivo:
docker run -it --rm -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<filename>
Escanear un solo dominio:
docker run -it --rm punksecurity/dnsreaper single --domain <domain>
Escanear un solo dominio y enviar salida a stdout:
Debes redirigir la salida stderr o guardar la salida stdout con >
docker run -it --rm punksecurity/dnsreaper single --domain <domain> --out stdout --out-format=json > output
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
DNS Reaper ☠️
¡Escanea todos tus registros DNS para detectar tomas de control de subdominios!
uso:
main.py provider [options]
salida:
los hallazgos se muestran en pantalla y (por defecto) results.csv
ayuda:
main.py --help
proveedores:
> aws - Escanea múltiples dominios obteniéndolos de AWS Route53
> azure - Escanea múltiples dominios obteniéndolos de Azure DNS services
> bind - Lee dominios de un archivo de zona DNS BIND, o ruta a varios
> cloudflare - Escanea múltiples dominios obteniéndolos de Cloudflare
> digitalocean - Escanea múltiples dominios obteniéndolos de Digital Ocean
> file - Lee dominios de un archivo (o carpeta de archivos), uno por línea
> godaddy - Escanea múltiples dominios obteniéndolos de GoDaddy
> googlecloud - Escanea múltiples dominios obteniéndolos de Google Cloud. Requiere la variable de entorno GOOGLE_APPLICATION_CREDENTIALS.
> projectdiscovery - Escanea múltiples dominios obteniéndolos de ProjectDiscovery
> securitytrails - Escanea múltiples dominios obteniéndolos de Security Trails
> single - Escanea un solo dominio proporcionando un dominio en la línea de comandos
> zonetransfer - Escanea múltiples dominios obteniendo registros mediante transferencia de zona DNS
argumentos posicionales:
{aws,azure,bind,cloudflare,digitalocean,file,godaddy,googlecloud,projectdiscovery,securitytrails,single,zonetransfer}
opciones:
-h, --help Muestra este mensaje de ayuda y sale
--out OUT Archivo de salida (por defecto: results) - usa 'stdout' para transmitir
--out-format {csv,json}
--resolver RESOLVER Proporciona un resolvedor DNS personalizado
--parallelism PARALLELISM
Número de dominios a probar en paralelo - demasiado alto puede dar resultados DNS extraños (por defecto: 30)
--disable-probable No comprobar condiciones probables
--enable-unlikely Comprobar más condiciones, pero con una alta tasa de falsos positivos
--signature SIGNATURE
Escanear solo con esta firma (se aceptan múltiples)
--exclude-signature EXCLUDE_SIGNATURE
No escanear con esta firma (se aceptan múltiples)
--pipeline Salir con código distinto de cero al detectar (se usa para fallar un pipeline)
-v, --verbose -v para verbose, -vv para muy verbose
--nocolour Desactiva el texto coloreado
aws:
Escanea múltiples dominios obteniéndolos de 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:
Escanea múltiples dominios obteniéndolos de Azure DNS services
--az-subscription-id AZ_SUBSCRIPTION_ID
Requerido
--az-tenant-id AZ_TENANT_ID
Requerido
--az-client-id AZ_CLIENT_ID
Requerido
--az-client-secret AZ_CLIENT_SECRET
Requerido
bind:
Lee dominios de un archivo de zona DNS BIND, o ruta a varios
--bind-zone-file BIND_ZONE_FILE
Requerido
cloudflare:
Escanea múltiples dominios obteniéndolos de Cloudflare
--cloudflare-token CLOUDFLARE_TOKEN
Requerido
digitalocean:
Escanea múltiples dominios obteniéndolos de Digital Ocean
--do-api-key DO_API_KEY
Requerido
--do-domains DO_DOMAINS
Opcional
file:
Lee dominios de un archivo (o carpeta de archivos), uno por línea
--filename FILENAME Requerido
projectdiscovery:
Escanea múltiples dominios obteniéndolos de ProjectDiscovery
--pd-api-key PD_API_KEY
Requerido
--pd-domains PD_DOMAINS
Requerido
godaddy:
Escanea múltiples dominios obteniéndolos de GoDaddy
--gd-api-key GD_API_KEY
Requerido
--gd-api-secret GD_API_SECRET
Requerido
--gd-domains GD_DOMAINS
Opcional
googlecloud:
Escanea múltiples dominios obteniéndolos de Google Cloud. Requiere la variable de entorno GOOGLE_APPLICATION_CREDENTIALS.
--project-id PROJECT_ID
Requerido
projectdiscovery:
Escanea múltiples dominios obteniéndolos de ProjectDiscovery
--pd-api-key PD_API_KEY
Requerido
--pd-domains PD_DOMAINS
Requerido
securitytrails:
Escanea múltiples dominios obteniéndolos de Security Trails
--st-api-key ST_API_KEY
Requerido
--st-domains ST_DOMAINS
Requerido
googlecloud:
Escanea múltiples dominios obteniéndolos de Google Cloud
--project-id PROJECT_ID
Requerido
projectdiscovery:
Escanea múltiples dominios obteniéndolos de ProjectDiscovery
--pd-api-key PD_API_KEY
Requerido
--pd-domains PD_DOMAINS
Opcional
securitytrails:
Escanea múltiples dominios obteniéndolos de Security Trails
--st-api-key ST_API_KEY
Requerido
--st-domains ST_DOMAINS
Opcional
single:
Escanea un solo dominio proporcionando un dominio en la línea de comandos
--domain DOMAIN Requerido
zonetransfer:
Escanea múltiples dominios obteniendo registros mediante transferencia de zona DNS
--zonetransfer-nameserver ZONETRANSFER_NAMESERVER
Requerido
--zonetransfer-domain ZONETRANSFER_DOMAIN
Requerido