# Pentesting BLE - Bluetooth Low Energy
AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける
* \*\*💬 [Discordグループ](https://discord.gg/hRep4RUj7f)\*\*に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)をフォローする
* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。
## はじめに
Bluetooth 4.0仕様以降利用可能なBLEは、2400から2483.5 MHzの範囲をカバーする40チャンネルのみを使用します。これに対して、従来のBluetoothは同じ範囲で79チャンネルを使用します。
BLEデバイスが通信する方法は、**広告パケット**(**ビーコン**)を送信することにより行われます。これらのパケットはBLEデバイスの存在を他の近くのデバイスにブロードキャストします。これらのビーコンは時々**データを送信**することもあります。
リスニングデバイス、またはセントラルデバイスとも呼ばれるデバイスは、広告パケットに**スキャンリクエスト**を送信することで、広告デバイスに特定のリクエストを送信できます。そのスキャンへの**応答**は、初期の広告リクエストに収まらなかった追加情報を含む同じ構造を使用します。これには、デバイスの完全な名前などが含まれます。
![](<../../.gitbook/assets/image (201) (2) (1) (1).png>)
プリアンブルバイトは周波数を同期させ、4バイトのアクセスアドレスは**接続識別子**であり、複数のデバイスが同じチャンネルで接続を確立しようとしているシナリオで使用されます。次に、プロトコルデータユニット(**PDU**)には**広告データ**が含まれます。いくつかの種類のPDUがありますが、最も一般的に使用されるのはADV\_NONCONN\_INDとADV\_INDです。デバイスは、**接続を受け入れない**場合はADV\_NONCONN\_IND PDUタイプを使用し、データを広告パケットでのみ送信します。デバイスは、**接続を許可し**、**接続**が**確立**されると**広告**パケットの送信を**停止**する場合は**ADV\_IND**を使用します。
### GATT
**Generic Attribute Profile**(GATT)は、**デバイスがデータをどのようにフォーマットして転送するか**を定義します。BLEデバイスの攻撃対象を分析する際には、GATT(またはGATTs)に注意を集中することが多いです。なぜなら、これが**デバイス機能がトリガーされる方法**やデータが格納、グループ化、変更される方法だからです。GATTは、デバイスの特性、記述子、およびサービスを16ビットまたは32ビットの値として表にリストアップします。**特性**は、セントラルデバイスとペリフェラル間で**送信されるデータ**値です。これらの特性には、**それに関する追加情報を提供する\*\*\*\*記述子**が付属していることがあります。**特性**は、特定のアクションを実行するために関連している場合、**サービス**に**グループ化**されることがよくあります。
## 列挙
```bash
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`オプションを使用して対話型シェルを起動できます:
```bash
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 -b --char-write-req -n
gatttool -b a4:cf:12:6c:b3:76 --char-write-req -a 0x002e -n $(echo -n "04dc54d9053b4307680a"|xxd -ps)
# Read data
gatttool -i -b --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
```
### Bettercap
### ベターキャップ
```bash
# Start listening for beacons
sudo bettercap --eval "ble.recon on"
# Wait some time
>> ble.show # Show discovered devices
>> ble.enum # This will show the service, characteristics and properties supported
# Write data in a characteristic
>> ble.write
>> ble.write ff06 68656c6c6f # Write "hello" in ff06
```
htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ!
HackTricksをサポートする他の方法:
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
* **💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)**または**[**telegramグループ**](https://t.me/peass)**に参加するか、Twitter 🐦** [**@carlospolopm**](https://twitter.com/hacktricks\_live)**で**フォロー\*\*する。
* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する。**