{{#include ../banners/hacktricks-training.md}} # 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. Dinleme 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**, tam cihaz adını gibi ilk reklam isteğine sığmayan ek bilgilerle birlikte **reklam** paketinin aynı yapısını kullanır. ![](<../images/image (201) (2) (1) (1).png>) Preambül baytı 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 kullanılanlar ADV_NONCONN_IND ve ADV_IND'dir. Cihazlar, **bağlantıları kabul etmiyorlarsa** **ADV_NONCONN_IND** PDU türünü kullanarak yalnızca reklam paketinde veri iletir. Cihazlar, **bağlantılara izin veriyorlarsa** **ADV_IND** kullanır ve bir **bağlantı** **kurulduğunda** reklam paketleri göndermeyi durdurur. ## GATT **Genel Özellik Profili** (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 ```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**, 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: ```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 ``` {{#include ../banners/hacktricks-training.md}}