Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
vphone-cli — Загружайте и управляйте виртуальными iPhone на Apple Silicon с патчингом прошивки, вариантами джейлбрейка и функциями для исследований в области безопасности при тестировании и анализе iOS. | Kitploit
Инструменты/GitHubGitHub/lakr233/vphone-cli
Безопасность iOSЭксплуатацияВиртуализация для безопасностиТестирование на ПроникновениеМобильная безопасностьАнализ Прошивок
GitHublakr233/vphone-cli

vphone-cli

Загружайте и управляйте виртуальными iPhone на Apple Silicon с патчингом прошивки, вариантами джейлбрейка и функциями для исследований в области безопасности при тестировании и анализе iOS.

Репозиторий
8.8k1.2k114 ч 36 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
🇰🇷한국어 | 🇯🇵日本語 | 🇨🇳中文 | 🇬🇧English

vphone-cli

Загрузите виртуальный iPhone через Apple's Virtualization.framework, используя инфраструктуру исследовательской VM PCC.

poc

Предварительные требования

Хост:

  • Apple Silicon
  • macOS 15+ (Sequoia)
  • Xcode + iOS SDK (кросс-компиляция гостевого демона)
  • Ослабление SIP/AMFI для разрешения приватных entitlements PV=3 с неподписанным бинарником

Зависимости:

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

Установка

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

Сборка

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

./scripts/setup_tools.sh      # установка зависимостей, сборка подмодулей toolchain, создание Python venv
./scripts/build.sh            # сборка + подпись vphone-cli, сборка .app, кросс-компиляция vphoned

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

Быстрый старт

Одна команда создаёт VM от начала до конца (загрузка → патч → DFU restore → установка CFW → первая загрузка):

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

vphone-cli vm launch myphone

Команды

vphone-cli vm create выполняет весь конвейер; отдельные шаги ниже позволяют управлять им вручную или перезапустить один этап.

Управление

root@kitploit:~
vphone-cli vm list                         # список VM (--json для скриптов)
vphone-cli vm info myphone                  # показать одну VM
vphone-cli vm new myphone                   # создать пустой bundle (опции cpu/mem/disk)
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm clone myphone myphone-2       # быстрый APFS clone, новая идентичность устройства
vphone-cli vm export myphone --out myphone.tzst   # zstd быстрый по умолчанию (--max = xz -9); --out может быть директорией (авто-имена <vm>.tzst/.txz); пропускает restore dir + staging files
vphone-cli vm import myphone.tzst --name restored
vphone-cli vm rename myphone iphone16
vphone-cli vm delete iphone16

Создание VM вручную (что автоматизирует vm create)

root@kitploit:~
vphone-cli vm new myphone                              # 1. пустой bundle
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. загрузка + объединение IPSW
vphone-cli fw patch myphone --variant jb                # 3. патч цепочки загрузки

vphone-cli vm launch myphone --dfu &                    # 4. загрузка в DFU (в фоне)
vphone-cli restore myphone --get-shsh                   #    получение SHSH
vphone-cli restore myphone                              #    DFU restore
vphone-cli vm stop myphone                              #    остановка DFU загрузки

vphone-cli cfw install myphone --variant jb             # 5. установка CFW (host-mount; запросит sudo)
vphone-cli vm launch myphone                            # 6. первая загрузка

Обновление до более новой iOS путём указания IPSW в fw prepare: --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw.

Варианты прошивки

Пять вариантов патчей с возрастающим обходом безопасности — передайте один в --variant:

ВариантЦепочка загрузкиCFWПримечания
less4 патча2 фазыБез патчей — сохраняет включённые механизмы защиты iOS
regular42 патча10 фазОбход AMFI/SSV/Img4/TXM
dev53 патча12 фаз+ обход TXM entitlement/debug
jb113 патчей14 фаз+ полный jailbreak (Sileo, TrollStore авто-установка при первой загрузке)
exp141 патч18 фазНадмножество JB + исследовательские патчи анти-VM-детекции

См. research/0_binary_patch_comparison.md для разбивки по компонентам.

Запуск и подключение

  • SSH (jailbreak): ssh -p 22222 mobile@<vm-ip> (пароль alpine)
  • SSH (regular/dev): ssh -p 22222 root@<vm-ip>
  • VNC: vnc://<vm-ip>:5901

Расположение файлов

Всё, что создаёт vphone-cli, находится в ~/.vphone/ — вне репозитория и .app, чтобы подписанный bundle оставался переносимым. Перенаправьте всё дерево с помощью $VPHONE_ROOT:

