Kali Linuxの ‘fang’ ( ‘redfang’ )は、非表示(ディスカバー不可)になっているBluetoothデバイスを検出するためのツールです。
Bluetoothアドレスの最後の6バイトをブルートフォース(総当たり)し、リモート名を取得することで隠されたデバイスを探し出します。
discoverableについて
bluetooth機器の稼働状態は、3つの段階(power、discoverable、pairable)があります
| 状態の種類 | 意味 | bluetoothctl コマンド |
|---|---|---|
| power | 電源on / off | power on / off |
| discoverable | 他のデバイスから見つかるかどうか | discoverable on / off |
| pairable | 接続(ペアリング)出来るかどうか | pair on / off |
周囲にある ‘discoverable’ が “off” の状態となっているbluetooth機器を、ブルートフォースで無理矢理発見するコマンドが ‘fang’ です。
ツールの名称について
kali2024.3から名称が ‘fang’ に変更されていますが、それまでは ‘redfang’ という名称でした。
正確には ‘fang’ がコマンド名で、 ‘redfang’ がツール名となります。
実行
今回は適切な実行環境を作れなかった為、実行はしておりません。
アドレス範囲指定検索
‘-r’ オプションで6バイトの開始アドレスと終了アドレスを指定して、その間のアドレスを総当たりで検索します。
fang -r XXXXXXXXXXXX-YYYYYYYYYYYY
当たり前ですが、検索範囲が広いほど時間もかかります。
手元に適当なデバイスが無く、実行していません。スミマセン
主なオプション
| オプション | 説明 |
|---|---|
-r 検索アドレス下限-アドレス上限 | Bluetoothアドレス範囲探索 |
-o ファイル名 | ログ保存 |
-t タイムアウトまでの時間(ms) | タイムアウト(ms):デフォルトは10000ms |
-n 数 | 使用するBluetoothアダプタ数 |
-d | デバッグ表示 |
-s | 通常のBluetooth Discoveryも実施 |
-l | メーカーコード一覧表示 |
-h | ヘルプ表示 |
メーカー一覧
bluetoothアドレスの上位3バイトとメーカー名の対応表です。
fang -l

なお、このアドレスは変動しないアドレスです。(又は変動前のアドレス[BLE系統の Public Address]です。)
注意点
現在では次の理由から、Redfangが有効な場面はかなり限定されています。
- BLEには対応していない(classicのみに対応=アドレスが固定しているから)
- Bluetooth 5.xではランダムアドレス(Private Resolvable Addressなど)が広く使われている
- 広いアドレス範囲を探索すると非常に時間がかかる。よって対象メーカーやアドレス範囲の見当が付いていないと現実的ではない
まとめ
周囲のbluetooth機器(Discoverableモードになっていないもの)を、bluetoothアドレスを指定してブルートフォーシングにより発見するツールです。
但しこのツールは、アドレスの変動しない ‘bluetooth classic’ の機器で有効です。
また、ある程度のアドレスの見当をつけておかないと、非常に長い検索時間を要します。
180秒間のdiscoverable期間を過ぎたbluetooth機器を、ブルートフォースで無理やり見つけ出すツールがfangです。
ヘルプ
kali ー 01-Reconnaissance ー fang から表示されます。

‘fang -h’ でも同じ。


コメント