BruteLoops
Une bibliothèque très simple fournissant la logique fondamentale pour
des attaques efficaces de force brute par mot de passe contre
les interfaces d'authentification.
Documentation
La documentation se trouve ici.
Si vous cherchez les anciens modules d'exemple...
Voir BFG.
Les exemples ont été déchargés vers un projet distinct pour
minimiser les problèmes de code et de packaging. Les capacités de base de données et d'attaque
ont également été fusionnées en un seul binaire.
Fonctionnalités clés
- Indépendant du protocole - Si un callback peut être écrit en Python,
BruteLoops peut être utilisé pour l'attaquer
- Support SQLite - Tous les noms d'utilisateur, mots de passe et identifiants
sont conservés dans une base de données SQLite.
- Un utilitaire compagnon (
dbmanager.py) qui crée et gère
les bases de données d'entrée accompagne BruteLoops
- Attaques par pulvérisation et par stuffing dans un seul outil - BruteLoops prend en charge à la fois
les attaques par pulvérisation et par stuffing dans la même logique d'attaque et la même base de données, ce qui signifie
que vous pouvez configurer une seule base de données et exécuter l'attaque sans
reconfiguration lourde et confusion.
- Planification des tentatives - Chaque nom d'utilisateur dans la base de données SQLite est configuré
avec un horodatage qui est mis à jour après chaque événement d'authentification. Cela
signifie que nous pouvons réduire considérablement la probabilité de verrouiller des comptes en
planifiant chaque événement d'authentification avec précision.
- Configurabilité fine pour éviter les événements de verrouillage - Les
politiques de verrouillage de Microsoft peuvent être mises en correspondance 1:1 en utilisant les paramètres de BruteLoop :
auth_threshold = Seuil de verrouillage
max_auth_jitter = Fenêtre d'observation du verrouillage
- Les horodatages associés à chaque événement d'authentification sont suivis
dans la base de données SQLite de BruteLoops. Chaque nom d'utilisateur reçoit un
horodatage distinct pour garantir que les événements d'authentification sont hautement contrôlés.
- Reprise d'attaque - Arrêter et reprendre une attaque est possible
sans se soucier de perdre sa place dans l'attaque ou de verrouiller des comptes.
- Multitraitement - Accélérez les attaques en utilisant le multitraitement ! En configurant
le nombre de tentatives parallèles, vous indiquez effectivement à BruteLoops combien
de noms d'utilisateur deviner en parallèle.
- Journalisation - Chaque événement d'authentification peut éventuellement être enregistré sur le disque.
Cette information peut être utile lors des équipes rouges en fournissant aux clients
une chronologie détaillée des attaques qui peut être mise en correspondance avec les événements enregistrés.
- Disjoncteurs - Les disjoncteurs se comportent comme des coupe-circuits. Une exception peut
être levée x fois avant de mettre fin à la boucle d'attaque. Ils peuvent
également se réinitialiser après une période donnée, permettant des configurations
comme "Quitter après 6 ConnectionErrors occur".
Dépendances
BruteLoops nécessite Python3.7 ou plus récent et
SQLAlchemy 1.3.0, ce dernier
pouvant être obtenu via pip et le fichier requirements.txt dans
ce dépôt : python3.7 -m pip install -r requirements.txt
Installation
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt