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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
btlejuice — ウェブベースのインターセプションプロキシを介して、Bluetooth Smartデバイスとモバイルアプリ間のGATTトラフィックを傍受・リプレイ・改変するBLE Man-in-the-Middleフレームワーク。 | Kitploit
ツール/GitHubGitHub/virtualabs/btlejuice
パケットスニッフィングと分析BluetoothセキュリティIoTセキュリティなりすましツールワイヤレスセキュリティペネトレーションテストレッドチーミングArchived
GitHubvirtualabs/btlejuice

btlejuice

ウェブベースのインターセプションプロキシを介して、Bluetooth Smartデバイスとモバイルアプリ間のGATTトラフィックを傍受・リプレイ・改変するBLE Man-in-the-Middleフレームワーク。

リポジトリを見る
7年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

BtleJuice Framework

はじめに

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

  • インターセプションコア
  • インターセプションプロキシ
  • 専用 Web インターフェース
  • 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 / その他の RPM ベース

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 に Web インターフェースの起動を指示し、-u オプションはプロキシの IP アドレスを指定します。

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

Web インターフェースの使用

BtleJuice の Web インターフェースは、右上隅にインターセプションコアを制御するためのリンクセットを提供します。下図のとおりです。

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 バインディングの使用方法の詳細については、パッケージドキュメント を参照してください。

謝辞

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

ライセンス

Copyright (c) 2016 Econocom Digital Security

ここに、無償で、本ソフトウェアおよび関連する文書ファイル(以下「本ソフトウェア」)の複製物を入手したすべての個人に対し、本ソフトウェアを制限なく扱うことを許可します。これには、本ソフトウェアの複製物を使用、複製、変更、結合、公開、頒布、サブライセンス、および/または販売する権利、ならびに本ソフトウェアを提供された個人にそれらの行為を許可する権利が、以下の条件に従うことを条件として、無制限に含まれます:

上記の著作権表示およびこの許可表示は、本ソフトウェアのすべての複製物または主要な部分に含まれるものとします。

本ソフトウェアは「現状のまま」で提供され、明示的か黙示的かを問わず、商品性、特定目的への適合性、および非侵害性の保証を含むがこれに限定されない、いかなる種類の保証もありません。いかなる場合においても、著作者または著作権所有者は、契約、不法行為、その他の原因を問わず、本ソフトウェアに起因または関連して、あるいは本ソフトウェアの使用またはその他の取り扱いに関連して発生する、いかなる請求、損害、その他の責任についても、一切の責任を負いません。

ツールをダウンロード