
Ein Skript zum Testen von Anmeldedaten gegen Active Directory Federation Services (ADFS), das Password Spraying oder Brute-Force-Angriffe ermöglicht.
Ein Skript zum Testen von Anmeldeinformationen gegen Active Directory Federation Services (ADFS), das die ADFS-URL einer Organisation ermittelt und Password-Spraying- oder Brute-Force-Angriffe ermöglicht.
Die Hauptidee besteht darin, Password-Spraying-Angriffe mit einer zufälligen und hohen Verzögerung zwischen den einzelnen Tests durchzuführen und eine Liste von Proxys oder Tor zu verwenden, um die Erkennung durch das Blue Team zu erschweren. Brute-Force-Angriffe sind ebenfalls möglich, ebenso wie das Testen von Anmeldeinformationen im Format username:password (z. B. aus Pwndb). Getestete Logins werden in einer Log-Datei gespeichert, um eine doppelte Prüfung zu vermeiden.
./adfsbrute.py -t TARGET [-u USER] [-U USER_LIST] [-p PASSWORD] [-P PASSWORD_LIST] [-UL userpassword_list]
[-m MIN_TIME] [-M MAX_TIME] [-tp TOR_PASSWORD] [-pl PROXY_LIST] [-n NUMBER_OF_REQUESTS_PER_IP]
[-s STOP_ON_SUCCESS] [-r RANDOM_COMBINATIONS] [-d DEBUG] [-l LOG_FILE]
Die Parameter für die Angriffe sind:
* -t: Ziel-Domain. Beispiel: test.com
* -u: Einzelner Benutzername. Beispiel: [email protected]
* -U: Datei mit einer Liste von Benutzernamen. Beispiel: users.txt
* -p: Einzelnes Passwort: Beispiel: Company123
* -P: Datei mit einer Liste von Passwörtern. Beispiel: passwords.txt
* -UP: Datei mit einer Liste von Anmeldeinformationen im Format "username:password". Beispiel: userpass.txt
* -m : Minimaler Wert der zufälligen Sekunden, die zwischen den Tests gewartet werden. Standard: 30
* -M : Maximaler Wert der zufälligen Sekunden, die zwischen den Tests gewartet werden. Standard: 60
* -tp: Tor-Passwort (IP-Adressen mit Tor wechseln)
* -pl: Eine Proxy-Liste verwenden (IP-Adressen mit einer Liste von Proxy-IPs wechseln)
* -n: Anzahl der Anfragen vor dem Wechsel der IP-Adresse (wird mit -tp oder -pl verwendet). Standard: 1
* -s: Bei Erfolg stoppen, sobald eine korrekte Anmeldeinformation gefunden wird. Standard: False
* -r: Die Kombination von Benutzern und Passwörtern zufällig mischen. Standard: True
* -d: Debug-Meldungen anzeigen. Standard: True
* -l: Speicherort der Log-Datei mit bereits getesteten Anmeldeinformationen. Standard: tested.txt
Password-Spraying mit Passwort "Company123", Tor-Passwort ist "test123" und IP-Wechsel alle 3 Anfragen:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -n 3
Password-Spraying mit Passwort "Company123", Tor-Passwort ist "test123", IP-Wechsel bei jeder Anfrage, zufällige Verzögerungszeit zwischen 10 und 20 Sekunden und keine zufällige Reihenfolge der Benutzer:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -m 10 -M 20 -r False
ADFS-URL finden:
python3 adfsbrute.py -t company.com
Um Tor zum Wechseln der IP bei jeder Anfrage zu verwenden, muss ein Passwort gehasht werden:
tor --hash-password test123
In der Datei /etc/tor/torrc die Variable ControlPort und die Variable HashedControlPassword auskommentieren und bei letzterer den Hash hinzufügen:
ControlPort 9051
HashedControlPassword 16:7F314CAB402A81F860B3EE449B743AEC0DED9F27FA41831737E2F08F87
Den Tor-Dienst neu starten und dieses Passwort als Argument für das Skript verwenden ("-tp test123" oder "--tor_password 123")
service tor restart
Dieses Skript wurde für Sicherheitsaudits implementiert. Verwenden Sie es NICHT ohne entsprechende Autorisierung durch das Unternehmen, dem die ADFS gehört, da Sie sonst Konten sperren.