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
GhostLock-for-OnePlus15T — Kernel-Exploit (CVE-2026-43499) für das OnePlus 15T mit nicht entsperrtem Bootloader | Kitploit
Tools/GitHubGitHub/cuteaplane/ghostlock-for-oneplus15t
Android-SicherheitPrivilege EscalationSchwachstellenanalyseExploitationMobile SicherheitPayload-EntwicklungBinary-Exploitation
GitHubcuteaplane/ghostlock-for-oneplus15t

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GhostLock-for-OnePlus15T

Kernel-Exploit (CVE-2026-43499) für das OnePlus 15T mit nicht entsperrtem Bootloader

Repository anzeigen
12146vor 1 MonatNoch nicht geprüft

GhostLock — OnePlus 15T

中文

Kernel-Exploit, der auf OnePlus-15T-Geräte mit gesperrtem Bootloader abzielt. Nutzt CVE-2026-43499, um Root-Zugriff zu erlangen, ohne den Bootloader zu entsperren oder boot.img zu verändern.

Nur für autorisierte Sicherheitsforschung und Bildungszwecke.

Geändert aus dem ursprünglichen GhostLock-for-OnePlus-Repository, angepasst an das physische Speicherlayout und CPU-Timing des OnePlus 15T (PLZ110 / SM8850 / Snapdragon 8 Elite).


Inhaltsverzeichnis

  • Übersicht über die Schwachstelle
  • Unterstützte Geräte
  • Voraussetzungen
  • Erstellung
  • Verwendung
  • Ausführungsmodi
  • Technische Details
  • Dateistruktur
  • Neue Geräte hinzufügen
  • FAQ

Übersicht über die Schwachstelle

PunktDetail
CVECVE-2026-43499
TypFutex-PI (Priority Inheritance) Use-After-Free
BetroffenLinux-Kernel 2.6.39 ~ 7.1
Behoben inMainline 7.1 (Commit 3bfdc63936dd)
Android-StatusGKI 6.12.x weiterhin verwundbar

Grundursache

Der Syscall pselect6 kopiert fd_set auf den Kernel-Stack. In Kombination mit dem Futex-PI-Waiter-Mechanismus kann ein freigewordener Stack-Frame als rt_mutex_waiter-Struktur neu zugewiesen werden. Während der PI-Kettendurchläufe schreibt das Rebalancing des rb-Baums kontrollierte Daten an beliebige Kernel-Adressen.

Kette

root@kitploit:~
futex PI UAF (CVE-2026-43499)
  ├─ Forge rt_mutex_waiter object
  ├─ Control kernel stack via pselect/select fd_set layout
  ├─ Trigger rt_mutex PI operation for arbitrary write
  ├─ Write 1: selinux_state.enforcing = 0
  └─ Write 2: cred → init_cred (uid=0, full capabilities)

Unterstützte Geräte

GerätCodenameSoCKernelFirmwareStatus
OnePlus 15TPLZ110SM8850 (Snapdragon 8 Elite)6.12.38-android16-5-g844001fb8721-ab14552068-4kColorOS 16.0.9.400✅ Verifiziert

Für Ace 6T und OnePlus 15 siehe das ursprüngliche Repository.


Voraussetzungen

ksud (erforderlich für KernelSU)

GhostLock übernimmt die Privilegieneskalation. Für die KernelSU-Installation wird ksud benötigt (gebündelt mit KMI-spezifischem kernelsu.ko):

QuelleHinweise
ReSukiSU APK (empfohlen)ReSukiSU installieren; das APK enthält libksud.so

Ohne ksud erhält der Exploit weiterhin eine Root-Shell mit uid=0, aber KernelSU wird nicht installiert und su bleibt nicht erhalten.


Erstellung

Voraussetzungen

  • Android-NDK (r25+)
  • ANDROID_NDK_HOME oder ANDROID_NDK_ROOT setzen

Erstellen

root@kitploit:~
# Default (API 35)
make

# Specify API level
make API=34

# Specify NDK path
NDK=/path/to/android-ndk make

Artefakt

ghostlock — statisch gelinkte ARM64-ELF-Binärdatei.


Verwendung

Einmalige Einrichtung

root@kitploit:~
# 1. Enable ADB TCP mode
adb tcpip 5555

# 2. Push ADB key (required for bootstrap mode)
adb push ~/.android/adbkey /data/local/tmp/a/adbkey

# 3. Push the exploit
adb push ghostlock /data/local/tmp/a/e
adb shell chmod 755 /data/local/tmp/a/e

Nach dem ersten Erfolg setzt resetprop automatisch persist.adb.tcp.port=5555, sodass bei späteren Neustarts vollautomatische Ausführungen möglich sind.


Ausführungsmodi

Voller Exploit (ADB-Shell-Kontext)

root@kitploit:~
/data/local/tmp/a/e
  • perf verfügbar, präzises Leaken der Child-task_struct
  • Zweistufig: W1 SELinux deaktivieren → W2 Privilegieneskalation → KernelSU laden

Bootstrap-Modus (App-Kontext, seccomp eingeschränkt)

root@kitploit:~
/data/local/tmp/a/e --bootstrap
  1. Write 1 → SELinux deaktivieren
  2. Freigegebene Berechtigungen nutzen, um per setprop ADB TCP 5555 zu aktivieren
  3. Eingebauter Mini-ADB-Client verbindet sich mit 127.0.0.1:5555
  4. RSA-Authentifizierung mit zuvor übertragenem Schlüssel
  5. Vollständige Exploit-Ausführung über die ADB-Shell (ohne seccomp)

Nur Write 1

root@kitploit:~
/data/local/tmp/a/e --write1
  • Bis zu 20 Versuche
  • Nützlich zum Debuggen oder zum vorübergehenden Deaktivieren von SELinux

Technische Details

1. Laufzeit-Kernel-Abgleich

Die Offsets sind in der Nachschlagetabelle src/devices/offsets.h gespeichert, mit uname -r als Schlüssel. Das Programm gleicht beim Start automatisch ab; unbekannte Kernel werden abgelehnt.

root@kitploit:~
static const struct kernel_offsets known_offsets[] = {
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14275539-4k", ...),
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14552068-4k", ...),
  OFFSETS_ENTRY("6.12.23-android16-5-...-ab14541642-4k", ...),
  { .uname_r = NULL }  /* sentinel */
};

Offset-Quellen

BTF-verifizierte Strukturen

2. KASLR-Bypass

SLIDE-Modus — boot_id-Leak

Wenn Kernel-Zeiger eingeschränkt sind (kptr_restrict), wird die Basisadresse über eine mit einer Kernel-Adresse überschriebene boot_id geleakt:

root@kitploit:~
Read /proc/sys/kernel/random/boot_id
  └─ UUID contains nfulnl_logger address
      └─ KASLR slide = leaked_addr - image_offset
          └─ kaslr_base

FOPS/CFI-Modus — Leak der fops-Tabelle

Wenn das ashmem-Gerät zugänglich ist, werden die Lese-/Schreib-Primitive von configfs verwendet, um Funktionszeiger aus der ashmem-fops-Tabelle zu lesen und den KASLR-Offset zu berechnen.

3. Kernel-Heap-Spray

Fälscht Kernel-Objekte auf Order-3-Seiten (32 KB):

  • Gefälschte file_operations — übernimmt den fops-Zeiger des ashmem-miscdevice
  • Gefälschter rt_mutex_waiter — simuliert Waiter-Knoten der PI-Kette
  • Gefälschte task_struct — Task-Referenz während des PI-Durchlaufs
  • Gefälschter rt_mutex (Sperre) — korrekte Waiter-/Owner-Informationen

Implementiert über SKB (Socket-Buffer) + KernelSnitch:

  • KernelSnitch — Futex-Hash-Kollision zum Leaken von mm_struct-Adressen
  • SKB-Spray — sendmsg zum Füllen des Kernel-Heaps

4. Physischer Speicherzugriff R/W (Pipe)

Nach Erhalt der KASLR-Basis werden Pipe-Puffer für den Speicherzugriff auf physischer Ebene verwendet:

root@kitploit:~
1. Locate pipe buffer in physmap
2. Forge pipe_buffer ops table pointing to known pipe_buf_ops
3. Hijack pipe_buffer.page to target physical address
4. Arbitrary physical read/write via normal pipe operations

Unterstützt: pipe_read64, pipe_write64, pipe_phys_read_data, pipe_phys_write_data

5. Zweistufiger Write

Write 1 — SELinux deaktivieren

root@kitploit:~
Target: selinux_state.enforcing (offset 0x00)
Method: child-node PI write → forge waiter __rb_parent_color
        pointing to selinux_enforcing - 8
        rb-tree rebalance writes 0x00

Write 2 — Root-Eskalation

root@kitploit:~
Target: child process cred pointer
Method: 1. fork child → perf_find_task() locate task_struct
        2. calculate cred field offset
        3. child-node PI write → cred = init_cred (uid=0, full caps)
        4. clear seccomp (TIF_SECCOMP + seccomp struct zeroed)

Nach der cred-Überschreibung wird eine Rückleseüberprüfung der Capabilities durchgeführt.

6. Eingebauter Mini-ADB-Client

src/core/miniadb.c — leichtgewichtiger ADB-Protokollclient für den Bootstrap-Modus:

root@kitploit:~
1. TCP connect 127.0.0.1:5555
2. A_CNXN → connection request
3. A_AUTH → RSA token challenge
4. dlopen("libcrypto.so") → PEM_read_bio_RSAPrivateKey → RSA_sign
5. A_AUTH (AUTH_SIGNATURE) → signed response
6. A_CNXN → connection established
7. A_OPEN "shell:/data/local/tmp/a/e" → full exploit

Unterstützt die Signaturalgorithmen SHA-1 und SHA-256.


Dateistruktur

root@kitploit:~
ghostlock-oneplus/
├── Makefile                        # Build configuration (NDK cross-compile)
├── README.md                       # Documentation
├── src/
│   ├── core/                       # Core exploit code
│   │   ├── main.c                  # Entry point: two-stage write + root shell
│   │   ├── fops.c                  # FOPS/CFI mode: pselect route, PI write, KASLR leak
│   │   ├── util.c                  # Utilities: heap spray, KASLR, kernel R/W primitives
│   │   ├── slide.c                 # SLIDE mode: boot_id KASLR leak + pselect route
│   │   ├── pipe.c                  # Pipe buffer physical memory R/W (physrw)
│   │   ├── root.c                  # Cred overwrite, seccomp clear, root child mgmt
│   │   ├── miniadb.c              # Built-in ADB client (TCP + RSA auth)
│   │   ├── common.h               # Global macros, structs, declarations, constants
│   │   ├── target.h               # Target memory layout / struct offsets / KASLR params
│   │   ├── offset.h               # Compile-time target config bridge (#include TARGET_CONFIG_H)
│   │   └── kernelsnitch/          # KernelSnitch — mm_struct address leak
│   │       ├── kernelsnitch.h     # Core algorithm: futex hash collision + brute-force
│   │       ├── futex_hash.h       # Futex hash function
│   │       ├── timeutils.h        # CPU timestamp measurement (RDTSC)
│   │       └── utils.h            # Helper macros (pr_info / SYSCHK / ASSERT etc.)
│   └── devices/                   # Device offset tables
│       ├── offsets.h              # Aggregate all device offsets (lookup table + sentinel)
│       ├── ace6t/offsets.h        # OnePlus Ace 6T offsets (2 kernel versions)
│       └── op15/offsets.h         # OnePlus 15 offsets (1 kernel version)
└── tools/                         # Offset extraction toolchain
    ├── extract_target.py          # Extract kallsyms global symbol offsets (28 items)
    └── extract_btf.py             # Extract BTF struct field offsets (57 items)

Übersicht der Kernmodule


Neue Geräte hinzufügen

Dieses Repository wurde modifiziert; weitere Details finden Sie im ursprünglichen Repository.


FAQ

F: Keine Ausgabe bei der Ausführung?

Stellen Sie sicher, dass Sie in einer ADB-Shell laufen. Im App-Kontext ist --bootstrap erforderlich.

F: „no offsets for this kernel“?

Ihre Kernel-Version wird noch nicht unterstützt. Folgen Sie Neue Geräte hinzufügen, um Offsets zu extrahieren und neu zu bauen.

F: Write 1 schlägt ständig fehl?

  • Sicherstellen, dass die Bindung an den richtigen CPU-Kern erfolgt (CORE-Makro)
  • Das Timing von PSELECT_ENTER_DELAY_USEC anpassen
  • Nach störenden Prozessen suchen

F: Write 2 perf liefert 0?

  • Prüfen, ob seccomp perf_event_open blockiert (im App-Kontext --bootstrap verwenden)
  • Verifizieren, dass der KASLR-Bypass erfolgreich war (kaslr_base gültig)

F: KernelSU lädt nicht?

  • Sicherstellen, dass ksud vorhanden und ausführbar ist
  • Integrität der Netzwerkrichtliniendatei prüfen (load_policy-Fix)

Lizenz

Nur für autorisierte Sicherheitsforschung und Bildungszwecke.

Tool herunterladen
CI-ReleaseVon ReSukiSU CI herunterladen (ksud-aarch64-linux-android.zip)
TypAnzahlExtraktion
Globale kallsyms-Symbole28tools/extract_target.py
BTF-Strukturfelder57tools/extract_btf.py
Abgeleitete Werte9Automatisch berechnet
Feste Konstanten12Hartkodiert
StrukturFelderZweck
task_struct17Prozessdeskriptor, cred, seccomp
rt_mutex_waiter6UAF-Forge-Ziel
cred4Anmeldeinformationen, Capabilities
seccomp3Seccomp-Filterstatus
pipe_inode_info11Pipe-Puffer-Operationen
file_operations13Gefälschte fops-Tabelle
mm_struct1Speicherdeskriptor-Eigentümer
ModulDatei(en)Verantwortung
Einstiegmain.cCLI-Parsing, W1/W2-Dispatch, Bootstrap-Ablauf
PI-Routefops.c / slide.cpselect/select-Stack-Layout, Futex-PI-Kettenmanipulation
KASLRutil.c / fops.c / slide.cDual-Mode-Bypass: boot_id-Leak + fops-Tabellen-Leak
Heap-Sprayutil.cOrder-3-Seitenallokation, SKB-Spray, Forge-Objektlayout
Phys R/Wpipe.cPipe-Puffer-Übernahme, beliebiger physischer Speicherzugriff
Privilegieneskalationroot.ccred-Überschreibung, Capability-Überprüfung, seccomp-Entfernung
ADBminiadb.cLeichtgewichtiger ADB-Protokollclient, RSA-Auth
Leak-Enginekernelsnitch/Futex-Hash-Kollision zur mm_struct-Lokalisierung