BruteLoops
Una libreria estremamente semplice che fornisce la logica fondamentale per attacchi efficienti di forza bruta sulle password contro interfacce di autenticazione.
Documentazione
La documentazione può essere trovata qui.
Se stai cercando i vecchi modelli di esempio...
Vedi BFG.
Gli esempi sono stati spostati in un progetto separato per ridurre al minimo i problemi di codice e pacchettizzazione. Le capacità di attacco e di database sono state anche unificate in un singolo binario.
Caratteristiche principali
- Agnostico rispetto al protocollo - Se è possibile scrivere una callback in Python, BruteLoops può essere utilizzato per attaccarlo
- Supporto SQLite - Tutti i nomi utente, le password e le credenziali sono mantenuti in un database SQLite.
- Un'utilità complementare (
dbmanager.py) che crea e gestisce database di input accompagna BruteLoops
- Attacchi Spray e Stuffing in un unico strumento - BruteLoops supporta sia attacchi spray che stuffing nella stessa logica di attacco e nello stesso database, consentendo di configurare un singolo database ed eseguire l'attacco senza pesanti riconfigurazioni e confusione.
- Pianificazione dei tentativi - Ogni nome utente nel database SQLite è configurato con un timestamp che viene aggiornato dopo ogni evento di autenticazione. Ciò significa che possiamo ridurre significativamente la probabilità di bloccare gli account programmando con precisione ogni evento di autenticazione.
- Configurabilità granulare per evitare blocchi - Le politiche di blocco di Microsoft possono essere replicate 1:1 utilizzando i parametri di BruteLoops:
auth_threshold = Soglia di blocco
max_auth_jitter = Finestra di osservazione del blocco
- I timestamp associati a ogni evento di autenticazione sono tracciati nel database SQLite di BruteLoops. Ogni nome utente riceve un timestamp distinto per garantire che gli eventi di autenticazione siano altamente controllati.
- Ripresa degli attacchi - È possibile fermare e riprendere un attacco senza preoccuparsi di perdere la posizione nell'attacco o di bloccare gli account.
- Multiprocessing - Accelera gli attacchi utilizzando il multiprocessing! Configurando il numero di tentativi paralleli, stai effettivamente dicendo a BruteLoops quanti nomi utente provare in parallelo.
- Registrazione (Logging) - Ogni evento di autenticazione può essere facoltativamente registrato su disco. Queste informazioni possono essere utili durante i red team fornendo ai clienti una timeline dettagliata dell'attacco che può essere mappata agli eventi registrati.
- Interruttori (Breakers) - I breaker si comportano come interruttori automatici. Un'eccezione può essere sollevata x volte prima di terminare il ciclo di attacco. Possono anche resettarsi dopo un determinato periodo di tempo, consentendo configurazioni come "Esci dopo che si sono verificati 6 ConnectionError".
Dipendenze
BruteLoops richiede Python3.7 o successivo e SQLAlchemy 1.3.0; quest'ultimo può essere ottenuto tramite pip e il file requirements.txt in questo repository: python3.7 -m pip install -r requirements.txt
Installazione
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt