Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

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

bitcracker

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

リポジトリを見る
96520784年前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 バージョンを選択する必要があります。参考として、以下の表を使用できます。

攻撃の準備

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

root@kitploit:~
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 を開くか、私に連絡してください。

例:

root@kitploit:~
/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 実行ファイルにも同じ考慮事項が当てはまります。

出力例:

root@kitploit:~
====================================
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 : この回復パスワードから生成を開始

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

root@kitploit:~
./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 を指定する必要があります。出力例:

root@kitploit:~
====================================
Selected device: GPU Tesla K80 (ID: 0)
====================================

...
Reading hash file "hash_recv_pass.txt"
$bitlocker$2$16$432dd19f37dd413a88552225628c8ae5$1048576$12$a0da3fc75f6cd30106000000$60$3e57c68216ef3d2b8139fdb0ec74254bdf453e688401e89b41cae7c250739a8b36edd4fe86a597b5823cf3e0f41c98f623b528960a4bee00c42131ef


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

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

CUDA Kernel execution:
	Effective passwords: 6014
	Passwords Range:
		390775-218680-136708-700645-433191-416240-153241-612216
		.....
		090134-625383-540826-613283-563497-710369-160182-661364
	Time: 193.358937 sec
	Passwords x second:    31.10 pw/sec


================================================
CUDA attack completed
Passwords evaluated: 6014
Password found: 111683-110022-683298-209352-468105-648483-571252-334455
================================================

誤検知

デフォルトでは、BitCracker は高速攻撃(ユーザーパスワードおよび回復パスワードモードの両方)を実行しますが、これにより誤検知が発生する可能性があります。その場合は、-m オプションを指定して攻撃を再実行できます。これにより MAC 検証が有効になります(低速なソリューション)。

例

実際の攻撃を開始する前にシステムで BitCracker をテストするために、暗号化ストレージデバイスのいくつかのイメージを提供しています。

  • imgWin7: Windows 7 Enterprise エディション OS 上の BitLocker
  • imgWin8: Windows 8 Enterprise エディション OS 上の BitLocker
  • imgWin10Compat.vhd: Windows 10 Pro エディション OS 上の BitLocker(互換モード)
  • imgWin10NotCompat.vhd: Windows 10 Pro エディション OS 上の BitLocker(非互換モード)
  • imgWin10NotCompatLongPsw.vhd : Windows 10 Pro エディション OS 上の BitLocker(非互換モード、長いユーザーパスワード)

これらのイメージは、Dictionary フォルダに保存されているワードリストを使用して、ユーザーパスワードモードと回復パスワードモードの両方で攻撃できます。

パフォーマンス

以下に、高速攻撃(デフォルト)のユーザーパスワード (-u オプション) における最良の BitCracker パフォーマンスを示します。

パフォーマンス:

N.B. 各パスワードには約 2.097.152 SHA-256 が必要です

John The Ripper

BitCracker を John The Ripper の OpenCL-BitLocker フォーマットとしてリリースしました (--format=bitlocker-opencl)。 bitcracker_hash によって生成されたハッシュファイル(How To セクションを参照)は、John フォーマットと完全に互換性があります。
GTV100 では、パスワードレートは約 3150p/s です。JtR チームはこの攻撃の CPU バージョン (--format=bitlocker) を開発しました。CPU Intel(R) Xeon(R) v4 2.20GHz では、パスワードレートは約 78p/s です。

Hashcat

これは作業中のものです...

変更履歴

2021年11月: CUDA 11.x を使用して NVIDIA GPU Ampere で実行するようにコードを更新

今後の予定

  • マルチ GPU 実装の提供
  • Qt インターフェースの提供

参考文献、クレジット、連絡先

私たちのプロジェクトを共有し、テストしてください。フィードバックが必要です!

John The Ripper チーム、Dislocker および LibBDE プロジェクトに特に感謝します。

これは、イタリア国立研究評議会との共同研究プロジェクトであり、GPLv2 ライセンスでリリースされています。
Copyright (C) 2013-2021 Elena Ago (elena dot ago at gmail dot com) および Massimo Bernaschi (massimo dot bernaschi at gmail dot com)
今後の論文で BitCracker の攻撃に関する追加情報を提供する予定です。

GPLv2 ライセンスを使用していますが、コラボレーションにはオープンです。 追加情報、コラボレーション、バグ報告については、お問い合わせいただくか、Issue を開いてください。

ツールをダウンロード
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
GPU 略称GPUアーキテクチャCC# SMクロックCUDA
GFTGeForce TitanKepler3.5148357.0
GTK80Tesla K80Kepler3.5138757.5
GFTXGeForce Titan XMaxwell5.22410017.5
GTP100Tesla P100Pascal6.15613288.0
GTV100Tesla V100Volta7.08012909.0
AMDMRadeon Malta-----
バージョンGPU-t-bパスワード/カーネルパスワード/秒ハッシュ/秒
CUDAGFT813106.496303635 MH/s
CUDAGTK80814114.688370775 MH/s
CUDAGFTX824106.6089331.957 MH/s
CUDAGTP10015657.3441.4182.973 MH/s
CUDAGTV10018081.9203.2526.820 MH/s
OpenCLAMDM3264524.288241505 MH/s
OpenCLGFTX824196.6088841.853 MH/s