
Эксплойт-цепочка, использующая обход каталога и восстановление iOS для перезаписи защищённых файлов.
SparstanBoogie, судя по сообщениям, тестировался на iOS/iPadOS 15.2 – 16.7 RC (20H18) и 17.0, однако тесты проводились вплоть до (26.1 <), где он фактически переставал работать. Требуется и приветствуется тестирование на более низких уровнях, а именно на устройствах (> 26.1). Также приветствуются любые тесты на устройствах выше или ниже заявленных, поскольку проблема может вернуться на новых устройствах, так что нет причин отмахиваться от добрых самаритян, желающих сообщить, работает ли это у них или нет. Было обнаружено, что старые устройства, которые, как утверждалось, не поддерживались программами-прародителями, от которых это произошло, также затронуты, например iOS 15.8.7.
Согласно достоверному раскрытию уязвимости, эта проблема якобы была устранена улучшенной обработкой симлинков. Предположительно, она была исправлена в iOS 17.7.1 и iPadOS 17.7.1, iOS 18.1 и iPadOS 18.1, tvOS 18.1, visionOS 2.1. Восстановление вредоносно созданного резервного файла может привести к изменению защищённых системных файлов.
Однако SparstanBoogie реализует техники, замеченные в Nugget и Misaka, чтобы дать пользователю больше контроля над процессом настройки своего устройства с помощью этого инструмента полу-джейлбрейка.
Существует два основных способа применения этого для кастомизации: 1. инструмент поддерживает использование trollstore, чтобы показать эффект замены пользовательских системных и мобильных приложений (приложение поставляется с trollstorehelper для демонстрации замены). 2. Инструмент использует частичное восстановление iOS для получения контроля и перезаписи системных файлов, что видно по перезаписи gestalt-файла. Пользователи могут настраивать свою операционную систему, находя известные gestalt-ключи и заменяя или перезаписывая их значения.
Использование: python3.12 main.py trollstorehelper --target Tips
Обновление: теперь используются обход каталогов (directory traversal) и восстановление iOS для внесения значительных изменений. Спасибо всем, кто участвовал в Misaka26, Nugget и TrollRestore, за вдохновение. Если этот проект вас подведёт, настоятельно рекомендую ознакомиться с ними. Этот проект просто даёт более подробную образовательную ценность из командной строки, объясняя, для чего предназначались эти инструменты.
Наиболее используемый синтаксис: Sparse app-target: python3 main.py <from_path> --target "Tips" Gestalt-chain: python3 main.py <from_path> --gestalt-chain
Примеры:
python3 main.py trollrestorehelper --target "Calculator"
python3 main.py MobileGestalt.plist --gestalt-chain
Ниже вы найдёте руководство, которое позволит вам извлечь собственный gestalt-файл и внести изменения в ваше iOS-устройство.
Это руководство объясняет, как использовать Save MobileGestalt Shortcut вместе с a-Shell mini, чтобы экспортировать кэш MobileGestalt вашего устройства и сохранить его как:
MobileGestalt.plist
Этот шорткат был специально разработан для сохранения копии:
com.apple.MobileGestalt.plist
Новые версии iOS требуют a-Shell mini для надёжного доступа и экспорта.
MobileGestalt — это системный фреймворк Apple, который хранит конфигурацию и информацию об оборудовании, специфичные для устройства.
Исследователи и продвинутые пользователи обычно используют plist, чтобы:
Экспортированный plist уникален для вашего устройства и содержит сведения, специфичные для вашей аппаратной конфигурации.
Вам понадобятся:
Установите a-Shell mini из App Store.
a-Shell mini рекомендуется, потому что новые версии iOS ужесточили поведение Shortcut в файловой системе, и шорткат использует a-Shell mini для надёжного доступа к MobileGestalt-файлу и его экспорта.
После установки:
Это инициализирует его рабочие каталоги для Shortcut.
Откройте:
https://routinehub.co/shortcut/23246/
Затем:
Теперь вы должны увидеть:
Save MobileGestalt
в своей библиотеке Shortcuts.
Запустите шорткат.
В зависимости от версии iOS вы можете увидеть запросы на:
Разрешите все запрашиваемые разрешения.
Затем шорткат:
Откройте приложение Files.
Перейдите в одно из следующих мест:
On My iPhone
→ a-Shell
или:
iCloud Drive
→ Shortcuts
В зависимости от версии iOS и конфигурации файл может отображаться как:
com.apple.MobileGestalt.plist
Переименуйте его в:
MobileGestalt.plist
при необходимости.
Теперь у вас должен быть:
MobileGestalt.plist
Этот файл можно:
Использование a-Shell mini в настоящее время является одним из самых надёжных методов, поскольку позволяет шорткату обходить ограничения экспорта Shortcut в новых версиях iOS.
Это также упрощает:
После экспорта plist можно открыть с помощью таких инструментов, как:
Дополнительная полезная утилита: