
Scanner rapide de prise de contrôle de sous-domaines avec 50+ signatures, prenant en charge les intégrations de fournisseurs cloud (AWS, Azure, Cloudflare) et le mode pipeline CI/CD pour les tests de sécurité automatisés.
DNS Reaper est un autre outil de prise de contrôle de sous-domaines, mais avec un accent sur la précision, la rapidité et le nombre de signatures dans notre arsenal !
Nous pouvons analyser environ 50 sous-domaines par seconde, en testant chacun avec plus de 50 signatures de prise de contrôle. Cela signifie que la plupart des organisations peuvent analyser l'intégralité de leur parc DNS en moins de 10 secondes.
Pour faciliter la prise en main, nous avons construit une petite version web qui analysera un fichier de zone DNS, une liste séparée par des virgules, ou jusqu'à 100 sous-domaines que nous trouvons via ProjectDiscovery.
Consultez-la : dnsreaper web
Bien sûr, l'outil CLI est bien plus ÉPIQUE, et plus rapide.

Vous pouvez l'exécuter en fournissant une liste de domaines dans un fichier, ou un seul domaine en ligne de commande. DNS Reaper analysera ensuite les domaines avec toutes ses signatures, produisant un fichier CSV.
Vous pouvez l'exécuter en lui laissant récupérer vos enregistrements DNS pour vous ! Oui, c'est juste, vous pouvez l'exécuter avec des identifiants et tester toute votre configuration de domaine rapidement et facilement. DNS Reaper se connectera au fournisseur DNS, récupérera tous vos enregistrements, puis les testera.
Nous supportons actuellement AWS Route53, Cloudflare et Azure. La documentation sur l'ajout de votre propre fournisseur se trouve ici
Punk Security est une entreprise DevSecOps, et DNS Reaper puise ses racines dans les meilleures pratiques de sécurité modernes.
Vous pouvez exécuter DNS Reaper dans un pipeline, en lui fournissant une liste de domaines que vous prévoyez de provisionner, et il se terminera avec un code non nul s'il détecte qu'une prise de contrôle est possible. Vous pouvez ainsi prévenir les prises de contrôle avant même qu'elles ne soient possibles !
Pour exécuter DNS Reaper, vous pouvez utiliser l'image Docker ou l'exécuter avec Python 3.11.
Les résultats sont renvoyés dans la sortie et plus de détails sont fournis dans un fichier local "results.csv". Nous supportons également la sortie JSON en option.
docker run punksecurity/dnsreaper --help
[!IMPORTANT] La version minimale de Python supportée par dnsReaper est 3.9, mais 3.11 est recommandée. Nous essayons de maintenir le support des versions stables de Python qui ne sont pas en fin de vie. Nous ne fournirons pas de support et n'accepterons pas de pull requests pour des problèmes affectant les versions de Python en fin de vie. Voir Statut des versions de Python pour plus d'informations.
Lors de l'exécution locale, nous recommandons d'utiliser un environnement virtuel (venv) pour éviter les conflits de dépendances. Instructions disponibles Ici.
pip install -r requirements.txt
python main.py --help
Analyser un compte AWS :
docker run punksecurity/dnsreaper aws --aws-access-key-id <key> --aws-access-key-secret <secret>
Pour plus d'informations, voir la documentation du fournisseur AWS
Analyser tous les domaines depuis un fichier :
docker run -it --rm -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<filename>
Analyser un seul domaine :
docker run -it --rm punksecurity/dnsreaper single --domain <domain>
Analyser un seul domaine et afficher la sortie sur stdout :
Vous devez soit rediriger la sortie stderr, soit sauvegarder la sortie stdout avec >
docker run -it --rm punksecurity/dnsreaper single --domain <domain> --out stdout --out-format=json > output
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
DNS Reaper ☠️
Analysez tous vos enregistrements DNS pour les prises de contrôle de sous-domaines !
utilisation :
main.py provider [options]
sortie :
résultats affichés à l'écran et (par défaut) dans results.csv
aide :
main.py --help
fournisseurs :
> aws - Analyser plusieurs domaines en les récupérant depuis AWS Route53
> azure - Analyser plusieurs domaines en les récupérant depuis Azure DNS services
> bind - Lire les domaines depuis un fichier de zone DNS BIND, ou un chemin vers plusieurs
> cloudflare - Analyser plusieurs domaines en les récupérant depuis Cloudflare
> digitalocean - Analyser plusieurs domaines en les récupérant depuis Digital Ocean
> file - Lire les domaines depuis un fichier (ou un dossier de fichiers), un par ligne
> godaddy - Analyser plusieurs domaines en les récupérant depuis GoDaddy
> googlecloud - Analyser plusieurs domaines en les récupérant depuis Google Cloud. Nécessite la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.
> projectdiscovery - Analyser plusieurs domaines en les récupérant depuis ProjectDiscovery
> securitytrails - Analyser plusieurs domaines en les récupérant depuis Security Trails
> single - Analyser un seul domaine en fournissant un domaine en ligne de commande
> zonetransfer - Analyser plusieurs domaines en récupérant les enregistrements via un transfert de zone DNS
arguments positionnels :
{aws,azure,bind,cloudflare,digitalocean,file,godaddy,googlecloud,projectdiscovery,securitytrails,single,zonetransfer}
options :
-h, --help Affiche ce message d'aide et quitte
--out OUT Fichier de sortie (par défaut : results) - utiliser 'stdout' pour la sortie en streaming
--out-format {csv,json}
--resolver RESOLVER Fournir un résolveur DNS personnalisé
--parallelism PARALLELISM
Nombre de domaines à tester en parallèle - trop élevé peut donner des résultats DNS étranges (défaut : 30)
--disable-probable Ne pas vérifier les conditions probables
--enable-unlikely Vérifier plus de conditions, mais avec un taux élevé de faux positifs
--signature SIGNATURE
Analyser uniquement avec cette signature (plusieurs acceptées)
--exclude-signature EXCLUDE_SIGNATURE
Ne pas analyser avec cette signature (plusieurs acceptées)
--pipeline Quitter avec un code non nul en cas de détection (utilisé pour faire échouer un pipeline)
-v, --verbose -v pour verbeux, -vv pour très verbeux
--nocolour Désactive le texte coloré
aws :
Analyser plusieurs domaines en les récupérant depuis AWS Route53
--aws-access-key-id AWS_ACCESS_KEY_ID
Optionnel
--aws-access-key-secret AWS_ACCESS_KEY_SECRET
Optionnel
--aws-session-token AWS_SESSION_TOKEN
Optionnel
azure :
Analyser plusieurs domaines en les récupérant depuis Azure DNS services
--az-subscription-id AZ_SUBSCRIPTION_ID
Requis
--az-tenant-id AZ_TENANT_ID
Requis
--az-client-id AZ_CLIENT_ID
Requis
--az-client-secret AZ_CLIENT_SECRET
Requis
bind :
Lire les domaines depuis un fichier de zone DNS BIND, ou un chemin vers plusieurs
--bind-zone-file BIND_ZONE_FILE
Requis
cloudflare :
Analyser plusieurs domaines en les récupérant depuis Cloudflare
--cloudflare-token CLOUDFLARE_TOKEN
Requis
digitalocean :
Analyser plusieurs domaines en les récupérant depuis Digital Ocean
--do-api-key DO_API_KEY
Requis
--do-domains DO_DOMAINS
Optionnel
file :
Lire les domaines depuis un fichier (ou un dossier de fichiers), un par ligne
--filename FILENAME Requis
projectdiscovery :
Analyser plusieurs domaines en les récupérant depuis ProjectDiscovery
--pd-api-key PD_API_KEY
Requis
--pd-domains PD_DOMAINS
Requis
godaddy :
Analyser plusieurs domaines en les récupérant depuis GoDaddy
--gd-api-key GD_API_KEY
Requis
--gd-api-secret GD_API_SECRET
Requis
--gd-domains GD_DOMAINS
Optionnel
googlecloud :
Analyser plusieurs domaines en les récupérant depuis Google Cloud. Nécessite la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.
--project-id PROJECT_ID
Requis
projectdiscovery :
Analyser plusieurs domaines en les récupérant depuis ProjectDiscovery
--pd-api-key PD_API_KEY
Requis
--pd-domains PD_DOMAINS
Requis
securitytrails :
Analyser plusieurs domaines en les récupérant depuis Security Trails
--st-api-key ST_API_KEY
Requis
--st-domains ST_DOMAINS
Requis
googlecloud :
Analyser plusieurs domaines en les récupérant depuis Google Cloud
--project-id PROJECT_ID
Requis
projectdiscovery :
Analyser plusieurs domaines en les récupérant depuis ProjectDiscovery
--pd-api-key PD_API_KEY
Requis
--pd-domains PD_DOMAINS
Optionnel
securitytrails :
Analyser plusieurs domaines en les récupérant depuis Security Trails
--st-api-key ST_API_KEY
Requis
--st-domains ST_DOMAINS
Optionnel
single :
Analyser un seul domaine en fournissant un domaine en ligne de commande
--domain DOMAIN Requis
zonetransfer :
Analyser plusieurs domaines en récupérant les enregistrements via un transfert de zone DNS
--zonetransfer-nameserver ZONETRANSFER_NAMESERVER
Requis
--zonetransfer-domain ZONETRANSFER_DOMAIN
Requis