Pentesting BLE - Bluetooth Low Energy
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bluetooth 4.0仕様以降、BLEは40のチャネルのみを使用し、2400から2483.5 MHzの範囲をカバーしています。それに対して、従来のBluetoothは同じ範囲で79のチャネルを使用します。
BLEデバイスは、広告パケット(ビーコンズ)を送信することで通信します。これらのパケットは、BLEデバイスの存在を他の近くのデバイスにブロードキャストします。これらのビーコンズは、時にはデータも送信します。
リスニングデバイス、つまり中央デバイスは、広告パケットに対してSCANリクエストを送信することで応答できます。このスキャンへの応答は、初期の広告リクエストに収まらなかった追加情報(デバイスの完全な名前など)を含む、広告パケットと同じ構造を使用します。
プレアンブルバイトは周波数を同期させ、4バイトのアクセスアドレスは接続識別子であり、複数のデバイスが同じチャネルで接続を確立しようとするシナリオで使用されます。次に、プロトコルデータユニット(PDU)には広告データが含まれています。PDUにはいくつかのタイプがあり、最も一般的に使用されるのはADV_NONCONN_INDとADV_INDです。デバイスは接続を受け付けない場合、ADV_NONCONN_IND PDUタイプを使用し、広告パケット内でのみデータを送信します。デバイスは接続を許可する場合、ADV_INDを使用し、接続が確立されると広告パケットの送信を停止します。
汎用属性プロファイル(GATT)は、デバイスがデータをフォーマットし転送する方法を定義します。BLEデバイスの攻撃面を分析する際、GATT(またはGATTs)に注意を集中させることがよくあります。なぜなら、これがデバイス機能をトリガーする方法であり、データが保存、グループ化、変更される方法だからです。GATTは、デバイスの特性、記述子、およびサービスを16ビットまたは32ビットの値として表形式でリストします。特性は、中央デバイスと周辺デバイスの間で送信されるデータ値です。これらの特性には、追加情報を提供する記述子がある場合があります。特性は、特定のアクションを実行することに関連している場合、サービスにグループ化されることがよくあります。
GATTool は、別のデバイスとの 接続 を 確立 し、そのデバイスの 特性 をリストし、属性を読み書きすることを可能にします。
GATTTool は -I
オプションを使用してインタラクティブシェルを起動できます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)