mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-15 09:27:32 +00:00
92 lines
6.8 KiB
Markdown
92 lines
6.8 KiB
Markdown
{% hint style="success" %}
|
||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Support HackTricks</summary>
|
||
|
||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
|
||
# はじめに
|
||
|
||
Bluetooth 4.0仕様から利用可能なBLEは、2400から2483.5 MHzの範囲をカバーする40のチャネルのみを使用します。それに対して、従来のBluetoothは同じ範囲で79のチャネルを使用します。
|
||
|
||
BLEデバイスは、**広告パケット**(**ビーコンズ**)を送信することで通信します。これらのパケットは、BLEデバイスの存在を近くの他のデバイスにブロードキャストします。これらのビーコンズは、時には**データ**を送信することもあります。
|
||
|
||
リスニングデバイス、つまり中央デバイスは、広告パケットに対して**SCANリクエスト**を送信することで応答できます。このスキャンに対する**応答**は、**広告**パケットと同じ構造を持ち、初期の広告リクエストに収まらなかった追加情報(デバイスの完全な名前など)を含みます。
|
||
|
||
![](<../.gitbook/assets/image (201) (2) (1) (1).png>)
|
||
|
||
プレアンブルバイトは周波数を同期させ、4バイトのアクセスアドレスは**接続識別子**であり、複数のデバイスが同じチャネルで接続を確立しようとするシナリオで使用されます。次に、プロトコルデータユニット(**PDU**)は**広告データ**を含みます。PDUにはいくつかのタイプがあり、最も一般的に使用されるのはADV\_NONCONN\_INDとADV\_INDです。デバイスは**接続を受け付けない**場合、**ADV\_NONCONN\_IND** PDUタイプを使用し、広告パケット内でのみデータを送信します。デバイスは**接続を許可する**場合、**ADV\_IND**を使用し、**接続**が**確立**されると広告パケットの送信を停止します。
|
||
|
||
## GATT
|
||
|
||
**汎用属性プロファイル**(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 <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
|
||
```
|
||
## ベターキャップ
|
||
```bash
|
||
# 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ハッキングを学び、実践する:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
GCPハッキングを学び、実践する: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>HackTricksをサポートする</summary>
|
||
|
||
* [**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)を確認してください!
|
||
* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。**
|
||
* **[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してハッキングトリックを共有してください。**
|
||
|
||
</details>
|
||
{% endhint %}
|