Skip to main content

BruteLoops

A dead simple library providing the foundational logic for efficient password brute force attacks against authentication interfaces.

Documentation

Documentation can be found here.

If you're looking for the old example modules...

See BFG.

The examples have been offloaded to a distinct project to minimize code and packaging issues. Database and attack capabilities have also been merged into a single binary.

Key Features

  • Protocol agnostic - If a callback can be written in Python, BruteLoops can be used to attack it
  • SQLite support - All usernames, passwords, and credentials are maintained in an SQLite database.
    • A companion utility (dbmanager.py) that creates and manages input databases accompanies BruteLoops
  • Spray and Stuffing Attacks in One Tool - BruteLoops supports both spray and stuffing attacks in the same attack logic and database, meaning that you can configure a single database and run the attack without heavy reconfiguration and confusion.
  • Guess scheduling - Each username in the SQLite database is configured with a timestamp that is updated after each authentication event. This means we can significantly reduce likelihood of locking accounts by scheduling each authentication event with precision.
  • Fine-grained configurability to avoid lockout events - Microsoft's lockout policies can be matched 1-to-1 using BruteLoop's parameters:
    • auth_threshold = Lockout Threshold
    • max_auth_jitter = Lockout Observation Window
    • Timestampes associated with each authentication event are tracked in BruteLoops' SQLite database. Each username receives a distinct timestamp to assure that authentication events are highly controlled.
  • Attack resumption - Stopping and resuming an attack is possible without worrying about losing your place in the attack or locking accounts.
  • Multiprocessing - Speed up attacks using multiprocessing! By configuring the parallel guess count, you're effectively telling BruteLoops how many usernames to guess in parallel.
  • Logging - Each authentication event can optionally logged to disk. This information can be useful during red teams by providing customers with a detailed attack timeline that can be mapped back to logged events.
  • Breakers - Breakers behave like circuit breakers. An exception can be raised x number of times before ending the attack loop. They can reset after a given period of time as well, allowing for configurations like "Exit after 6 ConnectionErrors occur".

Dependencies

BruteLoops requires Python3.7 or newer and SQLAlchemy 1.3.0, the latter of which can be obtained via pip and the requirements.txt file in this repository: 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

Metadata

Release files for bruteloops 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bruteloops 1.0.1
File Size Uploaded Provenance Actions
bruteloops-1.0.1.tar.gz 41.7 kB Without provenance Details for bruteloops-1.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for bruteloops 1.0.1
File Interpreter ABI Platform Actions
bruteloops-1.0.1-py3-none-any.whl Python 3 none any Details for bruteloops-1.0.1-py3-none-any.whl

Total release size: 87.6 kB

Release files / bruteloops-1.0.1.tar.gz

Download URL bruteloops-1.0.1.tar.gz
Size 41.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2cac65250542c2dca78eb1c299d0e72693d562dc3338e8e99133fd272f8b151c
BLAKE2b-256 checksum
How to use checksums
de145e39ec5f07108e33515c12871fca5be23d6126dbf413696a6bd250d4a3d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / bruteloops-1.0.1-py3-none-any.whl

Download URL bruteloops-1.0.1-py3-none-any.whl
Size 45.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22bfd72b77af8cee6e9bc3364cdfb57510824a619a8526e441e2c3ff7730cb7f
BLAKE2b-256 checksum
How to use checksums
550ea47bde9428670aa0f19a80771448c1c2ce023ef995e42219ef07f854cf85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Security for bruteloops 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page