Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BTLE — Bluetooth Low Energy (BLE) Paket-Sniffer und -Sender für Standard- und Nicht-Standard-Übertragungen (Raw Bit), basierend auf Software Defined Radio (SDR). | Kitploit
Tools/GitHubGitHub/jiaoxianjun/btle
Paket-Sniffing & AnalyseBluetooth-SicherheitIoT-SicherheitDrahtlose SicherheitTop in Bluetooth-Sicherheit Nr.6
GitHubjiaoxianjun/btle

BTLE

Bluetooth Low Energy (BLE) Paket-Sniffer und -Sender für Standard- und Nicht-Standard-Übertragungen (Raw Bit), basierend auf Software Defined Radio (SDR).

Repository anzeigen
93017411vor 3 MonatenVon Kitploit geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BTLE

BTLE ist eine freie und quelloffene Software-Suite für Bluetooth Low Energy (BLE) mit Software Defined Radio sowie ein offener BTLE-Chipentwurf.

Es umfasst:

  • BTLE-Basisband: Beschreibung der Algorithmen, Python- und Verilog-Implementierung, FPGA- und SkyWater-130-PDK-Ergebnisse (OpenLane2-Workflow).
  • Analog Devices AD9361 + Xilinx Zynq FPGA-Implementierung: FPGA Bluetooth
  • btle_rx – BLE-Sniffer. Neben dem Mithören von Broadcast-/Festkanälen kann er auch das Kanal-Hopping einer Kommunikationsverbindung verfolgen.
  • btle_tx – Universeller BLE-Paket-Sender. Neben dem BLE-Standard unterstützt er auch einen Rohbitmodus, um beliebige GFSK-Pakete zu erzeugen. Auf diese Weise können Sie nicht-standardisierte Protokolle oder Protokolle in der Diskussion testen, bevor ein Chip auf den Markt kommt.

Funktionen

  • PHY und obere Schichten sind in Software (C-Sprache) implementiert. Volle Software-Defined-Radio-Flexibilität.
  • BLE-Standard-PHY mit 1 Mbit/s GFSK.
  • Alle Link-Layer-Paketformate der ADV- und DATA-Kanäle gemäß Core_V4.0 (Kapitel 2&3, Teil B, Band 6) werden unterstützt.
  • Der Sniffer kann Kanal-Hopping-Muster automatisch analysieren und verfolgen – nicht beschränkt auf Broadcast-Kanal oder festen Kanal.

