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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BTLE — Software Defined Radio (SDR) に基づき、標準および非標準 (raw bit) の両方に対応した Bluetooth Low Energy (BLE) パケットスニファ兼トランスミッタ。 | Kitploit
ツール/GitHubGitHub/jiaoxianjun/btle
パケットスニッフィングと分析BluetoothセキュリティIoTセキュリティワイヤレスセキュリティ
GitHubjiaoxianjun/btle

BTLE

Software Defined Radio (SDR) に基づき、標準および非標準 (raw bit) の両方に対応した Bluetooth Low Energy (BLE) パケットスニファ兼トランスミッタ。

リポジトリを見るウェブサイト
9271712ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

BTLE

BTLEは、無料かつオープンソースのBluetooth Low Energy(BLE)ソフトウェア無線ソフトウェアスイートであり、オープンBTLEチップ設計です。

以下が含まれます:

  • BTLEベースバンドのアルゴリズム説明、Python/Verilog実装、FPGAおよびSkyWater 130 PDK(OpenLane2ワークフロー)の結果。
  • Analog Devices AD9361 + Xilinx Zynq FPGA実装: FPGA Bluetooth
  • btle_rx - BLEスニファ。ブロードキャスト/固定チャンネルの傍受に加えて、通信リンクのチャンネルホッピングも追跡できます。
  • btle_tx - 汎用BLEパケット送信機。BLE標準に加えて、任意のGFSKパケットを生成するrawビットモードにも対応しています。これにより、チップが市場に出る前に、非標準プロトコルや審議中の標準をテストできます。

特徴

  • PHYおよび上位層はソフトウェア(C言語)で実装されています。完全なソフトウェア無線の柔軟性を備えています。
  • BLE標準の1Mbps GFSK PHY。
  • Core_V4.0(第6巻 PartB 第2章&3章)のすべてのADVおよびDATAチャンネルのリンク層パケット形式に対応しています。
  • スニファはチャンネルホッピングパターンを自動的に解析・追跡でき、ブロードキャストチャンネルや固定チャンネルに限定されません。

ハードウェア

  • HackRF
  • bladeRF
  • HackRFおよびbladeRFライブラリの互換バージョン

ビルドと簡単なテスト

このプロジェクトを実行する前に、SDRハードウェア環境(ドライバ/ライブラリ)が正しくセットアップされていることを確認してください。

root@kitploit:~
git clone https://github.com/JiaoXianjun/BTLE.git
cd BTLE/host
mkdir build
cd build
cmake ../                   (default. for HackRF)
cmake ../ -DUSE_BLADERF=1   (only for bladeRF)

make
./btle-tools/src/btle_rx

上記のコマンドはチャンネル37を傍受します。周囲にBLEデバイス(スマートフォン/タブレット/ノートPC)があれば、画面上に多数のパケットが表示されるはずです。

root@kitploit:~
./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r500 

上記のコマンドはADVチャンネルでディスカバリーパケットを送信します。別のBLEスニファアプリ(LightBlueなど)に「SDR/Bluetooth/Low/Energy」という名前のデバイスが表示されるはずです。

HACKRFでより高速な操作シーケンスを実現するには、次を使用します:

root@kitploit:~
#define TRANSFER_COUNT 4
#define TRANSFER_BUFFER_SIZE 4096

hackrf/host/libhackrf/src/hackrf.c にこの設定を適用します。次にHACKRFライブラリを再コンパイルし、再インストールしてください。HACKRFライブラリの変更を反映するためにBTLEも再コンパイルすることを忘れないでください。

ツール以外にも、matlabディレクトリにはアルゴリズム評価やその他の便利なスクリプトが含まれています

btle_rx の使い方

root@kitploit:~
-h --help

すべての引数/使用方法を表示します。

root@kitploit:~
-c --chan

チャンネル番号。デフォルト値は37(ADVチャンネルの1つ)。有効値は0〜39(すべてのADVおよびDATAチャンネル)。

root@kitploit:~
-g --gain

受信ゲイン(dB)。HACKRF rxvga のデフォルトは6、有効範囲は0〜62。bladeRF のデフォルトは最大受信ゲイン66dB(有効範囲は0〜66)。ゲインは、お使いの環境で最高のパフォーマンスを確保するために非常に慎重に調整する必要があります。高ゲインは常に深刻な歪みを引き起こし何も得られないため、低ゲインから試すことをお勧めします。

root@kitploit:~
-l --lnaGain

LNAゲイン(dB)(HackRFのみ)。デフォルトは32、有効範囲は0〜40。ゲインは、お使いの環境で最高のパフォーマンスを確保するために非常に慎重に調整する必要があります。

root@kitploit:~
-b --amp

アンプを有効にします(HackRFのみ)。デフォルトはオフ。

root@kitploit:~
-a --access

アクセスアドレス。ADVチャンネル37 38 39のデフォルトは8e89bed6。データチャンネルでは、キャプチャした接続確立手順に応じて正しい値を指定する必要があります。

