Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
vphone-cli — Arranca y gestiona iPhones virtuales en Apple Silicon con parcheo de firmware, variantes de jailbreak y funciones de investigación de seguridad para pruebas y análisis de iOS. | Kitploit
Herramientas/GitHubGitHub/lakr233/vphone-cli
Seguridad iOSExplotaciónVirtualización de SeguridadPruebas de PenetraciónSeguridad MóvilAnálisis de Firmware
GitHublakr233/vphone-cli

vphone-cli

Arranca y gestiona iPhones virtuales en Apple Silicon con parcheo de firmware, variantes de jailbreak y funciones de investigación de seguridad para pruebas y análisis de iOS.

Ver Repositorio
8.8k1.2k11hace 4h 36mRevisado por Kitploit

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 →
Compartir
🇰🇷한국어 | 🇯🇵日本語 | 🇨🇳中文 | 🇬🇧English

vphone-cli

Arranca un iPhone virtual mediante el Virtualization.framework de Apple usando la infraestructura de VM de investigación PCC.

poc

Requisitos previos

Host:

  • Apple Silicon
  • macOS 15+ (Sequoia)
  • Xcode + iOS SDK (compila de forma cruzada el daemon invitado)
  • Relajación de SIP/AMFI para permitir entitlements privados PV=3 con binario sin firmar

Dependencias:

root@kitploit:~
brew install [email protected] aria2 wget gnu-tar openssl@3 ldid-procursus sshpass keystone cmake libusb ipsw zstd

Instalación

root@kitploit:~
brew install zqxwce/tap/vphone-cli

Compilación

root@kitploit:~
git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git

./scripts/setup_tools.sh      # instala dependencias, compila los submódulos de la toolchain, crea el venv de Python
./scripts/build.sh            # compila y firma vphone-cli, empaqueta el .app, compila de forma cruzada vphoned

cd .build/vphone-cli.app/Contents/MacOS/
vphone-cli --help

Inicio rápido

Un solo comando crea una VM de extremo a extremo (descarga → parcheo → restauración DFU → instalación de CFW → primer arranque):

root@kitploit:~
vphone-cli vm create myphone -V jb        # -V / --variant

vphone-cli vm launch myphone

Comandos

vphone-cli vm create ejecuta todo el pipeline; los pasos individuales que se muestran a continuación te permiten manejarlo manualmente o volver a ejecutar una etapa.

Gestión

root@kitploit:~
vphone-cli vm list                         # lista las VMs (--json para scripting)
vphone-cli vm info myphone                  # muestra una VM
vphone-cli vm new myphone                   # crea un bundle vacío (opciones de cpu/mem/disk)
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm clone myphone myphone-2       # clon APFS rápido, identidad de dispositivo nueva
vphone-cli vm export myphone --out myphone.tzst   # zstd rápido por defecto (--max = xz -9); --out puede ser un directorio (nombres automáticos <vm>.tzst/.txz); omite el directorio de restauración y los archivos de staging
vphone-cli vm import myphone.tzst --name restored
vphone-cli vm rename myphone iphone16
vphone-cli vm delete iphone16

Compilar una VM manualmente (lo que automatiza vm create)

root@kitploit:~
vphone-cli vm new myphone                              # 1. bundle vacío
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. descarga y fusiona los IPSW
vphone-cli fw patch myphone --variant jb                # 3. parchea la cadena de arranque

vphone-cli vm launch myphone --dfu &                    # 4. arranca en DFU (en segundo plano)
vphone-cli restore myphone --get-shsh                   #    obtiene el SHSH
vphone-cli restore myphone                              #    restauración DFU
vphone-cli vm stop myphone                              #    detiene el arranque DFU

vphone-cli cfw install myphone --variant jb             # 5. instala el CFW (montaje en host; pide sudo)
vphone-cli vm launch myphone                            # 6. primer arranque

Actualiza a un iOS más reciente apuntando fw prepare a un IPSW: --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw.

Variantes de firmware

Cinco variantes de parcheo con bypass de seguridad creciente — pasa una a --variant:

VarianteCadena de arranqueCFWNotas
less4 parches2 fasesSin parcheo — mantiene las mitigaciones de iOS activadas
regular42 parches10 fasesBypass de AMFI/SSV/Img4/TXM
dev53 parches12 fases+ bypass de entitlement/debug de TXM
jb113 parches14 fases+ jailbreak completo (Sileo, TrollStore auto-instalado en el primer arranque)
exp141 parches18 fasesSuperconjunto de JB + parches de investigación anti-detección de VM

Consulta research/0_binary_patch_comparison.md para el desglose por componente.

Ejecución y conexión

  • SSH (jailbreak): ssh -p 22222 mobile@<vm-ip> (contraseña alpine)
  • SSH (regular/dev): ssh -p 22222 root@<vm-ip>
  • VNC: vnc://<vm-ip>:5901

Ubicaciones

Todo lo que crea vphone-cli vive bajo ~/.vphone/ — se mantiene fuera del repositorio y del .app para que el bundle firmado siga siendo portable. Redirige todo el árbol con $VPHONE_ROOT:

