2. BlueToothの脆弱性と攻撃ツール
2.1. BlueToothの脆弱性
2.1.1. KNOB攻撃
KNOB攻撃は2019年8月に発表された**暗号化通信の鍵を1Byteにすることで、暗号化通信の鍵を容易に特定することができる****Bluetooth Classicの脆弱性を悪用した攻撃。
この脆弱性を悪用すると、暗号鍵を強制的に1バイトに制限することができてしまうためブルートフォース攻撃によって暗号鍵を容易に特定することが可能になる。 そのため中間者攻撃のリスクがある。
この脆弱性は後にマイクロソフト社やアップル社などからセキュリティパッチが提供された。
2.1.2. Blueborne
BlueBorne、2017年9月に公表されたBluetoothの脆弱性の総称。
攻撃者がこの脆弱性を悪用すると、ペアリングの仕組みを使わずともデバイスと接続できるようになり、マルウェア感染や乗っ取り、個人情報の窃取などの被害を受ける可能性がある。 脆弱性の発覚後、対応するアップデートが提供された。
2.1.3. BlueFrag
BlueFragは2020年2月に報告されたAndroidにおける脆弱性でAndroid 8.0系、8.1系、9.0系での存在が確認された。
この脆弱性があるデバイスでBluetoothが有効になっていると、近くの攻撃者がデバイスのMACアドレスを推測し、不正にアクセスすることでデバイスの管理権限を乗っ取ることが可能となる。
なおセキュリティパッチはすでにリリースされた。
2.1.4. Apple Bleee
Apple Bleeeは2019年7月に報告されたApple製品におけるBluetoothの脆弱性。 iPhoneなどに実装されているBLEが持つ、常時データの送受信が可能である仕様を悪用したものとなっている。
この脆弱性では攻撃者はターゲットの電話番号やiOSのバージョンなどを盗み見ることができる。 iPhone 5S以降、またはiOS 11以上のiPhoneに関して注意が必要となる。
2.2. BlueToothの操作シェル/セキュリティツール
2.2.1 通常のLinuxコマンド
systemctl start bluetooth
systemctl start bluetooth
はBlueTooth機能を有効化するコマンド。
GUI上での起動が安定しないことから使用される。
l2ping
l2ping <MACアドレス>
はBluetoothデバイスが通信可能であるかどうかを確認したり、通信の遅延を測定したりすることができるコマンド
2.2.2 BlueZ
BlueZはOSSのBluetoothプロトコルスタック設定/制御ソフトウェア。
シェルからBlueZを操作するコマンドであるhciconfig
、hcitool
、hcidump
などが含まれる。
BlueZ http://www.bluez.org
コマンド | 説明 |
---|---|
hciconfig | 端末のBluetoothインターフェイス確認 |
hciconfig <インターフェイス> <up/down> | Bluetoothインターフェイスの起動/停止 |
hcitool | Bluetooth機器の検出/スキャン |
hcitool lescan | ビーコンでアドバタイズしているBluetoothをスキャンする |
hcitool lecc <MACアドレス> | 端末とBluetooth機器の接続 |
hcitool scan | 既に接続中のBluetoothを確認 |
hcidump | Bluetoothパケットキャプチャ |
2.2.3 BtleJuice
BtleJuiceはWebプロキシ利用のBLEの中間者攻撃/リプレイ攻撃用のツール。
2.2.4 BtleJack
BtleJackはmicro:bitの利用前提のCLIのBLEハッキングツール。 機能としてはBLEパケットキャプチャ/スニッフィングに対応している。 またジャミングによるハイジャックも可能
micro:bitとは https://sanuki-tech.net/micro-bit/overview/about/
2.2.5. Crackle
CrackleはBLE暗号化の復号化を行える、BLEレガシーペアリングに基づいて接続をキャプチャした場合に適したツール。
2.2.3. BetterCap
BLEのデバイスのペネトレーションテストに使用できるツール。
# BLEビーコンのリスニングを開始
sudo bettercap --eval "ble.recon on"
# Wait some time
ble.show # BLEデバイス一覧の表示
ble.enum <MACアドレス> # This will show the service, characteristics and properties supported
# Write data in a characteristic
ble.write <MACアドレス> <UUID> <HEX DATA>
ble.write MACアドレス> ff06 68656c6c6f # Write "hello" in ff0
2.3. UberTooth One
2.3.1. UberTooth Oneとは
UberTooth OneはBluetoothデバイスのセキュリティとプロトコルの解析を行うためのOSSワイヤレスツール。以下のことが可能。
- Bluetoothモニタリング
- Bluetoothパケット解析
- Bleutoothセキュリティのテスト
2.3.2. UberToothを使用する
詳しくはコチラから。
BLEデバイスのスキャン
BLEデバイスは以下コマンドでスキャン可能。
sudo hcitool lescan
BLEデバイスの表示例
D5:AA:D0:41:A3:60 Mi Smart Band 4
78:A5:04:62:71:3D TepHeatB
BLEのスニッフィング
BLEデバイスのスキャンで得たBlueTooth Device Addressを指定することでデバイス間通信をキャプチャできる。
ubertooth-btle -f <BD_ADDR>
ubertooth-btle -f <BD_ADDR> -c <FilePath> #Fileに書き込む場合
WiresharkでBLEをキャプチャする
- ターミナルで
mkfifo /tmp/pipe
- WireSharkを開く
- 「キャプチャ=>オプション」を選択
- 「Manage Interfaces」を選択
- 「新規」を選択し「パイプ」に「/tmp/pipe」と入力
- 「保存」「閉じる」
- 「/tmp/pipe」を選択して「開始」を選択
- ターミナルで
ubertooth-btle -f -c /tmp/pipe
を実行 - うまくいかない場合は
/tmp/pipe
の実行/読み取り権限などを付与
UberToothスペクトルアナライザを使用する
2.4GHz帯を解析するツールであるスペクトラムアナライザを使用できる。
ubertooth-specan-ui
- 緑色の振幅: 異なるチャネルの複数の 802.11b ネットワークの電波
- 白い振幅: スキャン中に表示されるビーコン