BruteLoops
Uma biblioteca extremamente simples fornecendo a lógica fundamental para
ataques eficientes de força bruta de senhas contra interfaces de autenticação.
Documentação
A documentação pode ser encontrada aqui.
Se você está procurando os antigos módulos de exemplo...
Veja BFG.
Os exemplos foram transferidos para um projeto separado para
minimizar problemas de código e empacotamento. As capacidades de banco de dados
e ataque também foram mescladas em um único binário.
Principais Recursos
- Agnóstico de protocolo - Se um callback puder ser escrito em Python,
o BruteLoops pode ser usado para atacá-lo
- Suporte a SQLite - Todos os nomes de usuário, senhas e credenciais
são mantidos em um banco de dados SQLite.
- Um utilitário complementar (
dbmanager.py) que cria e gerencia
bancos de dados de entrada acompanha o BruteLoops
- Ataques de Spray e Stuffing em uma única ferramenta - O BruteLoops suporta ambos
ataques de spray e stuffing na mesma lógica de ataque e banco de dados, o que significa
que você pode configurar um único banco de dados e executar o ataque sem
pesadas reconfigurações e confusão.
- Agendamento de tentativas - Cada nome de usuário no banco de dados SQLite é configurado
com um timestamp que é atualizado após cada evento de autenticação. Isso
significa que podemos reduzir significativamente a probabilidade de bloquear contas
agendando cada evento de autenticação com precisão.
- Configurabilidade fina para evitar bloqueios - As políticas de bloqueio da Microsoft
podem ser correspondidas 1 a 1 usando os parâmetros do BruteLoop:
auth_threshold = Limite de Bloqueio
max_auth_jitter = Janela de Observação de Bloqueio
- Timestamps associados a cada evento de autenticação são rastreados
no banco de dados SQLite do BruteLoops. Cada nome de usuário recebe um
timestamp distinto para garantir que os eventos de autenticação sejam altamente controlados.
- Retomada de ataque - Parar e retomar um ataque é possível
sem se preocupar em perder seu lugar no ataque ou bloquear contas.
- Multiprocessamento - Acelere ataques usando multiprocessamento! Ao configurar
a contagem de tentativas paralelas, você está efetivamente dizendo ao BruteLoops quantos
nomes de usuário tentar em paralelo.
- Registro (Logging) - Cada evento de autenticação pode opcionalmente ser registrado em disco.
Essa informação pode ser útil durante equipes vermelhas, fornecendo aos clientes
uma linha do tempo detalhada do ataque que pode ser mapeada de volta para eventos registrados.
- Interruptores (Breakers) - Interruptores se comportam como disjuntores. Uma exceção pode
ser levantada x vezes antes de encerrar o loop de ataque. Eles também podem
ser redefinidos após um determinado período de tempo, permitindo configurações como
"Sair após 6 ocorrências de ConnectionError".
Dependências
O BruteLoops requer Python3.7 ou superior e
SQLAlchemy 1.3.0, este último
pode ser obtido via pip e o arquivo requirements.txt neste
repositório: python3.7 -m pip install -r requirements.txt
Instalação
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt