Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/vvirei333/abrake27
Seguridad iOSAnálisis de VulnerabilidadesExplotaciónPentesting de Apps MóvilesIngeniería InversaSeguridad MóvilAnálisis de BinariosPapers e InvestigaciónAprendizaje y EducaciónDesarrollo de PayloadsAnálisis de Firmware
7184hace 21 díasAún no revisado

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 →
GitHub
vvirei333/abrake27

ABrake27

iOS 27 kernelcache RE: mapa de despacho de SEP, diff de AMFI, flujo de trabajo en Ghidra

Ver Repositorio
Compartir

ABrake27

Compilador cruzado nativo de Linux + PoC para la activación del Modo de Desarrollador de AMFI en iOS (arm64/arm64e)

Platform Build Arch

Kit de herramientas de nivel de investigación. Compara el firmware de iOS 27.0.1 frente al 27.2, aplica ingeniería inversa a la tabla de despacho de IOUserClient de AMFI, compila de forma cruzada un PoC de IOKit bare-metal desde Linux —sin necesidad de Xcode— y habilita el Modo de Desarrollador en iOS 27.0.1 a través del protocolo lockdown estándar de Apple (verificado como persistente a nivel de kernel). Hallazgo principal actual: endurecimiento silencioso contra desbordamientos de ASTC/DDS en ImageIO, estructuralmente alcanzable desde la ruta de decodificación genérica — cadena de MediaAnalysis rastreada hasta ASTCReadPlugin::initialize (Sesiones 28–31).


Qué es esto

  • Diff de firmware IPS — kernelcache, kexts, sandbox, entitlements entre iOS 27.0.1 y 27.2 (iPhone 14,5).
  • Ingeniería inversa de la tabla de despacho de AMFI — se mapeó cada ranura de IOExternalMethodDispatch, se identificó selector 11 = armSecurityBootMode.
  • PoC autónomo en C — poc/poc.c abre AppleMobileFileIntegrity/AppleCredentialManager, invoca armSecurityBootMode y registra el resultado. Sin el lastre de Foundation/UIKit — C puro + IOKit.
  • Compilador cruzado para Linux — poc/build_ipa.sh genera un .ipa firmado en CachyOS/Arch usando clang + ld64.lld + ldid. Cero dependencias de Apple/Xcode.

Cómo habilitar el Modo de Desarrollador en iOS 27.0.1 (sin jailbreak, sin código sin firmar)

La cadena del interruptor del Modo de Desarrollador de iOS puede controlarse enteramente a través del protocolo lockdown estándar de Apple (com.apple.amfi.lockdown). Sin jailbreak, sin IPA, sin falsificación de entitlements — solo pymobiledevice3 en Linux.

Verificado: tras la cadena que se describe a continuación, mounter query-developer-mode-status → true y el DeveloperDiskImage se montó en /System/Developer — y ambos sobrevivieron a un reinicio independiente (las mismas comprobaciones antes volvían a false, por lo que la persistencia es la prueba real; véase FINDINGS_LOCK.md).

Requisito previo

Eliminar el código de acceso (Ajustes → Face ID y código → Desactivar código). Con un código de acceso establecido, AMFI responde a action=1/action=2 con Device has a passcode set.

Pasos

# 1) enable → action=1 → REBOOT #1
flatpak-spawn --host python3 -m pymobiledevice3 amfi enable-developer-mode

# 2) after the device boots: post-restart accept → action=2 → REBOOT #2
#    (the CLI has no separate accept command — call the service method directly,
#     e.g. via poc/verify_now2.py)

# 3) reveal the Settings toggle → action=0
flatpak-spawn --host python3 -m pymobiledevice3 amfi reveal-developer-mode

Verificación (a nivel de kernel, independiente del servicio AMFI)

flatpak-spawn --host python3 -m pymobiledevice3 mounter query-developer-mode-status   # → true
flatpak-spawn --host python3 -m pymobiledevice3 mounter list                           # → IsMounted: true, /System/Developer
flatpak-spawn --host python3 -m pymobiledevice3 mounter auto-mount                    # → DeveloperDiskImage mounted successfully

