
🚀 Un scanner et outil DNS automatisé 🖱️ (Zone Transfer, DNS Zone Takeover, Subdomain Takeover).
Subrake, initialement lancé comme un projet personnel pour l'énumération de sous-domaines, est désormais un outil de scan DNS détaillé qui peut vous aider à identifier les transferts de zone, les prises de contrôle de zone DNS et les prises de contrôle de sous-domaines en une seule fois.
Les transferts de zone existent depuis des années et, s'ils sont activés pour une raison quelconque sur un domaine, peuvent permettre à une autre partie d'énumérer tous les enregistrements de la zone. Ils sont en réalité utilisés lorsque le propriétaire souhaite transférer un domaine d'un fournisseur à un autre.
La prise de contrôle de sous-domaine, contrairement à ce que son nom suggère, est la prise de contrôle du service vers lequel pointe le sous-domaine. Le service doit être inactif ou inutilisé.
La prise de contrôle de zone DNS, comparée à la prise de contrôle de sous-domaine, peut être plus grave si elle est exploitée. Il s'agit de la prise de contrôle d'une des zones du domaine. Cela permet bien plus que la simple création du service sur le backend. Vous pouvez en réalité configurer vos propres enregistrements DNS et les manipuler à votre guise.
Pour plus de détails, vous pouvez lire mon blog ici : Un guide sur le transfert de zone, la prise de contrôle de zone DNS et la prise de contrôle de sous-domaine
Subrake est un outil d'évaluation DNS (principalement automatisé) avec une interface utilisateur et une interface en ligne de commande qui parcourt différentes phases pour couvrir les problèmes DNS. L'outil est en constante évolution et tout le monde est invité à contribuer au projet.
Il a été conçu principalement pour le bug bounty et l'industrie de la sécurité informatique, mais peut également être utilisé pour le blue teaming et les tests d'intrusion internes. Il prend en charge à la fois une interface CLI et une interface graphique Web, ainsi que plusieurs modes d'installation. Les principales fonctionnalités sont :
csv.Vous pouvez configurer subrake via un mode automatisé ou en clonant manuellement le dépôt et en installant via setuptools. Le premier offre plus de contrôle et est flexible avec une interface utilisateur. Mais si vous préférez un mode CLI simple ou sous windows, consultez la section manuel.
Clonez le dépôt et accédez-y :
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
Vous pouvez configurer subrake via vagrant (avec KVM) où une machine sera créée et tout sera configuré automatiquement. Installez d'abord les prérequis :
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
Ensuite, à l'intérieur du dépôt, lancez vagrant up :
$ vagrant up
Cela prendra un certain temps pour provisionner le serveur. Une fois terminé, vous recevrez l'URL : http://127.0.0.1:9090
Les identifiants par défaut sont : subrake/password. Vous pouvez également les modifier lors du provisionnement :
$ SUBRAKE_USERNAME="username" SUBRAKE_PASSWORD="password" vagrant up
Une fois terminé, vous pouvez gérer l'état de votre machine nouvellement créée avec ces commandes :
# Voir l'état de la machine
$ vagrant status
# Suspendre la machine
$ vagrant suspend
# Reprendre la machine
$ vagrant resume
# Éteindre la machine
$ vagrant halt
# Redémarrer
$ vagrant up
# Supprimer la machine
$ vagrant destroy
Avec la configuration manuelle, vous pouvez accéder directement au répertoire et utiliser setuptools pour l'installation.
Installez les dépendances et exécutez setup.py :
$ pip3 install -r requirements.txt
$ python3 setup.py install
Vérifiez si subrake est installé :
subrake --help
Vous pouvez également construire l'image Docker à partir du Dockerfile :
$ docker build -t subrake:latest .
Vérifiez le conteneur Docker :
$ docker run --rm subrake --help
Vous pouvez également déployer le script sur un serveur nu. Pour ce faire, préparez un serveur ubuntu 20.04 frais et exécutez la commande suivante :
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
Le serveur est alors accessible à l'adresse : 0.0.0.0:9090. Vous pouvez configurer un service nginx et l'utiliser comme proxy inverse.
Avec l'interface utilisateur, vous pouvez accéder directement à la page Soumettre un domaine et lancer un scan. Attendez-vous à quelques questions pour le scan :
Le scan est lancé dans une session tmux. Vous pouvez appuyer sur CTRL+E => d pour quitter l'écran en cours et lancer un nouveau scan. Pour mettre l'écran en pause et vous déplacer vers le haut ou le bas, appuyez sur CTRL+E => [. Ce sont des raccourcis TMUX avec la touche de liaison globale modifiée en CTRL+E.
Vous pouvez également revenir à un écran en cours en entrant à nouveau son nom :
En ligne de commande, vous pouvez accéder directement à l'outil en tapant subrake. Voici quelques exemples d'utilisation de subrake :
Une exécution simple avec les options par défaut :
$ subrake -d google.com
Subrake avec plusieurs threads :
$ subtake -d google.com -t 50
Subrake avec modules et une liste de mots :
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
Subrake avec résultats OSINT + liste de sous-domaines de SecLists multiples :
Remarque : Les sous-domaines avec des noms similaires seront automatiquement filtrés et comptés comme 1
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
Subrake sans moteur de recherche + Sortie de plusieurs outils combinée + Filtrage IP (Notez que vous pouvez intégrer vos outils dans subrake) :
$ domain="google.com"
$ subfinder -d $domain -nW -o $domain/1.txt && sublist3r -d $domain -o $domain/2.txt && cat $domain/* >> /tmp/output.txt
$ subrake -d $domain -w tmp/output.txt --filter --skip-search
Subrake avec scan de ports :
REMARQUE : Les ports 80,443 seront scannés par défaut pour chaque hôte sous la bannière HTTP/HTTPS. Il n'est donc pas nécessaire de les spécifier ici
$ subrake -d google.com --ports 8080,8443,8000,23,445
N'hésitez pas à ouvrir des pull requests et à proposer une fonctionnalité. Vous pouvez contribuer en :