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
AppEnumGuard — CVE-2025-31207 mitigação e testador em sandbox para jailbreaks rootless e rootHide no iOS 15–18.4.1. | Kitploit
Ferramentas/GitHubGitHub/kolbicz/appenumguard
Ferramentas DefensivasSegurança iOSAnálise de VulnerabilidadesSegurança MóvelPrivacidade
GitHubkolbicz/appenumguard

AppEnumGuard

CVE-2025-31207 mitigação e testador em sandbox para jailbreaks rootless e rootHide no iOS 15–18.4.1.

Ver Repositório
5221há 17 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

AppEnumGuard

AppEnumGuard é um ajuste defensivo para o canal lateral de enumeração de aplicativos instalados, rastreado como CVE-2025-31207. Ele suporta ambientes de jailbreak convencionais sem root (rootless) e rootHide no iOS 15.0–18.4.1. O repositório também contém um aplicativo de teste iOS normal em sandbox que demonstra o resultado vulnerável e verifica a mitigação.

CVE-2025-31207

CVE-2025-31207 é uma vulnerabilidade de divulgação de informações na lógica de inicialização de aplicativos do FrontBoard da Apple. Um aplicativo em sandbox pode enviar identificadores de pacote arbitrários por meio de uma função privada de inicialização do SpringBoardServices e distinguir aplicativos instalados de aplicativos ausentes usando diferentes códigos de retorno. Isso pode revelar informações privadas sobre os aplicativos que um usuário instalou, incluindo aplicativos bancários, de mensagens, de segurança, de sideloading e relacionados a jailbreak.

A Apple descreve o problema como um problema de lógica que poderia permitir que um aplicativo enumerasse aplicativos instalados. A Apple corrigiu isso com verificações aprimoradas no iOS e iPadOS 18.5. Consequentemente, sistemas anteriores ao iOS 18.5 permanecem afetados no nível do sistema operacional.

Compatibilidade

ComponenteAlvo suportado
iOS15.0–18.4.1
JailbreakQualquer ambiente de jailbreak convencional sem root (rootless) ou rootHide
Arquitetura de bootstrap/pacoterootless / iphoneos-arm64; rootHide / iphoneos-arm64e
Arquitetura do dispositivoarm64 e arm64e (rootless); arm64e (rootHide)
PacoteInstale o pacote correspondente ao bootstrap do dispositivo

A compilação padrão usa Theos convencional sem root e inclui fatias arm64 e arm64e. A variante rootHide é compilada com rootHide Theos e contém os caminhos de loader .jbroot necessários do rootHide. Ambos os pacotes declaram firmware (>= 15.0) e firmware (<< 18.5): a mitigação é desnecessária no iOS 18.5 e versões mais recentes, onde a Apple corrigiu o CVE-2025-31207.

O ajuste v1.1 do lado do SpringBoard e o testador em sandbox foram verificados juntos no iOS 17.3.1 build 21D61 com injeção desabilitada para o testador. O testador detectou o vazamento com o ajuste removido e retornou um resultado verde (pass) após o ajuste ser instalado.

Como funciona

A primitiva publicada chama a função privada do SpringBoardServices SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions. Em um sistema vulnerável, ela retorna erros diferentes para um aplicativo instalado e um aplicativo ausente:

  • 9: o alvo existe, mas a inicialização é negada pela política
  • 7: o alvo não existe

O AppEnumGuard 1.1 injeta apenas no SpringBoard e faz hook no método comum de validação de confiança do FBSystemService. Quando uma solicitação de inicialização não autorizada retornaria o erro 3 de política de segurança do FBSOpenApplicationErrorDomain, o ajuste o altera para o erro 4 de aplicativo não encontrado. A API externa do SpringBoardServices então retorna 7 tanto para alvos instalados quanto ausentes.

A contagem de argumentos e a codificação de tipo Objective-C do método privado são validadas antes que o hook seja instalado. Se a Apple alterar a ABI, o AppEnumGuard falha de forma aberta (fail open) em vez de fazer hook em um método desconhecido do SpringBoard.

