
Uno script per testare le credenziali contro Active Directory Federation Services (ADFS), consentendo password spraying o attacchi di forza bruta.
Uno script per testare le credenziali contro Active Directory Federation Services (ADFS), calcolando l'URL ADFS di un'organizzazione e permettendo attacchi di password spraying o brute force.
L'idea principale è condurre attacchi di password spraying con un ritardo casuale e alto tra ogni test e utilizzando una lista di proxy o Tor per rendere la rilevazione da parte del Blue Team più difficile. Sono anche possibili attacchi di brute force, o testare credenziali nel formato username:password (ad esempio da Pwndb). I login testati verranno memorizzati in un file di log per evitare di testarli due volte.
./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]
I parametri per gli attacchi sono:
* -t: Dominio target. Esempio: test.com
* -u: Singolo nome utente. Esempio: [email protected]
* -U: File con una lista di nomi utente. Esempio: users.txt
* -p: Singola password: Esempio: Company123
* -P: File con una lista di password. Esempio: passwords.txt
* -UP: File con una lista di credenziali nel formato "username:password". Esempio: userpass.txt
* -m : Valore minimo di secondi casuali da attendere tra ogni test. Predefinito: 30
* -M : Valore massimo di secondi casuali da attendere tra ogni test. Predefinito: 60
* -tp: Password Tor (cambia indirizzi IP usando Tor)
* -pl: Usa una lista di proxy (cambia indirizzi IP usando una lista di IP proxy)
* -n: Numero di richieste prima di cambiare indirizzo IP (usato con -tp o -pl). Predefinito: 1
* -s: Ferma al successo, quando viene trovata una credenziale corretta. Predefinito: Falso
* -r: Randomizza la combinazione di utenti e password. Predefinito: Vero
* -d: Mostra messaggi di debug. Predefinito: Vero
* -l: Percorso del file di log con le credenziali già testate. Predefinito: tested.txt
Password spraying con password "Company123", password Tor è "test123" e cambio dell'IP ogni 3 richieste:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -n 3
Password spraying con password "Company123", password Tor è "test123", cambio dell'IP per ogni richiesta, tempo di ritardo casuale tra 10 e 20 secondi e non randomizzare l'ordine degli utenti:
python3 adfsbrute.py -t company.com -U users.txt -p Company123 -tp test123 -m 10 -M 20 -r False
Trovare l'URL ADFS:
python3 adfsbrute.py -t company.com
Per usare Tor per cambiare l'IP per ogni richiesta, devi generare un hash di una password:
tor --hash-password test123
Nel file /etc/tor/torrc, decommenta la variabile ControlPort e la variabile HashedControlPassword, e in quest'ultima aggiungi l'hash:
ControlPort 9051
HashedControlPassword 16:7F314CAB402A81F860B3EE449B743AEC0DED9F27FA41831737E2F08F87
Riavvia il servizio Tor e usa questa password come argomento per lo script ("-tp test123" o "--tor_password 123")
service tor restart
Questo script è implementato per test in audit di sicurezza, NON utilizzarlo senza la dovuta autorizzazione dell'azienda proprietaria di ADFS o bloccherai gli account.