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
ABrake27 — iOS 27 kernelcache RE: mapa de despacho de SEP, diff de AMFI, flujo de trabajo en Ghidra | Kitploit
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
34hace 1 díaAú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 Desarrollador de AMFI en iOS (arm64/arm64e)

Platform Build Arch

Kit de herramientas de nivel investigación. Compara el firmware de iOS 27.0.1 vs 27.2, realiza ingeniería inversa de 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 Desarrollador en iOS 27.0.1 a través del protocolo lockdown estándar de Apple (verificado como persistente a nivel de kernel).


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 slot de IOExternalMethodDispatch, se identificó selector 11 = armSecurityBootMode.
  • PoC en C autónomo — poc/poc.c abre AppleMobileFileIntegrity/AppleCredentialManager, llama a armSecurityBootMode y registra el resultado. Sin el lastre de Foundation/UIKit — C puro + IOKit.
  • Compilador cruzado para Linux — poc/build_ipa.sh produce un .ipa firmado en CachyOS/Arch usando clang + ld64.lld + ldid. Cero dependencias de Apple/Xcode.

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

La cadena de activación del Modo 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 muestra 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

Elimina 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

actionSignificadoEfecto
0revealMuestra el interruptor del Modo Desarrollador en Ajustes
1enableEstablece el flag, reinicia el dispositivo
2acceptConfirmació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

Instalación en el 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 CoreDevice / DVT desde Linux (run_dvt.sh)

Existe una segunda vía, sin IPA: compilar de forma cruzada el binario IOKit autónomo en Linux y enviarlo al dispositivo a través del túnel CoreDevice / RSD de iOS 17+, para luego ejecutarlo con el servicio de control de procesos DVT (fuera del App Sandbox — sin installd, sin IPA de 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 desarrollo — véase HANDOFF.md «Сессия 12». Nótese también que la ruta IOKit del PoC (AppleMobileFileIntegrity selector 11) requiere el entitlement restringido a la 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 cada 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

Autodetecta clang-20...15, ld64.lld/lld, llvm-lipo, ldid. Fallback elegante: arm64e → arm64 si la toolchain carece de soporte ptrauth.


Estructura del repositorio

Descargar herramienta