Mudança em relação à versão 1.0

A versão 1.0 fazia hook no SpringBoardServices dentro de todos os aplicativos UIKit. Funcionava, mas exigia injeção em todos os aplicativos protegidos; um aplicativo que desabilitasse ou detectasse a injeção poderia contornar a mitigação. A versão 1.1 move a aplicação para o SpringBoard, de modo que um único hook central protege os chamadores sem injetar o AppEnumGuard em seus processos.

Downloads da versão

A versão 1.2 pode ser compilada para qualquer um dos bootstraps:

  • AppEnumGuard_1.2_rootless_iphoneos-arm64.deb — ajuste convencional sem root (rootless)
  • AppEnumGuard_1.2_roothide_iphoneos-arm64e.deb — ajuste rootHide
  • AppEnumGuardTester_1.2_sandboxed.ipa — aplicativo de verificação em sandbox com ícone

Instalar e verificar

  1. Instale o .deb correspondente ao bootstrap rootless ou rootHide e faça respring.
  2. Instale o IPA do testador usando uma assinatura normal de desenvolvedor/sideloading.
  3. Deixe a injeção do AppEnumGuard desabilitada para AppEnum Test; a v1.1 o protege a partir do SpringBoard.
  4. Toque no ícone do WhatsApp, YouTube ou Spotify para um aplicativo que você sabe que está instalado.

Resultados esperados com o alvo selecionado instalado:

EstadoAlvoAusenteResultado do testador
Ajuste ausente97Vermelho / FALHA
Ajuste ativo77Verde / PASSOU

O testador reporta verde quando o aplicativo selecionado não é detectável e vermelho quando é detectável. Selecione apenas um aplicativo que você sabe que está instalado: 7 / 7 sozinho não pode distinguir uma mitigação funcional de um alvo que não existe.

O teste no dispositivo reproduziu ambos os estados com a injeção do testador desabilitada: desinstalar o ajuste produziu o resultado vermelho 9 / 7, enquanto instalar a v1.1 produziu o resultado verde 7 / 7.

Compilar o ajuste

Com o Theos padrão, a compilação padrão é convencional sem root (rootless):

root@kitploit:~
cd Tweak
make clean package FINALPACKAGE=1

Para rootHide, instale o rootHide Theos e execute:

root@kitploit:~
cd Tweak
THEOS=/path/to/theos-roothide \
  make clean package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=roothide

Compilar o IPA do testador

O testador é compilado com o SDK iPhoneOS do Xcode e não possui jailbreak ou entitlements elevados:

root@kitploit:~
./scripts/build-tester-ipa.sh

O IPA resultante é colocado em dist/. Ele é assinado ad-hoc, portanto um instalador pode re-assiná-lo com uma identidade de desenvolvimento normal. Não conceda a ele platform-application ou com.apple.private.security.no-sandbox, pois o teste é especificamente destinado a ser executado a partir de um sandbox de aplicativo normal.

Escopo e limitações

  • Esta é uma mitigação em espaço de usuário para a primitiva publicada do SpringBoardServices, não o patch completo do FrontBoard da Apple.
  • A versão 1.1 não exige injeção em aplicativos protegidos. Desabilitar a injeção globalmente ou para o próprio SpringBoard desabilitará a mitigação.
  • A implementação no lado do servidor é confirmada no iOS 17.3.1 build 21D61. Em outras versões suportadas, o ajuste instala seu hook apenas quando o seletor privado tem a ABI esperada validada em tempo de execução.
  • Um teste 7 / 7 é significativo apenas quando o aplicativo alvo é conhecido por estar instalado.
  • O testador chama intencionalmente uma API privada não documentada e não é adequado para submissão à App Store.

Referências

  • Conteúdo de segurança do iOS 18.5 da Apple
  • NVD: CVE-2025-31207
  • Prova de conceito pública original do SpringBoardServices
  • Documentação do desenvolvedor rootHide

Licença

MIT

Baixar ferramenta