Hardware

  • HackRF
  • bladeRF
  • kompatible Version der HackRF- und bladeRF-Bibliotheken
  • Build und Schnelltest

    Stellen Sie sicher, dass Ihre SDR-Hardwareumgebung (Treiber/Bibliothek) korrekt eingerichtet ist, bevor Sie dieses Projekt ausführen.

    root@kitploit:~
    git clone https://github.com/JiaoXianjun/BTLE.git
    cd BTLE/host
    mkdir build
    cd build
    cmake ../                   (default. für HackRF)
    cmake ../ -DUSE_BLADERF=1   (nur für bladeRF)
    
    make
    ./btle-tools/src/btle_rx
    

    Der obige Befehl führt einen Sniff auf Kanal 37 aus. Sie sollten viele Pakete auf dem Bildschirm sehen, wenn sich BLE-Geräte (Telefon/Tablet/Laptop) in der Nähe befinden.

    root@kitploit:~
    ./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r500 
    

    Der obige Befehl sendet Discovery-Pakete auf dem ADV-Kanal. Sie sollten in einer anderen BLE-Sniffer-App (z. B. LightBlue) ein Gerät mit dem Namen „SDR/Bluetooth/Low/Energy“ sehen.

    Für eine schnellere Betriebssequenz auf HACKRF verwenden Sie Folgendes:

    root@kitploit:~
    #define TRANSFER_COUNT 4
    #define TRANSFER_BUFFER_SIZE 4096
    

    in hackrf/host/libhackrf/src/hackrf.c. Kompilieren Sie dann die HACKRF-Bibliothek neu und installieren Sie sie erneut. Vergessen Sie nicht, BTLE neu zu kompilieren, damit die Änderung an der HACKRF-Bibliothek übernommen wird.

    Neben den Werkzeugen enthält das Verzeichnis matlab Algorithmusbewertung und andere nützliche Skripte

    btle_rx Verwendung

    root@kitploit:~
    -h --help
    

    Alle Argumente/Verwendungsmöglichkeiten ausgeben.

    root@kitploit:~
    -c --chan
    

    Kanalnummer. Standardwert 37 (einer der ADV-Kanäle). Gültiger Wert 0–39 (alle ADV- und DATA-Kanäle).

    root@kitploit:~
    -g --gain
    

    Rx-Verstärkung in dB. HACKRF-rxvga-Standard 6, gültig 0–62. bladeRF-Standard ist maximale Rx-Verstärkung 66 dB (gültig 0–66). Die Verstärkung sollte sehr sorgfältig eingestellt werden, um unter Ihren Bedingungen die beste Leistung zu erzielen. Empfehlung: Beginnen Sie mit niedriger Verstärkung, da hohe Verstärkung immer starke Verzerrungen verursacht und nichts bringt.

    root@kitploit:~
    -l --lnaGain
    

    LNA-Verstärkung in dB (nur HackRF). Standard 32, gültig 0–40. Die Verstärkung sollte sehr sorgfältig eingestellt werden, um unter Ihren Bedingungen die beste Leistung zu erzielen.

    root@kitploit:~
    -b --amp
    

    Verstärker aktivieren (nur HackRF). Standardmäßig aus.

    root@kitploit:~
    -a --access
    

    Access-Adresse. Standard 8e89bed6 für ADV-Kanal 37 38 39. Sie sollten den korrekten Wert für den Datenkanal gemäß dem erfassten Verbindungsaufbau angeben.

    root@kitploit:~
    -k --crcinit
    

    Standard 555555 für ADV-Kanal. Sie sollten den korrekten Wert für den Datenkanal gemäß dem erfassten Verbindungsaufbau angeben.

    root@kitploit:~
    -v --verbose
    

    Ausführlicher Modus. Gibt bei Fehlern weitere Informationen aus

    root@kitploit:~
    -r --raw
    

    Rohmodus. Nachdem die Access-Adresse erkannt wurde, werden die folgenden rohen 42 Bytes ausgegeben (ohne Entwürfelung, ohne Parsen)

    root@kitploit:~
    -f --freq_hz (benötigt Argument)
    

    Diese Frequenz (Hz) überschreibt die Kanaleinstellung (falls jemand auf einer anderen Frequenz als BTLE arbeiten möchte. Allgemeinerer Zweck).

    root@kitploit:~
    -m --access_mask (benötigt Argument)
    

    Wenn ein Bit in dieser Maske 1 ist, wird das entsprechende Bit der Access-Adresse bei der Entscheidung über das Vorhandensein eines Pakets berücksichtigt (falls jemand ein kürzeres/dünneres eindeutiges Wort für die Paketerkennung verwenden möchte. Allgemeinerer Zweck).

    root@kitploit:~
    -o --hop
    

    Aktiviert die Datenkanal-Verfolgung (Frequenzsprung), nachdem die Verbindungsaufbauinformationen im ADV_CONNECT_REQ-Paket auf dem ADV-Kanal erfasst wurden.

    root@kitploit:~
    -s --filename
    

    Speichert Pakete in eine pcap-Datei.

    btle_tx Verwendung

    root@kitploit:~
    btle_tx packet1 packet2 ... packetX ...  rN
    

    oder

    root@kitploit:~
    btle_tx packets.txt
    

    packets.txt ist eine Textdatei, die den Text der Befehlszeilenparameter (packet1 packet2 ... rN) enthält. Ein Parameter pro Zeile. Eine Zeile, die mit „#“ beginnt, wird als Kommentar betrachtet. Siehe packets.txt-Beispiel

    root@kitploit:~
    packetX 
    

    ist eine Zeichenkette, die ein Paket beschreibt. Alle Pakete bilden eine Paketsequenz.

    root@kitploit:~
    rN
    

    bedeutet, dass die Sequenz N-mal wiederholt wird. Wenn sie nicht angegeben ist, wird die Sequenz nur einmal gesendet.

    packetX-Zeichenkettenformat

    root@kitploit:~
    channel_number-packet_type-field-value-field-value-...-Space-value
    

    Jede Deskriptorzeichenkette beginnt mit der BTLE-Kanalnummer (0–39), gefolgt vom packet_type (RAW/iBeacon/ADV_IND/ADV_DIRECT_IND/usw. Siehe alle Formatbeispiele AM ENDE: Anhang ), dann gefolgt von einem Feld-Wert-Paar, das für den packet_type spezifisch ist; am Ende gibt es ein Space-Wert-Paar (optional), wobei der Wert angibt, wie viele Millisekunden nach dem Senden dieses Pakets gewartet wird.

    Verwenden Sie KEINE Leerzeichen „ “ in einem Befehlszeilen-Paketdeskriptor. In der TXT-Datei können Sie Leerzeichen verwenden.

    Verwenden Sie KEIN „-“ innerhalb eines Feldes. „-“ ist ein Sonderzeichen, das zur Trennung verschiedener Felder im Paketdeskriptor verwendet wird.

    • btle_tx-Beispiel: Discovery-Pakete

    Öffnen Sie vor diesem Befehl die LightBlue-App (oder einen anderen BLE-Sniffer) auf Ihrem iPhone/Gerät:

    root@kitploit:~
    ./btle-tools/src/btle_tx ../btle-tools/src/packets_discovery.txt
    

    Sie werden in der LightBlue-App ein Gerät mit dem Namen „SDR Bluetooth Low Energy“ sehen.

    Zugehörige Befehlszeile:

    root@kitploit:~
    ./btle-tools/src/btle_tx 37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-LOCAL_NAME09-SDR/Bluetooth/Low/Energy r40
    

    Hinweis: Das Leerzeichen „ “ wird durch „/“ ersetzt, da Leerzeichen in der Befehlszeile nicht unterstützt werden.

    • btle_tx-Beispiel: Verbindungsaufbau
    root@kitploit:~
    btle_tx 37-ADV_IND-TxAdd-0-RxAdd-0-AdvA-90D7EBB19299-AdvData-0201050702031802180418-Space-1      37-CONNECT_REQ-TxAdd-0-RxAdd-0-InitA-001830EA965F-AdvA-90D7EBB19299-AA-60850A1B-CRCInit-A77B22-WinSize-02-WinOffset-000F-Interval-0050-Latency-0000-Timeout-07D0-ChM-1FFFFFFFFF-Hop-9-SCA-5-Space-1     9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22-Space-1
    

    Oben wird ein Verbindungsaufbau zwischen Gerät 1 und Gerät 2 simuliert. Zugehörige Deskriptordatei: BTLE/host/btle-tools/src/packets.txt.

    Das 1. Paket – Gerät 1 sendet ein ADV_IND-Paket auf Kanal 37.

    Das 2. Paket – Nachdem Gerät 2 (im Scan-Zustand) das ADV-Paket von Gerät 1 empfangen hat, sendet Gerät 2 ein CONNECT_REQ-Paket, um den Verbindungsaufbau mit Gerät 1 anzufordern. In diesem Anforderungspaket sind die MAC-Adresse von Gerät 2 (InitA), die Ziel-MAC-Adresse (MAC-Adresse von Gerät 1, AdvA), die Access-Adresse (AA), die Gerät 1 beim folgenden Senden auf dem Datenkanal verwenden wird, der CRC-Initialisierungswert für das folgende von Gerät 1 gesendete Paket, die Hopping-Kanalinformationen (ChM und Hop) für den von Gerät 1 verwendeten Datenkanal usw. enthalten.

    Das 3. Paket – Gerät 1 sendet gemäß den von Gerät 2 empfangenen Verbindungsanforderungsinformationen eine leere Link-Layer-Daten-PDU auf Kanal 9 (festgelegt durch das Hopping-Schema). („XX“ nach dem Feld „DATA“ bedeutet, dass für dieses Feld keine Daten vorhanden sind.)

    Der zeitliche Abstand zwischen den Paketen beträgt 1 s (1000 ms). Stellen Sie den Packet-Sniffer von TI auf Kanal 37 ein; dann wird der obige Verbindungsaufbau erfasst.

    • btle_tx-Beispiel: iBeacon
    root@kitploit:~
    ./btle-tools/src/btle_tx 37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100     r100
    

    Der obige Befehl sendet ein iBeacon-Paket und wiederholt es 100-mal mit einem zeitlichen Abstand von 100 ms. Zugehörige Deskriptordatei: BTLE/host/btle-tools/src/packets_ibeacon.txt. Sie können einen BLE-Sniffer-Dongle verwenden, um das Paket zu sehen.

    Die Paketdeskriptorzeichenkette:

    root@kitploit:~
    37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100
    
    root@kitploit:~
    37
    

    Kanal 37 (einer der BTLE-Werbekanäle 37 38 39)

    root@kitploit:~
    iBeacon
    

    Schlüsselwort für das Paketformat, das das iBeacon-Format bedeutet. (Eigentlich ist es das ADV_IND-Format in Core_V4.0.pdf)

    root@kitploit:~
    AdvA
    

    Advertising-Adresse (MAC-Adresse), die auf 010203040506 gesetzt ist (siehe Core_V4.0.pdf)

    root@kitploit:~
    UUID
    

    hier geben wir die feste UUID von Estimote an: B9407F30F5F8466EAFF925556B57FE6D

    root@kitploit:~
    Major
    

    Major-Nummer des iBeacon-Formats. (Hier ist sie 0008)

    root@kitploit:~
    Minor
    

    Minor-Nummer des iBeacon-Formats. (Hier ist sie 0009)

    root@kitploit:~
    Txpower
    

    Sendeleistungsparameter des iBeacon-Formats (Hier ist er C5)

    root@kitploit:~
    Space
    

    Wie viele Millisekunden nach dem Senden dieses Pakets gewartet wird. (Hier sind es 100 ms)

    Demos

    Siehe einen Vergleich mit dem Packet-Sniffer von TI hier: http://sdr-x.github.io/BTLE-SNIFFER/

    Siehe btle_rx-Videodemo oder btle_rx-Videodemo (in China) und btle_tx-Videodemo 1 oder btle_tx-Videodemo 2 (in China)

    Appendix: Packet descriptor examples of btle_tx for all formats


    RAW-Pakete: (Alle Bits werden direkt an den GFSK-Modulator gesendet)

    root@kitploit:~
    37-RAW-aad6be898e8dc3ce338c4cb1207730144f9474e0e15eedb378c3bc
    

    Pakete des Advertising-Kanals (z. B. Kanal 37):

    root@kitploit:~
    37-IBEACON-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5
    37-ADV_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
    37-ADV_DIRECT_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-InitA-0708090A0B0C
    37-ADV_NONCONN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
    37-ADV_SCAN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
    37-SCAN_REQ-TxAdd-1-RxAdd-0-ScanA-010203040506-AdvA-0708090A0B0C
    37-SCAN_RSP-TxAdd-1-RxAdd-0-AdvA-010203040506-ScanRspData-00112233445566778899AABBCCDDEEFF
    37-CONNECT_REQ-TxAdd-1-RxAdd-0-InitA-010203040506-AdvA-0708090A0B0C-AA-01020304-CRCInit-050607-WinSize-08-WinOffset-090A-Interval-0B0C-Latency-0D0E-Timeout-0F00-ChM-0102030405-Hop-3-SCA-4
    

    Pakete des Datenkanals (z. B. Kanal 9):

    root@kitploit:~
    9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-XX-CRCInit-A77B22
    9-LL_CONNECTION_UPDATE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-WinSize-02-WinOffset-0e0F-Interval-0450-Latency-0607-Timeout-07D0-Instant-eeff-CRCInit-A77B22
    9-LL_CHANNEL_MAP_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ChM-1FFFFFFFFF-Instant-0201-CRCInit-A77B22
    9-LL_TERMINATE_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-12-CRCInit-A77B22
    9-LL_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-Rand-0102030405060708-EDIV-090A-SKDm-0102030405060708-IVm-090A0B0C-CRCInit-A77B22
    9-LL_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-SKDs-0102030405060708-IVs-01020304-CRCInit-A77B22
    9-LL_START_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
    9-LL_START_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
    9-LL_UNKNOWN_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-UnknownType-01-CRCInit-A77B22
    9-LL_FEATURE_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
    9-LL_FEATURE_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
    9-LL_PAUSE_ENC_REQ-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
    9-LL_PAUSE_ENC_RSP-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-CRCInit-A77B22
    9-LL_VERSION_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-VersNr-01-CompId-0203-SubVersNr-0405-CRCInit-A77B22
    9-LL_REJECT_IND-AA-60850A1B-LLID-3-NESN-0-SN-0-MD-0-ErrorCode-00-CRCInit-A77B22
    

    Discovery-Pakete: (die in einer Scanner-App wie LightBlue beliebige Namen oder Dienste anzeigen können):

    root@kitploit:~
    37-DISCOVERY-TxAdd-1-RxAdd-0-AdvA-010203040506-FLAGS-02-LOCAL_NAME09-CA-TXPOWER-03-SERVICE03-180D1810-SERVICE_DATA-180D40-MANUF_DATA-0001FF-CONN_INTERVAL-0006 (-SERVICE_SOLI14-1811)
    
    FLAGS: 0x01 LE Limited Discoverable Mode; 0x02 LE General Discoverable Mode
    SERVICE:
    0x02 16-Bit-Dienst-UUIDs Weitere 16-Bit-UUIDs verfügbar
    0x03 16-Bit-Dienst-UUIDs Vollständige Liste der 16-Bit-UUIDs verfügbar
    0x04 32-Bit-Dienst-UUIDs Weitere 32-Bit-UUIDs verfügbar
    0x05 32-Bit-Dienst-UUIDs Vollständige Liste der 32-Bit-UUIDs verfügbar
    0x06 128-Bit-Dienst-UUIDs Weitere 128-Bit-UUIDs verfügbar
    0x07 128-Bit-Dienst-UUIDs Vollständige Liste der 128-Bit-UUIDs verfügbar
    
    Tool herunterladen