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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
btlejuice — BtleJuice Bluetooth Smart (LE) 中間者攻撃フレームワーク | Kitploit
ツール/GitHubGitHub/digitalsecurity/btlejuice
パケットスニッフィングと分析BluetoothセキュリティエクスプロイトワイヤレスセキュリティペネトレーションテストレッドチーミングArchived
GitHubdigitalsecurity/btlejuice

btlejuice

BtleJuice Bluetooth Smart (LE) 中間者攻撃フレームワーク

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

人気

すべて見る →

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

すべてのツールを探索

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

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

BtleJuice フレームワーク

===================

はじめに

BtleJuice は、Bluetooth Smart デバイス(Bluetooth Low Energy とも呼ばれます)に対して Man-in-the-Middle 攻撃を実行するための完全なフレームワークです。以下のもので構成されています:

  • インターセプションコア
  • インターセプションプロキシ
  • 専用のウェブインターフェース
  • Python および Node.js バインディング

BtleJuice のインストール方法?

BtleJuice のインストールは簡単です。まず、システムが新しいバージョンの Node.js (>=4.3.2) と npm を使用していることを確認してください。次に、必要な依存関係をすべてインストールしてください:

Ubuntu/Debian/Raspbian

root@kitploit:~
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

### Fedora / Other-RPM based

root@kitploit:~
sudo yum install bluez bluez-libs bluez-libs-devel npm

最後に、npm を使用して BtleJuice をインストールします:

root@kitploit:~
sudo npm install -g btlejuice

すべてがうまくいけば、BtleJuice を使用する準備ができています!

BtleJuice の使い方?

BtleJuice は、インターセプションプロキシとコアの2つの主要コンポーネントで構成されています。これらの2つのコンポーネントは、2つの Bluetooth 4.0+ アダプターを同時に操作するために、独立したマシンで実行する必要があります。BtleJuice Proxy は Docker コンテナ内では動作しません。

仮想マシンを使用すると、このフレームワークを1台のコンピュータで動作させることができる場合があります。

仮想マシンから、btlejuice をインストールし、USB BT4 アダプターが仮想マシンから利用可能であることを確認してください:

root@kitploit:~
$ sudo hciconfig
hci0:	Type: BR/EDR  Bus: USB
	BD Address: 10:02:B5:18:07:AD  ACL MTU: 1021:5  SCO MTU: 96:6
	DOWN
	RX bytes:1433 acl:0 sco:0 events:171 errors:0
	TX bytes:30206 acl:0 sco:0 commands:170 errors:0
$ sudo hciconfig hci0 up

次に、仮想マシンがホストから到達可能な IP アドレスを持っていることを確認してください。

仮想マシンでプロキシを起動します:

root@kitploit:~
$ sudo btlejuice-proxy

ホストマシンでは、Bluetooth サービスを停止し、HCI デバイスが開かれたまま/初期化されたままであることを確認することを忘れないでください:

root@kitploit:~
$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

最後に、ホストマシンで次のコマンドを実行します:

root@kitploit:~
$ sudo btlejuice -u <Proxy IP address> -w

-w フラグは BtleJuice にウェブインターフェースを起動するよう指示し、-u オプションはプロキシの IP アドレスを指定します。

Web ユーザーインターフェースは http://localhost:8080 で利用可能になりました。ウェブサーバーのポートはコマンドラインで変更できることに注意してください。

ウェブインターフェースの使用

BtleJuice のウェブインターフェースは、右上隅にインターセプションコアを制御するためのリンクのセットを提供します。以下に示します。

BtleJuice メイン Web UI

ターゲットの選択

まず、Select target ボタンをクリックすると、インターセプションコアによって検出された利用可能なすべての Bluetooth Low Energy デバイスを表示するダイアログが表示されます:

BtleJuice ターゲット選択ポップアップ

目的のターゲットをダブルクリックし、インターフェースの準備ができるまで待ちます(Bluetooth ボタンの外観が変わります)。ダミーデバイスの準備ができたら、関連するモバイルアプリケーションまたは別のデバイス(期待されるものに応じて)を使用してダミーデバイスに接続します。接続が成功すると、メインインターフェースに Connected イベントが表示されます。

BtleJuice ターゲット選択ポップアップ

インターセプトされたすべての GATT 操作は、対応するサービスと特性の UUID、そしてもちろんそれらに関連するデータとともに表示されます。データはデフォルトで HexII 形式(Ange Albertini によって設計された形式のバリアント)で表示されますが、データ自体をクリックすることで HexII から Hex(およびその逆)に切り替えることができます。Hex と HexII の両方の形式が BtleJuice でサポートされています。

GATT 操作の再生

任意の GATT 操作を右クリックして Replay オプションを選択することで、再生することが可能です。以下に示します:

再生ポップアップ

再生ダイアログ

Write(または Read)ボタンをクリックして、対応する GATT 操作を再生します。この操作はメインインターフェースに記録されます。

リアルタイムデータ変更

最後になりましたが、インターフェースはローカルまたはグローバルに任意の GATT 操作をインターセプトし、リアルタイムのデータ変更を可能にします。右上隅の Intercept ボタンをクリックしてグローバルインターセプションを使用するか、コンテキストメニューを使用して特定のサービスと特性のフックを有効または無効にすることができます。GATT 操作がインターセプトされるたびに、次のダイアログボックスが表示されます:

インターセプトダイアログ

データのファイルへのエクスポート

バージョン 1.0.6 以降、インターフェースは読み取り可能なエクスポートと JSON エクスポートを可能にするデータエクスポート機能を提供しています。これらのエクスポートは、インターセプトされた GATT 操作に基づいて生成されますが、ターゲットデバイスに関する情報も含まれます。Export ボタンをクリックすると、次のダイアログが表示されます:

エクスポートダイアログ

ダイアログボックスの下部にある Export ボタンをクリックして、インターセプトされたデータの JSON(またはテキスト)バージョンをダウンロードします。

設定

現在、設定ダイアログは、ターゲットデバイスが切断されたときにプロキシを自動的に再接続する単一のオプションを提供しています。これは、短時間だけアクティブなデバイスを扱う場合に役立ちます。

設定ダイアログ

切断

プロキシがアクティブなときに右上の Select Target ボタンをクリックすると、プロキシが停止し、再度ターゲット選択が可能になります。

バインディングのインストール

BtleJuice の Node.js バインディングも npm を通じてインストールできます:

root@kitploit:~
$ sudo npm install -g btlejuice-bindings

Node.js バインディングの使用方法の詳細については、パッケージドキュメント を参照してください。

謝辞

Slawomir Jasek 氏に特に感謝します。彼は、モバイルアプリケーションの問題を回避するための多くの noble/bleno のトリックを指摘し、DEF CON 24 で BLE MITM 戦略を共有してくれました =)。彼はまた、Gattacker の作者でもあります。

ライセンス

Copyright (c) 2016 Econocom Digital Security

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

ツールをダウンロード