hacktricks/radio-hacking/pentesting-ble-bluetooth-low-energy.md
2024-02-11 01:46:25 +00:00

8 KiB

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Wprowadzenie

Dostępny od specyfikacji Bluetooth 4.0, BLE korzysta tylko z 40 kanałów, obejmujących zakres od 2400 do 2483,5 MHz. W przeciwieństwie do tradycyjnego Bluetootha, który korzysta z 79 kanałów w tym samym zakresie.

Urządzenia BLE komunikują się, wysyłając pakiet reklamowy (beacony), które transmitują istnienie urządzenia BLE do innych urządzeń w pobliżu. Te beacony czasami również wysyłają dane.

Słuchające urządzenie, zwane również urządzeniem centralnym, może odpowiedzieć na pakiet reklamowy za pomocą żądania SKANU wysłanego specjalnie do urządzenia reklamowego. Odpowiedź na ten skan korzysta z tej samej struktury co pakiet reklamowy z dodatkowymi informacjami, które nie zmieściły się w początkowym żądaniu reklamowym, takimi jak pełna nazwa urządzenia.

Bajt preambuły synchronizuje częstotliwość, podczas gdy czterobajtowy adres dostępu to identyfikator połączenia, który jest używany w scenariuszach, w których wiele urządzeń próbuje nawiązać połączenia na tych samych kanałach. Następnie jednostka danych protokołu (PDU) zawiera dane reklamowe. Istnieje kilka rodzajów PDU, najczęściej używane to ADV_NONCONN_IND i ADV_IND. Urządzenia używają typu PDU ADV_NONCONN_IND, jeśli nie akceptują połączeń, przesyłając dane tylko w pakiecie reklamowym. Urządzenia używają ADV_IND, jeśli pozwalają na połączenia i przestają wysyłać pakiety reklamowe, gdy połączenie zostanie ustanowione.

GATT

Generic Attribute Profile (GATT) definiuje, w jaki sposób urządzenie powinno formatować i przesyłać dane. Analizując powierzchnię ataku urządzenia BLE, często skupiasz swoją uwagę na GATT (lub GATTs), ponieważ to ona uruchamia funkcjonalność urządzenia i przechowuje, grupuje i modyfikuje dane. GATT wymienia cechy, deskryptory i usługi urządzenia w tabeli jako wartości 16- lub 32-bitowe. Cecha to wartość danych wysyłana między urządzeniem centralnym a urządzeniem peryferyjnym. Te cechy mogą mieć deskryptory, które dostarczają dodatkowych informacji na ich temat. Cechy są często grupowane w usługi, jeśli są związane z wykonaniem określonej czynności.

Wyliczanie

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 pozwala na ustanowienie połączenia z innym urządzeniem, wyświetlanie charakterystyk tego urządzenia oraz odczytywanie i zapisywanie jego atrybutów.
GATTTool może uruchomić interaktywną powłokę za pomocą opcji -I:

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

Bettercap to potężne narzędzie do testowania penetracyjnego, które można wykorzystać do ataków na Bluetooth Low Energy (BLE). Działa na różnych platformach, takich jak Linux, macOS i Windows.

Instalacja

Aby zainstalować Bettercap, wykonaj następujące kroki:

  1. Pobierz i zainstaluj Go (jeśli jeszcze go nie masz).
  2. Uruchom polecenie go get -u github.com/bettercap/bettercap.
  3. Przejdź do katalogu z kodem źródłowym Bettercap (cd $GOPATH/src/github.com/bettercap/bettercap).
  4. Uruchom polecenie make build.
  5. Po zakończeniu kompilacji, uruchom polecenie sudo make install.

Użycie

Bettercap oferuje wiele funkcji, które można wykorzystać podczas testowania penetracyjnego BLE. Oto kilka przykładów:

  • Skanowanie urządzeń BLE: sudo bettercap -iface <interfejs> -caplet <caplet_file>.
  • Atak Man-in-the-Middle (MITM) na urządzenia BLE: sudo bettercap -iface <interfejs> -caplet <caplet_file>.
  • Przechwytywanie ruchu BLE: sudo bettercap -iface <interfejs> -caplet <caplet_file>.
  • Analiza ruchu BLE: sudo bettercap -iface <interfejs> -caplet <caplet_file>.

Caplets

Caplets to pliki konfiguracyjne, które można użyć do dostosowania zachowania Bettercap. Zawierają instrukcje dotyczące skanowania, ataków i przechwytywania ruchu BLE. Przykładowe caplets można znaleźć w katalogu /usr/local/share/bettercap/caplets.

Podsumowanie

Bettercap to potężne narzędzie do testowania penetracyjnego BLE, które oferuje wiele funkcji do skanowania, atakowania i analizowania ruchu BLE. Dzięki jego elastyczności i łatwości użycia, jest to niezastąpione narzędzie dla hakerów i testerów penetracyjnych.

# 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
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: