6.8 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
はじめに
Bluetooth 4.0仕様から利用可能なBLEは、2400から2483.5 MHzの範囲をカバーする40のチャネルのみを使用します。それに対して、従来のBluetoothは同じ範囲で79のチャネルを使用します。
BLEデバイスは、広告パケット(ビーコンズ)を送信することで通信します。これらのパケットは、BLEデバイスの存在を近くの他のデバイスにブロードキャストします。これらのビーコンズは、時にはデータを送信することもあります。
リスニングデバイス、つまり中央デバイスは、広告パケットに対してSCANリクエストを送信することで応答できます。このスキャンに対する応答は、広告パケットと同じ構造を持ち、初期の広告リクエストに収まらなかった追加情報(デバイスの完全な名前など)を含みます。
プレアンブルバイトは周波数を同期させ、4バイトのアクセスアドレスは接続識別子であり、複数のデバイスが同じチャネルで接続を確立しようとするシナリオで使用されます。次に、プロトコルデータユニット(PDU)は広告データを含みます。PDUにはいくつかのタイプがあり、最も一般的に使用されるのはADV_NONCONN_INDとADV_INDです。デバイスは接続を受け付けない場合、ADV_NONCONN_IND PDUタイプを使用し、広告パケット内でのみデータを送信します。デバイスは接続を許可する場合、ADV_INDを使用し、接続が確立されると広告パケットの送信を停止します。
GATT
汎用属性プロファイル(GATT)は、デバイスがデータをフォーマットし転送する方法を定義します。BLEデバイスの攻撃面を分析する際、GATT(またはGATTs)に注意を集中させることがよくあります。なぜなら、これがデバイス機能をトリガーする方法であり、データが保存、グループ化、変更される方法だからです。GATTは、デバイスの特性、記述子、およびサービスを16ビットまたは32ビットの値として表形式でリストします。特性は、中央デバイスと周辺デバイスの間で送信されるデータ値です。これらの特性には、追加情報を提供する記述子がある場合があります。特性は、特定のアクションを実行することに関連している場合、サービスにグループ化されることがよくあります。
列挙
hciconfig #Check config, check if UP or DOWN
# If DOWN try:
sudo modprobe -c bluetooth
sudo hciconfig hci0 down && sudo hciconfig hci0 up
# Spoof MAC
spooftooph -i hci0 -a 11:22:33:44:55:66
GATTool
GATTool は、別のデバイスとの 接続 を 確立 し、そのデバイスの 特性 をリストし、属性を読み書きすることを可能にします。
GATTTool は -I
オプションを使用してインタラクティブシェルを起動できます:
gatttool -i hci0 -I
[ ][LE]> connect 24:62:AB:B1:A8:3E Attempting to connect to A4:CF:12:6C:B3:76 Connection successful
[A4:CF:12:6C:B3:76][LE]> characteristics
handle: 0x0002, char properties: 0x20, char value handle:
0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fb
handle: 0x0015, char properties: 0x02, char value handle:
0x0016, uuid: 00002a00-0000-1000-8000-00805f9b34fb
[...]
# Write data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-write-req <characteristic handle> -n <value>
gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps)
# Read data
gatttool -i <Bluetooth adapter interface> -b <MAC address of device> --char-read -a 0x16
# Read connecting with an authenticated encrypted connection
gatttool --sec-level=high -b a4:cf:12:6c:b3:76 --char-read -a 0x002c
ベターキャップ
# Start listening for beacons
sudo bettercap --eval "ble.recon on"
# Wait some time
>> ble.show # Show discovered devices
>> ble.enum <mac addr> # This will show the service, characteristics and properties supported
# Write data in a characteristic
>> ble.write <MAC ADDR> <UUID> <HEX DATA>
>> ble.write <mac address of device> ff06 68656c6c6f # Write "hello" in ff06
{% hint style="success" %}
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出してハッキングトリックを共有してください。