bluelogはLinuxベースのBluetoothスキャナーです。
Bluetoothのサイトサーベイ(周囲にどれくらいBluetooth機器が存在するかの調査)によく利用されます。
GUIはなく、長時間バックグラウンドで動作させることを前提に設計されています。
bluetooth classicについて
bluetoothには、 ‘bluetooth classic’ と ‘bluetooth BLE’ の2系統があります。
| 系統 | 主な用途 | 欠点 |
|---|---|---|
| bluetooth classic | 音楽用、ゲームコントローラ、大容量データ通信 | 消費電力多い |
| bluetooth BLE[Bluetooth Low Energy] | IoT用、スマートウォッチ、ヘルスケア機器 | 通信速度遅い |
bluelogは、‘bluetooth classic’ の方に対応しています。
この分類は、bluetooth5.4や6.0といった世代(バージョン)分類とは別物です。
準備
bluetoothデバイスの確認
自分のマシンに(或いはマシンに接続された周辺機器に)bluetoothを送受信する機能(ハード)があるかどうかを確認します。
hciconfig

上例では、 ‘hci0’ として認識されています。
hciconfig:hci(bluetooth)の設定コマンドです。
bluetoothサービス稼働の確認
ハードの存在とは別に、ソフト的にbluetoothサービスが動いているかどうかを確認します。
systemctl status bluetooth

上例ではサービスは ‘inactive(dead)’ となっています。動いていません。
bluetoothサービスの稼働
そこで、bluetoothサービスをスタートします。
sudo systemctl start bluetooth

‘systemctl status bluetooth’ コマンドによる確認では、active(running)となりました。
次回からも稼働させたい場合
もし、次回ブート時からも起動させたい場合は、 ‘enable’ とします。
sudo systemctl enable bluetooth

下例の ‘systemctl status bluetooth’ コマンドによる確認では、 ‘enabled’ (=次回のリブート時に起動)かつ ‘active’ (=現在も稼働)となっています。

‘sudo systemctl enable bluetooth –now’ と、’–now’ オプションを付ければ、 ‘start’ (今から稼働)と ‘enable’ (次回リブート時からも稼働)の2コマンドを兼ねた効果になります。
ブロックされていないことの確認
念の為、ブロックされていないことの確認です
rfkill list

0番(hci0):Bluetooth、1番(phy0):Wifi ともBlockされていません。
rfkillコマンドについて
wifiやbluetoothなどの無線デバイスを、有効化・無効化するコマンドです。
もしも ‘rfkill list’ が ‘yes’ だった場合
下記例では、BluetoothのSoft blockedが ‘yes’ となっています。

この状態でbluelogツールを実行するとエラーがでています。
この場合、下記コマンドでブロックを解除します。
sudo rfkill unblock bluetooth

或いはwifiも含めた全てのブロックを解除する下記コマンドでもOKです。
sudo rfkill unblock all
最後に ‘rfkill list’ コマンドで状態を再確認します。
実行
以下のコマンドにて実行します。
sudo bluelog
新たにiPhone16とAirPods4をペアリングし、その後MacBook AirとAirPods4をペアリングすると、その様子が記録されました。(一部アドレスを隠しています)

終了は ‘Ctl + C’ です
6行目にlogの保存先が表示されています。
8行目がラズパイ側のBDアドレス(MACアドレスに相当)です。(一部アドレスを隠しています)
10、11行目に発見したbluetoothデバイスが記録されています。
10行目はiPhone-AirPodsのペアリング、11はMacBook Air-AirPodsのペアリングです。
記録されているのはデバイス名(iPhone、MacbookAir)とそのBDアドレスです。
適当なbluetooth音楽デバイスが無かったのでAirPods4を買ってしまいました。
まあ以前からどうせ欲しかったものですけどね。
(ベトナムから送られてくると思っていたら、中国からでした)
AirPods側のアドレスと名前は検出出来ていません。
また、既にペアリングが成立している状態でのスキャンでは検出できないようです。(検出できるのは接続開始時のアドレスを交換している時のみ)
ログは以下の通りです。

表示するオプション
‘-v’ オプションでターミナル画面にも発見デバイスの経過が表示されます。
sudo bluelog -v
ログファイル名の指定
sudo bluelog -o ファイル名
指定しない場合は、デフォルトで ‘bluelog-YYYY-MM-DD-HHMM.log’ の形でホームディレクトリに保存されます
インターフェースの指定
bluetoothアダプタが複数ある場合に、これを指定します
sudo bluelog -i アダプタ名
bluetoothアダプタが1つの場合は、省略可能です(自明なので)
デーモン化
バックグラウンドで動きます
sudo bluelog -d
ライブモード
sudo bluelog -l
HTMLファイルを出力・更新し続けるモードです
Webサーバ(ApacheやNginxなど)で公開すれば、ブラウザからリアルタイムの検出結果を確認できます
その他のオプション
| オプション | 意味 |
|---|---|
| -n | デバイス名表示 |
| -m | メーカー名表示 |
| -c | デバイスクラス表示 |
| -f | 同上(分かり易い名称) |
| -t | タイムスタンプ表示 |
| -k | デーモン停止 |
| -a 分 | 一定時間検出しない機器を消去 |
| -w 秒 | スキャン間隔 |
まとめ
まずは、bluetoothに2系統(音楽計の ‘Classic’ と、データ通信の ‘BLE’ )があることを初めて知りました、
このツール ‘bluelog’ は前者専用の検出ツールです。
接続初期のペアリング時の情報を捉えるようです。
長所と短所
長所
- 周囲のBluetooth Classic機器を一覧化
- 長時間監視
- ログ保存
- メーカー推定
- デバイス名取得
- サイトサーベイ
短所
- ペアリング不可
- パケットキャプチャ不可
- Bluetooth通信内容の解析不可
- BLE(Bluetooth Low Energy)の詳細解析不可
- Bluetooth攻撃不可
ヘルプ
bluelogは01-Reconnaissanceの一番上にあり、つまりkaliツールの一番先頭にあります。
kali ー 01-Reconnaissance ー Bluetooth ー bluelog



コメント