root@kitploit:~
-k --crcinit

ADVチャンネルのデフォルトは555555。データチャンネルでは、キャプチャした接続確立手順に応じて正しい値を指定する必要があります。

root@kitploit:~
-v --verbose

詳細モード。エラー時に詳細な情報を表示します。

root@kitploit:~
-r --raw

rawモード。アクセスアドレスが検出された後、続く生の42バイトを(デスクランブルやパースなしで)表示します。

root@kitploit:~
-f --freq_hz (need argument)

この周波数(Hz)はチャンネル設定を上書きします(BTLE以外の周波数で作業したい場合向け。より汎用的です)。

root@kitploit:~
-m --access_mask (need argument)

このマスクのビットが1の場合、アクセスアドレスの対応するビットがパケット存在判定に使用されます(パケット検出のためにより短い/疎なユニークワードを使用したい場合向け。より汎用的です)。

root@kitploit:~
-o --hop

ADVチャンネルのADV_CONNECT_REQパケットでリンク設定情報がキャプチャされた後、データチャンネルの追跡(周波数ホッピング)を有効にします。

root@kitploit:~
-s --filename

パケットをpcapファイルに保存します。

btle_tx の使い方

root@kitploit:~
btle_tx packet1 packet2 ... packetX ...  rN

または

root@kitploit:~
btle_tx packets.txt

packets.txt はコマンドラインパラメータ(packet1 packet2 ... rN)のテキストを含むテキストファイルです。1行に1パラメータです。「#」で始まる行はコメントと見なされます。packets.txt の例 を参照してください。

root@kitploit:~
packetX 

は1つのパケットを表す文字列です。すべてのパケットがパケットシーケンスを構成します。

root@kitploit:~
rN

は、シーケンスがN回繰り返されることを意味します。指定しない場合、シーケンスは1回だけ送信されます。

packetX 文字列の形式

root@kitploit:~
channel_number-packet_type-field-value-field-value-...-Space-value

各ディスクリプタ文字列はBTLEチャンネル番号(0〜39)で始まり、その後にpacket_type(RAW/iBeacon/ADV_IND/ADV_DIRECT_INDなど。すべての形式例は最後: 付録を参照)が続き、次にpacket_type固有のフィールドと値のペアが続きます。最後にSpaceと値のペア(オプション)があり、値はこのパケット送信後に待機するミリ秒数を指定します。

コマンドラインのパケットディスクリプタでは、スペース文字" "を使用しないでください。txtファイルのパケットディスクリプタではスペースを使用できます。

各フィールド内で「-」を使用しないでください。「-」はパケットディスクリプタ内の異なるフィールドを区切るための特殊文字です。

  • btle_tx の例: ディスカバリーパケット

このコマンドの前に、iPhone/デバイスでLightBlueアプリ(または他のBLEスニファ)を開いてください:

root@kitploit:~
./btle-tools/src/btle_tx ../btle-tools/src/packets_discovery.txt

LightBlueアプリに「SDR Bluetooth Low Energy」という名前のデバイスが表示されます。

対応するコマンドライン:

root@kitploit:~
./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r40

注: コマンドラインではスペース" "がサポートされていないため、スペースは「/」に置き換えられています。

  • btle_tx の例: 接続確立
root@kitploit:~
btle_tx 37-ADV_IND-TxAdd-0-RxAdd-0-AdvA-90D7EBB19299-AdvData-0201050702031802180418-Space-1      37-CONNECT_REQ-TxAdd-0-RxAdd-0-InitA-001830EA965F-AdvA-90D7EBB19299-AA-60850A1B-CRCInit-A77B22-WinSize-02-WinOffset-000F-Interval-0050-Latency-0000-Timeout-07D0-ChM-1FFFFFFFFF-Hop-9-SCA-5-Space-1     9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22-Space-1

上記は、デバイス1とデバイス2の間の接続確立手順をシミュレートしています。対応するディスクリプタファイルは BTLE/host/btle-tools/src/packets.txt です。

1つ目のパケット -- デバイス1がチャンネル37でADV_INDパケットを送信します。

2つ目のパケット -- デバイス2(スキャン状態)がデバイス1からADVパケットを受信した後、デバイス2はデバイス1との接続設定を要求するためにCONNECT_REQパケットを送信します。この要求パケットには、デバイス2のMACアドレス(InitA)、ターゲットMACアドレス(デバイス1のMACアドレスAdvA)、デバイス1がその後のデータチャンネルでのパケット送信に使用するアクセスアドレス(AA)、その後のデバイス1のパケット送信のためのCRC初期値、デバイス1が使用するデータチャンネルのホッピングチャンネル情報(ChMとHop)などが含まれます。

3つ目のパケット -- デバイス1は、デバイス2から受信した接続要求情報に従って、チャンネル9(ホッピングスキームで決定)で空のリンク層データPDUを送信します。(フィールド「DATA」の後の「XX」はこのフィールドにデータがないことを意味します)

パケット間の時間間隔は1秒(1000ms)です。TIのパケットスニファをチャンネル37に合わせると、上記の確立手順がキャプチャされます。

  • btle_tx の例: iBeacon
root@kitploit:~
./btle-tools/src/btle_tx 37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100     r100

上記のコマンドはiBeaconパケットを送信し、100msの間隔で100回繰り返します。対応するディスクリプタファイルは BTLE/host/btle-tools/src/packets_ibeacon.txt です。BLEスニファドングルを使用してパケットを確認できます。

パケットディスクリプタ文字列:

root@kitploit:~
37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100
root@kitploit:~
37

チャンネル37(BTLEアドバタイズチャンネル37 38 39の1つ)

root@kitploit:~
iBeacon

iBeacon形式を意味するパケット形式キーワード。(実際にはCore_V4.0.pdfのADV_IND形式です)

root@kitploit:~
AdvA

アドバタイズアドレス(MACアドレス)。010203040506 に設定されています(Core_V4.0.pdf を参照)

root@kitploit:~
UUID

ここではEstimoteの固定UUID: B9407F30F5F8466EAFF925556B57FE6D を指定します。

root@kitploit:~
Major

iBeacon形式のメジャー番号。(ここでは0008)

root@kitploit:~
Minor

iBeacon形式のマイナー番号。(ここでは0009)

root@kitploit:~
Txpower

iBeacon形式の送信電力パラメータ(ここではC5)

root@kitploit:~
Space

このパケット送信後に待機するミリ秒数。(ここでは100ms)

デモ

TIのパケットスニファとの比較はこちら: http://sdr-x.github.io/BTLE-SNIFFER/

btle_rx ビデオデモ または btle_rx ビデオデモ(中国国内向け)、および btle_tx ビデオデモ1 または btle_tx ビデオデモ2(中国国内向け)をご覧ください。

付録: btle_tx の全形式のパケットディスクリプタ例


RAWパケット: (すべてのビットがGFSK変調器に直接送信されます)

root@kitploit:~
37-RAW-aad6be898e8dc3ce338c4cb1207730144f9474e0e15eedb378c3bc

ADVERTISING CHANNELパケット(例: チャンネル37):

root@kitploit:~
37-IBEACON-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5
37-ADV_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_DIRECT_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-InitA-0708090A0B0C
37-ADV_NONCONN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_SCAN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-SCAN_REQ-TxAdd-1-RxAdd-0-ScanA-010203040506-AdvA-0708090A0B0C
37-SCAN_RSP-TxAdd-1-RxAdd-0-AdvA-010203040506-ScanRspData-00112233445566778899AABBCCDDEEFF
37-CONNECT_REQ-TxAdd-1-RxAdd-0-InitA-010203040506-AdvA-0708090A0B0C-AA-01020304-CRCInit-050607-WinSize-08-WinOffset-090A-Interval-0B0C-Latency-0D0E-Timeout-0F00-ChM-0102030405-Hop-3-SCA-4

DATA CHANNELパケット(例: チャンネル9):

root@kitploit:~
9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22
9-LL_CONNECTION_UPDATE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-WinSize-02-WinOffset-0e0F-Interval-0450-Latency-0607-Timeout-07D0-Instant-eeff-CRCInit-A77B22
9-LL_CHANNEL_MAP_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ChM-1FFFFFFFFF-Instant-0201-CRCInit-A77B22
9-LL_TERMINATE_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-12-CRCInit-A77B22
9-LL_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-Rand-0102030405060708-EDIV-090A-SKDm-0102030405060708-IVm-090A0B0C-CRCInit-A77B22
9-LL_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-SKDs-0102030405060708-IVs-01020304-CRCInit-A77B22
9-LL_START_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_START_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_UNKNOWN_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-UnknownType-01-CRCInit-A77B22
9-LL_FEATURE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_FEATURE_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_PAUSE_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_PAUSE_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_VERSION_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-VersNr-01-CompId-0203-SubVersNr-0405-CRCInit-A77B22
9-LL_REJECT_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-00-CRCInit-A77B22

ディスカバリーパケット: (LightBlueなどのスキャナーアプリに任意の名前やサービスを表示できます):

root@kitploit:~
37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-FLAGS-02-LOCAL_NAME09-CA-TXPOWER-03-SERVICE03-180D1810-SERVICE_DATA-180D40-MANUF_DATA-0001FF-CONN_INTERVAL-0006 (-SERVICE_SOLI14-1811)

FLAGS: 0x01 LE Limited Discoverable Mode; 0x02 LE General Discoverable Mode
SERVICE:
0x02 16-bit Service UUIDs More 16-bit UUIDs available
0x03 16-bit Service UUIDs Complete list of 16-bit UUIDs available
0x04 32-bit Service UUIDs More 3a2-bit UUIDs available
0x05 32-bit Service UUIDs Complete list of 32-bit UUIDs available
0x06 128-bit Service UUIDs More 128-bit UUIDs available
0x07 128-bit Service UUIDs Complete list of 128-bit UUIDs available
ツールをダウンロード