BruteLoops
認証インターフェースに対する効率的なパスワードブルートフォース攻撃のための基本ロジックを提供する、非常にシンプルなライブラリ。
ドキュメント
ドキュメントはこちらをご覧ください。
以前のサンプルモジュールをお探しの場合…
BFG を参照してください。
サンプルはコードとパッケージの問題を最小限にするために別のプロジェクトに移されました。データベースと攻撃機能も単一のバイナリに統合されています。
主な機能
- プロトコル非依存 – Pythonでコールバックを書ければ、BruteLoopsを使って攻撃できます
- SQLite対応 – すべてのユーザー名、パスワード、認証情報がSQLiteデータベースで管理されます
- 入力データベースを作成・管理する補助ユーティリティ(
dbmanager.py)がBruteLoopsに付属しています
- スプレー攻撃とスタッフィング攻撃を一つのツールで – BruteLoopsは同じ攻撃ロジックとデータベース内でスプレー攻撃とスタッフィング攻撃の両方をサポートしており、単一のデータベースを設定すれば、大幅な再設定や混乱なく攻撃を実行できます
- 推測のスケジューリング – SQLiteデータベース内の各ユーザー名には、認証イベントごとに更新されるタイムスタンプが設定されています。これにより、各認証イベントを正確にスケジューリングしてアカウントロックの可能性を大幅に低減できます
- ロックアウト回避のための細かい設定 – Microsoftのロックアウトポリシーは、BruteLoopsのパラメータで1対1に一致させることができます:
auth_threshold = ロックアウトしきい値
max_auth_jitter = ロックアウト観測期間
- 各認証イベントに関連付けられたタイムスタンプはBruteLoopsのSQLiteデータベースで追跡されます。各ユーザー名に個別のタイムスタンプが与えられ、認証イベントが高度に制御されることを保証します
- 攻撃の再開 – 攻撃の途中で停止・再開しても、攻撃の進捗を失ったりアカウントをロックしたりする心配はありません
- マルチプロセッシング – マルチプロセッシングで攻撃を高速化!並行推測数を設定することで、BruteLoopsに何ユーザー名を並行して推測するかを指示できます
- ロギング – 各認証イベントをオプションでディスクに記録できます。この情報はレッドチームで有用で、顧客に詳細な攻撃タイムラインを提供し、ログイベントに対応付けることができます
- ブレーカー – ブレーカーはサーキットブレーカーのように動作します。例外が指定回数発生すると攻撃ループを終了します。また、一定時間後にリセットすることもでき、「ConnectionErrorが6回発生したら終了」のような設定が可能です
依存関係
BruteLoopsは__Python3.7以降__とSQLAlchemy 1.3.0を必要とします。SQLAlchemyはpipおよびこのリポジトリのrequirements.txtファイルから入手できます:python3.7 -m pip install -r requirements.txt
インストール
git clone https://github.com/arch4ngel/bruteloops
cd bruteloops
python3 -m pip install -r requirements.txt