hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md

6.2 KiB
Raw Blame History

{% 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
{% endhint %}

Giriş

Bluetooth 4.0 spesifikasyonundan beri mevcut olan BLE, yalnızca 40 kanal kullanır ve 2400 ile 2483.5 MHz aralığını kapsar. Buna karşılık, geleneksel Bluetooth bu aynı aralıkta 79 kanal kullanır.

BLE cihazları, reklam paketleri (beaconlar) göndererek iletişim kurar; bu paketler, BLE cihazının varlığını diğer yakın cihazlara yayınlar. Bu beaconlar bazen veri de gönderir.

Dinleyici cihaz, merkezi cihaz olarak da adlandırılır, bir reklam paketine SCAN isteği ile yanıt verebilir; bu istek özel olarak reklam cihazına gönderilir. O tarama isteğine verilen yanıt, reklam paketinin yapısını kullanır ve başlangıçtaki reklam isteğine sığmayan ek bilgileri içerir, örneğin tam cihaz adı.

Preamble byte, frekansı senkronize ederken, dört baytlık erişim adresi bir bağlantı tanımlayıcısıdır; bu, birden fazla cihazın aynı kanallarda bağlantı kurmaya çalıştığı senaryolarda kullanılır. Sonraki, Protokol Veri Birimi (PDU), reklam verilerini içerir. Birkaç PDU türü vardır; en yaygın olarak kullanılanlar ADV_NONCONN_IND ve ADV_IND'dir. Cihazlar, bağlantıları kabul etmiyorlarsa ADV_NONCONN_IND PDU türünü kullanır ve yalnızca reklam paketinde veri iletir. Cihazlar, bağlantılara izin veriyorlarsa ADV_IND kullanır ve bir bağlantı kurulduğunda reklam paketlerini göndermeyi durdurur.

GATT

Generic Attribute Profile (GATT), cihazın verileri nasıl biçimlendireceğini ve ileteceğini tanımlar. Bir BLE cihazının saldırı yüzeyini analiz ederken, genellikle dikkatinizi GATT (veya GATT'ler) üzerinde yoğunlaştırırsınız, çünkü bu, cihaz işlevselliğinin tetiklendiği ve verilerin nasıl depolandığı, gruplandığı ve değiştirildiğidir. GATT, bir cihazın özelliklerini, tanımlayıcılarını ve hizmetlerini 16 veya 32 bit değerler olarak bir tabloda listeler. Bir özellik, merkezi cihaz ile çevresel cihaz arasında gönderilen bir veri değeridir. Bu özellikler, onlara ek bilgi sağlayan tanımlayıcılar içerebilir. Özellikler, belirli bir eylemi gerçekleştirmekle ilgili olduklarında genellikle hizmetlerde gruplandırılır.

Sayım

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, başka bir cihazla bağlantı kurmayı sağlar, o cihazın özelliklerini listeleyebilir ve niteliklerini okuyup yazabilir.
GATTTool, -I seçeneği ile etkileşimli bir kabuk başlatabilir:

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

Bettercap

# 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 Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %}