
🚀 Ein automatisierter DNS-Scanner und ein Tool 🖱️ (Zone Transfer, DNS Zone Takeover, Subdomain Takeover).
Subrake begann ursprünglich als persönliches Projekt zur Subdomain-Enumeration und ist nun ein detailliertes DNS-Scanning-Tool, das dir hilft, Zone Transfers, DNS-Zonenübernahmen und Subdomain-Übernahmen in einem Durchgang zu identifizieren.
Zone Transfers gibt es seit Jahren, und wenn sie aus irgendeinem Grund für eine Domain aktiviert sind, kann eine andere Partei alle Einträge der Zone enumerieren. Sie werden tatsächlich verwendet, wenn der Eigentümer eine Domain von einem Anbieter zu einem anderen übertragen möchte.
Subdomain-Übernahme ist, anders als der Name vermuten lässt, die Übernahme des Dienstes, auf den die Subdomain zeigt. Der Dienst muss veraltet oder nicht mehr in Gebrauch sein.
DNS-Zonenübernahme kann im Vergleich zur Subdomain-Übernahme schwerwiegender sein, wenn sie ausgenutzt wird. Es handelt sich um die Übernahme einer der Zonen der Domain. Dies ermöglicht weit mehr als nur das Erstellen des Dienstes im Backend. Du kannst tatsächlich deine eigenen DNS-Einträge einrichten und nach Belieben damit spielen.
Für weitere Details kannst du meinen Blog hier lesen: Ein Leitfaden zu Zone Transfer, DNS-Zonenübernahme und Subdomain-Übernahme
Subrake ist ein DNS-Bewertungswerkzeug (größtenteils automatisiert) mit sowohl einer Benutzeroberfläche (UI) als auch einer CLI, das verschiedene Phasen durchläuft, um DNS-Probleme abzudecken. Das Tool wird kontinuierlich weiterentwickelt, und jeder ist eingeladen, zum Projekt beizutragen.
Es wurde hauptsächlich für Bug Bounty und die Infosec-Branche entwickelt, kann aber auch für Blue Teaming und interne Pentests genutzt werden. Es unterstützt sowohl eine CLI als auch eine webbasierte GUI und mehrere Installationsmodi. Die Hauptfunktionen sind:
csv-Format.Du kannst Subrake entweder automatisiert einrichten oder das Repository manuell klonen und über setuptools installieren. Ersteres bietet mehr Kontrolle und ist mit einer UI flexibel. Wenn du jedoch einen einfachen CLI-Modus bevorzugst oder unter Windows arbeitest, folge dem manuellen Abschnitt.
Klone das Repository und wechsle hinein:
$ git clone https://github.com/hash3liZer/Subrake.git
$ cd ./Subrake
Du kannst subrake über Vagrant (mit KVM) einrichten, wobei eine Maschine erstellt und alles automatisch konfiguriert wird. Installiere zuerst die Anforderungen:
$ apt update
$ apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager vagrant vagrant-libvirt
Führe dann im Repository vagrant up aus:
$ vagrant up
Dies wird eine Weile dauern, um den Server bereitzustellen. Danach erhältst du die URL: http://127.0.0.1:9090
Die Standard-Anmeldedaten sind: subrake/password. Du kannst sie auch während der Bereitstellung ändern:
$ SUBRAKE_USERNAME="benutzername" SUBRAKE_PASSWORD="passwort" vagrant up
Nach der Erstellung kannst du den Status deiner neu erstellten Maschine mit diesen Befehlen verwalten:
# Maschinenstatus anzeigen
$ vagrant status
# Maschine anhalten
$ vagrant suspend
# Maschine fortsetzen
$ vagrant resume
# Maschine herunterfahren
$ vagrant halt
# Wieder starten
$ vagrant up
# Maschine löschen
$ vagrant destroy
Bei der manuellen Einrichtung kannst du direkt in das Verzeichnis springen und setuptools zur Installation verwenden
Installiere die Anforderungen und führe setup.py aus:
$ pip3 install -r requirements.txt
$ python3 setup.py install
Überprüfe, ob Subrake installiert ist:
subrake --help
Du kannst das Docker-Image auch aus der Dockerfile erstellen:
$ docker build -t subrake:latest .
Überprüfe den Docker-Container:
$ docker run --rm subrake --help
Du kannst das Skript auch auf einem Bare-Metal-Server bereitstellen. Starte dazu einen frischen Ubuntu 20.04 Server und führe den folgenden Befehl aus:
$ chmod +x ./installer.sh
$ ./installer.sh --deploy
Der Server ist dann erreichbar unter: 0.0.0.0:9090. Du kannst einen nginx Dienst einrichten und als Reverse Proxy verwenden.
Mit der UI kannst du direkt auf die Subtap a Domain Seite springen und einen Scan starten. Erwarte ein paar Fragen zum Scan:
Der Scan wird in einer tmux-Sitzung gestartet. Du kannst STRG+E => d drücken, um den laufenden Bildschirm zu verlassen und einen neuen Scan zu starten. Um den Bildschirm anzuhalten und auf- und abzuwärts zu scrollen, drücke STRG+E => [. Es sind lediglich TMUX-Verknüpfungen mit der globalen Bindungstaste, die auf STRG+E geändert wurde.
Du kannst auch zu einem laufenden Bildschirm zurückkehren, indem du seinen Namen erneut eingibst:
In der Kommandozeile kannst du das Tool direkt mit subrake aufrufen. Hier ein paar Beispiele zur Nutzung von Subrake:
Ein einfacher Durchlauf mit Standard-Optionen:
$ subrake -d google.com
Subrake mit mehreren Threads:
$ subtake -d google.com -t 50
Subrake mit Modulen und einer Wortliste:
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt
Subrake mit OSINT-Ergebnissen + mehreren SecLists-Subdomain-Listen:
Hinweis: Subdomains mit ähnlichen Namen werden automatisch gefiltert und als 1 gezählt
$ subrake -d google.com --wordlists SecLists/Discovery/DNS/namelist.txt,SecLists/Discovery/DNS/dns-Jhaddix.txt
Subrake ohne Suchmaschine + Ausgabe mehrerer kombinierter Tools + IP-Filterung (Beachte, dass du deine Tools in Subrake integrieren kannst):
$ 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 mit Port-Scanning:
HINWEIS: Die Ports 80,443 werden standardmäßig für jeden Host unter HTTP/HTTPS-Banner gescannt. Daher müssen sie hier nicht angegeben werden
$ subrake -d google.com --ports 8080,8443,8000,23,445
Du kannst gerne Pull Requests und Funktionen einbringen. Du kannst beitragen durch: