Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bitcracker — BitCracker は、BitLocker で暗号化されたメモリユニット向けの初のオープンソースパスワードクラッキングツールです。 | Kitploit
ツール/GitHubGitHub/e-ago/bitcracker
パスワードクラッキング暗号化/復号化ツール暗号化
GitHube-ago/bitcracker

bitcracker

BitCracker は、BitLocker で暗号化されたメモリユニット向けの初のオープンソースパスワードクラッキングツールです。

リポジトリを見る
965207224年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

BitCracker

BitCracker は、BitLocker で暗号化されたストレージデバイス(ハードディスク、USB メモリ、SD カードなど)を対象とした、初のオープンソースパスワードクラッキングツールです。BitLocker は Windows Vista、7、8.1、10(Ultimate、Pro、Enterprise エディション)で利用可能な暗号化機能です。BitLocker は、Trusted Platform Module (TPM)、スマートカード、回復パスワード、ユーザー提供パスワードなど、ストレージデバイスを暗号化するためのいくつかの認証方法を提供します。

辞書攻撃により、BitCracker は正しいユーザーパスワードまたは回復パスワードを見つけ出し、暗号化されたストレージデバイスを復号しようとします。これは CUDA および OpenCL で実装されています。

論文

いくつかのジャーナルが私たちの BitCracker 論文の出版を遅らせました(約3年、最終的には複数回の改訂後に却下)。この論文では、攻撃の詳細、BitLocker ドライブ暗号化 (BDE) ボリューム形式、および暗号化/復号手順における潜在的な弱点を説明しています。 最終的に、私たちは論文を https://arxiv.org/abs/1901.01337 に公開しました。コメントや共有を歓迎します。

必要条件

BitCracker-CUDA を実行するための最小要件は以下の通りです。

  • CC 3.5 以降の NVIDIA GPU
  • CUDA 7.5 以上

BitCracker-OpenCL を実行するための最小要件は、OpenCL をサポートする任意の GPU または CPU です(一部のヘルプはこちらにあります)。

BitCracker には少なくとも 260 MB のデバイスメモリが必要です。

パフォーマンス上の理由から、CPU ではなく GPU で攻撃を実行することを強くお勧めします(パフォーマンスのセクションを参照)。

ビルド

build.sh スクリプトを実行すると、build ディレクトリ内に4つの実行ファイルが生成されます: bitcracker_hash、bitcracker_rpgen、bitcracker_cuda、bitcracker_opencl。

NVIDIA GPU と CUDA バージョンに合わせて bitcracker_cuda をビルドするには、src_CUDA/Makefile を修正し、適切な SM バージョンを選択する必要があります。参考として、以下の表を使用できます。

GPU アーキテクチャ推奨 CUDAMakefile 設定
KeplerCUDA 7.5arch=compute_35,code=sm_35
MaxwellCUDA 8.0arch=compute_52,code=sm_52
PascalCUDA 9.0arch=compute_60,code=sm_60
VoltaCUDA 9.0arch=compute_70,code=sm_70

攻撃の準備

BitLocker で暗号化されたストレージデバイスのイメージを作成する必要があります。例えば、dd コマンドを使用します。

sudo dd if=/dev/disk2 of=/path/to/imageEncrypted.img conv=noerror,sync
4030464+0 records in
4030464+0 records out
2063597568 bytes transferred in 292.749849 secs (7049013 bytes/sec)

次に、bitcracker_hash 実行ファイルを imageEncrypted.img に対して実行します。これにより以下のことを確認します。

  • イメージが有効な形式であり、BitCracker で攻撃可能かどうか
  • 元のストレージデバイスがユーザーパスワードまたは回復パスワードで暗号化されているかどうか
  • イメージを記述するハッシュを抽出する

実行が正常に完了すると、bitcracker_hash は1つまたは2つの出力ファイルを生成します。

  • hash_user_pass.txt : デバイスがユーザーパスワードで暗号化されていた場合、このファイルにはユーザーパスワード攻撃モードを開始するために必要なハッシュが含まれています。
  • hash_recv_pass.txt : 回復パスワード攻撃モードを開始するために必要なハッシュ

BDE で暗号化されたボリュームは、認証方法によって異なる形式を持つ場合があります。bitcracker_hash が暗号化イメージ上の回復パスワードを見つけられない場合は、Issue を開くか、私に連絡してください。

例:

/build/bitcracker_hash -o test_hash -i ./Images/imgWin7

---------> BitCracker Hash Extractor <---------
Opening file ./Images/imgWin7

....

Signature found at 0x02208000
Version: 2 (Windows 7 or later)

VMK entry found at 0x022080bc
VMK encrypted with user password found!
VMK encrypted with AES-CCM

VMK entry found at 0x0220819c
VMK encrypted with Recovery key found!
VMK encrypted with AES-CCM

User Password hash:
$bitlocker$0$16$89a5bad722db4a729d3c7b9ee8e76a29$1048576$12$304a4ac192a2cf0103000000$60$24de9a6128e8f8ffb97ac72d21de40f63dbc44acf101e68ac0f7e52ecb1be4a8ee30ca1e69fbe98400707ba3977d5f09b14e388c885f312edc5c85c2

Recovery Key hash:
$bitlocker$2$16$8b7be4f7802275ffbdad3766c7f7fa4a$1048576$12$304a4ac192a2cf0106000000$60$6e72f6ef6ba688e72211b8cf8cc722affd308882965dc195f85614846f5eb7d9037d4d63bcc1d6e904f0030cf2e3a95b3e1067447b089b7467f86688

Output file for user password attack: "hash_user_pass.txt"
Output file for recovery password attack: "hash_recv_pass.txt"

ユーザーパスワード攻撃

このタイプの攻撃は、下図のようにストレージデバイスがユーザー提供のパスワードで暗号化されている場合に使用できます。 alt text BitCracker は辞書攻撃を実行するため、可能性のあるユーザーパスワードのワードリストを提供する必要があります。

攻撃を開始するには以下が必要です。

  • hash_user_pass.txt ファイル
  • 可能性のあるユーザーパスワードのワードリスト(自分で提供する必要があります)

コマンドラインの例:

./build/bitcracker_cuda -f hash_user_pass.txt -d wordlist.txt -t 1 -b 1 -g 0 -u

ここで:

  • -f : hash_user_pass.txt ファイルへのパス
  • -d : ワードリストへのパス
  • -t : 各 CUDA スレッドで処理するパスワードの数
  • -b : CUDA ブロックの数
  • -g : NVIDIA GPU デバイス ID
  • -u : ユーザーパスワード攻撃を指定

利用可能なすべてのオプションについては、./build/bitcracker_cuda -h と入力してください。 最高のパフォーマンスを得るには、パフォーマンス セクションの表を参照し、NVIDIA GPU に応じて t と b のオプションを適切に設定してください。

bitcracker_opencl 実行ファイルにも同じ考慮事項が当てはまります。

出力例:

====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================
....
Reading hash file "hash_user_pass.txt"
$bitlocker$0$16$0a8b9d0655d3900e9f67280adc27b5d7$1048576$12$b0599ad6c6a1cf0103000000$60$c16658f54140b3d90be6de9e03b1fe90033a2c7df7127bcd16cb013cf778c12072142c484c9c291a496fc0ebd8c21c33b595a9c1587acfc6d8bb9663

====================================
Attack
====================================

Type of attack: User Password
CUDA Threads: 1024
CUDA Blocks: 1
Psw per thread: 1
Max Psw per kernel: 1024
Dictionary: wordlist.txt
Strict Check (-s): No
MAC Comparison (-m): No

CUDA Kernel execution:
	Stream 0
	Effective number psw: 12
	Passwords Range:
		abcdefshhf
		.....
		blablalbalbalbla12
	Time: 28.651947 sec
	Passwords x second:     0.42 pw/sec

================================================
....
Password found: paperino
================================================

現在、BitCracker は長さ8~55文字の入力パスワードを処理できます。

回復パスワード攻撃

ストレージデバイスの暗号化中に、BitLocker は(認証方法に関係なく)ユーザーに回復パスワードをどこかに保存するよう求めます。これは、通常ドライブのロックを解除できない場合に暗号化ストレージデバイスへのアクセスを復元するために使用できます。 したがって、回復パスワードはすべての認証方法に対する一種の「パスポート」であり、次のような48桁のキーで構成されます。

236808-089419-192665-495704-618299-073414-538373-542366

詳細については Microsoft ドキュメント を参照してください。

ユーザーパスワードと同様に、BitCracker は辞書攻撃を実行して、ストレージデバイスを暗号化するために BitLocker によって生成された正しい回復パスワードを見つけることができます。現在、ストレージデバイスが TPM で暗号化されていない場合にのみ、回復パスワードを攻撃できることに注意してください。

攻撃を開始するには以下が必要です。

  • hash_recv_pass.txt ファイル
  • 可能性のある回復パスワードのワードリスト

すべての可能なパスワードを生成して保存するのは難しい問題です。そのため、私たちは bitcracker_rpgen という回復パスワード生成ツールを作成しました。このツールを使用すると、攻撃に使用できる複数の回復パスワードワードリストを作成できます。例:

./build/bitcracker_rpgen -n 300 -p 10000000 -s 000000-000011-000022-000033-000044-000055-008459-015180

これにより生成されます:

  • -n : ワードリストの数
  • -p : ワードリストあたりの回復パスワード数
  • -s : この回復パスワードから生成を開始

オプションなしで実行すると、デフォルト構成を使用できます。

./build/bitcracker_rpgen

************* BitCracker Recovery Password wordlists generator *************

Running with this configuration:
### Create 100 wordlists
### Recovery Passwords per wordlist=5000000
### Allow duplicates=No
### Generate starting from=000000-000011-000022-000033-000044-000055-000066-000077

Creating wordlist "bitcracker_wlrp_0.txt" with 5000000 passwords
First password=000000-000011-000022-000033-000044-000055-000066-000077
Last password= 000000-000011-000022-000033-000044-000055-000902-217822
...

-s オプションを使用すると、最後に生成した回復パスワードから生成を再開できます(毎回最初から再開する代わりに)。 -d オプションを有効にすると、同じ回復パスワード内で重複を許可できます。例: 000000-000011-000055-000055-000044-000055-000902-217822

利用可能なすべてのオプションについては、./build/bitcracker_rpgen -h と入力してください。

注: 回復パスワードの可能な数は膨大です:
recovery password = 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536 x 65536
私たちの調査によると、パスワードの分布は均一であり、「より確率の高い」数値を見つける方法はありません。これまでのところ、可能な候補の数を減らすためのルールは見つかっていません。つまり、回復パスワード攻撃は永遠に続く可能性があります(常にユーザーパスワード攻撃が優先されます)。近い将来、bitcracker_rpgen ツールを変更して、順序付きシーケンスではなくランダムな方法で回復パスワードを生成する予定です。

コマンドラインの例:

./build/bitcracker_cuda -f hash_recv_pass.txt -d bitcracker_wlrp_0.txt -t 1 -b 1 -g 0 -r

オプションはユーザーパスワードの場合と同じですが、-u の代わりに -r を指定する必要があります。出力例:

====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================
ツールをダウンロード