ПутьСодержимое
~/.vphone/Корень данных пользователя — переопределите всё расположение с помощью $VPHONE_ROOT.
~/.vphone/VMs/VM bundles — одна директория на VM. Это библиотека; переопределите с помощью $VPHONE_LIBRARY_ROOT.
~/.vphone/ipsws/Загруженные iPhone + cloudOS IPSW, кэшируемые и переиспользуемые между VM.
~/.vphone/tools/Кэшированные артефакты APFS seal-volume (apfs_sealvolume_<version>), полученные во время fw prepare.
~/.vphone/debs/Кэшированные .deb пакеты, которые установка CFW jb/exp размещает в гостевой системе (Sileo, apt, …).
~/.vphone/venv/Авто-подготавливаемое окружение Python (см. Python runtime; переопределите с помощью $VPHONE_VENV_DIR).

Приоритет: индивидуальные переопределения ($VPHONE_LIBRARY_ROOT, $VPHONE_VENV_DIR) имеют приоритет над $VPHONE_ROOT, который имеет приоритет над значением по умолчанию ~/.vphone. Кэши ipsws/, tools/ и debs/ всегда находятся непосредственно в активном корне.

Ослабление SIP/AMFI

Вариант A — полностью отключить SIP, затем отключить AMFI через boot-arg (наиболее разрешительный).

В Recovery (долгое нажатие питания → Terminal):

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

Затем перезагрузитесь в macOS и установите boot-arg AMFI (требует полностью отключённого SIP для вступления в силу):

root@kitploit:~
sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"   # перезагрузка после

Вариант B — оставить SIP включённым (только debug-ослабление), затем добавить бинарник в белый список с помощью amfidont (оставляет AMFI включённым во всей системе).

В Recovery:

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

Затем перезагрузитесь в macOS и:

root@kitploit:~
vphone-amfidont         # .build/vphone-cli.app/Contents/Resources/vphone-amfidont для локальных сборок

Протестированные окружения

ХостiPhoneCloudOS
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 — ограничения AMFI/debug не обойдены; см. Предварительные требования (amfi_get_out_of_my_way=1 или amfidont).

Virtualization is not available on this hardware — ваш Mac сам является VM; загрузка гостя PV=3 не может быть вложенной. Используйте не-вложенный хост macOS 15+.

Зависание на "Press home to continue" — подключитесь через VNC и щёлкните правой кнопкой мыши (двухпальцевый клик), чтобы имитировать кнопку «Домой».

Системные приложения не устанавливаются — при настройке iOS не выбирайте Японию или ЕС в качестве региона (дополнительные проверки регулирования, которые VM не может выполнить); выберите, например, США.

Приложение падает при запуске с EXC_GUARD / GUARD_TYPE_MACH_PORT — повторно пропатчите с помощью vphone-cli fw patch <name> --variant <v> --force-exc-guard, затем повторите restore/install (#291). Всегда включено для баз iOS 18.

Установка .ipa/.tipa — используйте меню Install запущенной VM (drag-drop или выбор файла).

cfw install зависает при повторной подписи системного бинарника (например, Campo), память растёт без ограничений — известная ошибка в ldid-procursus до 2.1.5-procursus7 (текущий Homebrew stable): bytes(uint64_t) вызывает __builtin_clzll(0) без zero-guard, что является неопределённым поведением, и в этой сборке приводит к длине 0, которая вызывает переполнение беззнакового счётчика цикла — ldid зацикливается, записывая по одному байту в растущий буфер, вместо завершения. Вызывается любым plist entitlements, содержащим целочисленное значение ровно 0 (некоторые реальные системные бинарники Apple имеют такие). Исправлено в upstream, но ещё не в tagged release; пересоберите из исходников: brew install --HEAD ldid-procursus && brew link --overwrite ldid-procursus. Сначала убейте зависший процесс ldid (sudo kill -9 <pid>), если вы уже столкнулись с этим.

Автоматизация

vphone-cli предоставляет управляющий сокет хоста (<bundle>/vphone.sock) для программного управления — скриншоты, касания, свайпы, аппаратные клавиши, буфер обмена — каждое действие возвращает встроенный скриншот для AI-управляемого E2E-тестирования. См. vphone-mcp для MCP-сервера, оборачивающего его.

Благодарности

  • wh1te4ever/super-tart-vphone-writeup
Скачать инструмент