Resumen del protocolo

acciónSignificadoEfecto
0revelarMuestra el interruptor de Modo Desarrollador en Ajustes
1habilitarEstablece el flag, reinicia el dispositivo
2aceptarConfirmación tras el reinicio, reinicia de nuevo

⚠️ pymobiledevice3 cortocircuita: si el estado ya es true, enable-developer-mode solo registra "Developer mode is already enabled" y no envía nada. Los dos reinicios son parte del protocolo de Apple, no algo incidental.


Inicio rápido (Linux → iPhone en 4 minutos)

Requisitos previos (CachyOS / Arch)

sudo pacman -S clang lld zip          # compiler + Mach-O linker
yay -S ldid                           # entitlement injector (AUR)
# iOS SDK:
mkdir -p poc/SDK
git clone https://github.com/theos/sdks poc/tmp && mv poc/tmp/iPhoneOS*.sdk poc/SDK/iPhoneOS.sdk

Compilación

cd poc
IOS_SDK=/path/to/iPhoneOS.sdk ./build_ipa.sh
# Output: EnableAMFIDevMode.ipa

Instalar en iPhone

# Via ideviceinstaller (libimobiledevice):
ideviceinstaller --install EnableAMFIDevMode.ipa

# Via TrollStore (if jailbroken/CT-bypass device):
# → TrollStore app → "+" → pick EnableAMFIDevMode.ipa

# Via SideStore/AltStore:
# → Add to SideStore → sign with your Apple ID

Ejecución

# On device (SSH / NewTerm):
./EnableAMFIDevMode 1
cat /tmp/amfi_devmode_poc.log
# Then REBOOT to activate Developer Mode

Alternativa: lanzamiento de CoreDevice / DVT desde Linux (run_dvt.sh)

Existe una segunda ruta, sin IPA: compilar de forma cruzada el binario IOKit independiente en Linux y enviarlo al dispositivo a través del túnel CoreDevice / RSD de iOS 17+, luego ejecutarlo con el servicio de control de procesos DVT (fuera del App Sandbox — sin installd, sin IPA con firma gratuita).

./run_dvt.sh enable      # build (clang + ld64.lld) → deploy → `dvt launch --stream`

run_dvt.sh automatiza toda la cadena:

  1. inicia/verifica usbmuxd, comprueba el dispositivo con ideviceinfo (libimobiledevice);
  2. compila de forma cruzada poc/poc.c a un Mach-O arm64 puro (sin toolchain de Apple): clang -c → ld64.lld -platform_version ios … -syslibroot … -undefined dynamic_lookup; la versión del SDK se lee del SDKSettings.plist binario mediante plistlib;
  3. abre un túnel RSD en espacio de usuario (pymobiledevice3) e invoca dvt launch --stream.

Estado: la compilación cruzada en Linux funciona (se produce un Mach-O arm64 real). El paso de despliegue en el dispositivo sigue en WIP — véase HANDOFF.md «Сессия 12». Nótese también que la ruta IOKit del PoC (selector 11 de AppleMobileFileIntegrity) requiere el entitlement restringido a plataforma com.apple.private.amfi.developer-mode-control, por lo que un binario no firmado por Apple será rechazado por el userclient incluso cuando se lance vía DVT — la forma soportada de habilitar el Modo Desarrollador es el protocolo lockdown documentado arriba.


Cómo funciona

Dos pasos limpios por slice de arquitectura (evita que el driver de clang se trague -arch/-platform_version al delegar en ld64.lld):

  1. clang -c — objeto Mach-O, sin enlazado
  2. ld64.lld — ejecutable con -arch arm64 -platform_version ios <min> <sdk> explícitos

Detecta automáticamente clang-20...15, ld64.lld/lld, llvm-lipo, ldid. Fallback elegante: arm64e → arm64 si el toolchain carece de soporte ptrauth.


Estructura del repositorio

Descargar herramienta