RutaContenido
~/.vphone/La raíz de datos por usuario — sobrescribe toda la ubicación con $VPHONE_ROOT.
~/.vphone/VMs/Bundles de VM — un directorio por VM. Esta es la biblioteca; sobrescribe con $VPHONE_LIBRARY_ROOT.
~/.vphone/ipsws/IPSW de iPhone y cloudOS descargados, almacenados en caché y reutilizados entre VMs.
~/.vphone/tools/Artefactos de volumen sellado APFS en caché (apfs_sealvolume_<version>) obtenidos durante fw prepare.
~/.vphone/debs/Paquetes .deb en caché que la instalación de CFW jb/exp coloca en el invitado (Sileo, apt, …).
~/.vphone/venv/Entorno de Python aprovisionado automáticamente (consulta Python runtime; sobrescribe con $VPHONE_VENV_DIR).

Precedencia: las sobrescrituras por elemento ($VPHONE_LIBRARY_ROOT, $VPHONE_VENV_DIR) ganan sobre $VPHONE_ROOT, que gana sobre el valor predeterminado ~/.vphone. Las cachés ipsws/, tools/ y debs/ siempre se encuentran directamente bajo la raíz activa.

Relajación de SIP/AMFI

Opción A — desactiva SIP por completo y luego desactiva AMFI mediante boot-arg (la más permisiva).

En Recovery (mantén pulsado el botón de encendido → Terminal):

root@kitploit:~
csrutil disable
csrutil allow-research-guests enable

Luego reinicia en macOS y establece el boot-arg de AMFI (necesita SIP completamente desactivado para surtir efecto):

root@kitploit:~
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"   # reinicia después

Opción B — mantén SIP activado (solo relajado en debug) y luego incluye el binario en la lista blanca con amfidont (deja AMFI habilitado en todo el sistema).

En Recovery:

root@kitploit:~
csrutil enable --without debug
csrutil allow-research-guests enable

Luego reinicia en macOS y:

root@kitploit:~
vphone-amfidont         # .build/vphone-cli.app/Contents/Resources/vphone-amfidont para compilaciones locales

Entornos probados

HostiPhoneCloudOS
Mac16,11 27.0b217,3_18.6.2_22G10026.1-23B85
Mac16,8 26.5.117,3_26.0_23A34126.1-23B85
Mac16,8 26.5.117,3_26.0.1_23A35526.1-23B85
Mac16,12 26.317,3_26.1_23B8526.1-23B85
Mac16,12 26.317,3_26.3_23D12726.1-23B85
Mac16,12 26.317,3_26.3_23D12726.3-23D128
Mac16,12 26.317,3_26.3.1_23D813326.3-23D128
Mac16,11 26.217,3_26.4_23E24626.4-23E5207q
Mac16,11 26.217,3_26.5_23F7726.4-23E5207q
Mac16,11 27.0b217,3_26.5.2_23F8426.4-23E5207q
Mac16,6 26.4.117,3_26.6_23G7126.4-23E5207q
Mac16,11 27.0b217,3_26.6.1_23G8326.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5380h26.4-23E5207q
Mac16,6 26.4.117,3_27.0_24A5390f26.4-23E5207q
Mac16,6 26.6.117,3_27.0_24A5408d26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5418b26.4-23E5207q
Mac16,11 27.0b217,3_27.0_24A5424a26.4-23E5207q

FAQ

zsh: killed ./vphone-cli — las restricciones de AMFI/debug no están eludidas; consulta Requisitos previos (amfi_get_out_of_my_way=1 o amfidont).

Virtualization is not available on this hardware — tu Mac es en sí mismo una VM; el arranque de invitado PV=3 no puede anidarse. Usa un host macOS 15+ sin anidamiento.

Atascado en "Press home to continue" — conéctate mediante VNC y haz clic derecho (clic con dos dedos) para simular el botón de inicio.

Las apps del sistema no se instalan — durante la configuración de iOS, no elijas Japón o la UE como región (comprobaciones regulatorias adicionales que la VM no puede satisfacer); elige, por ejemplo, Estados Unidos.

La app falla al iniciar con EXC_GUARD / GUARD_TYPE_MACH_PORT — vuelve a parchear con vphone-cli fw patch <name> --variant <v> --force-exc-guard y luego vuelve a restaurar/instalar (#291). Siempre activo en bases de iOS 18.

Instalar un .ipa/.tipa — usa el menú de Instalación de la VM en ejecución (arrastrar y soltar o selector de archivos).

cfw install se cuelga al volver a firmar un binario del sistema (p. ej. Campo), con la memoria creciendo sin límite — error conocido en ldid-procursus hasta 2.1.5-procursus7 (el stable actual de Homebrew): bytes(uint64_t) llama a __builtin_clzll(0) sin protección contra cero, lo que es un comportamiento indefinido, y en esta compilación se resuelve en una longitud 0 que desborda un contador de bucle sin signo — ldid gira escribiendo un byte a la vez en un buffer en crecimiento en lugar de terminar. Lo desencadena cualquier plist de entitlements que contenga un valor entero de exactamente 0 (algunos binarios reales de Apple del sistema los tienen). Corregido upstream pero aún no en una versión etiquetada; recompila desde el código fuente: brew install --HEAD ldid-procursus && brew link --overwrite ldid-procursus. Mata primero el proceso ldid colgado (sudo kill -9 <pid>) si ya lo has encontrado.

Automatización

vphone-cli expone un socket de control del host (<bundle>/vphone.sock) para control programático — capturas de pantalla, toques, deslizamientos, teclas de hardware, portapapeles — cada acción devuelve una captura de pantalla en línea para pruebas E2E impulsadas por IA. Consulta vphone-mcp para un servidor MCP que lo envuelve.

Agradecimientos

  • wh1te4ever/super-tart-vphone-writeup
Descargar herramienta