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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/kolbicz/appenumguard
Оборонительные ИнструментыБезопасность iOSАнализ уязвимостейМобильная безопасностьКонфиденциальность
GitHubkolbicz/appenumguard

AppEnumGuard

CVE-2025-31207 mitigation и песочница-тестер для джейлбрейков rootless и rootHide на iOS 15–18.4.1.

Репозиторий
521812 дней назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

AppEnumGuard

AppEnumGuard — это защитная настройка (tweak) для побочного канала перечисления установленных приложений, отслеживаемого как CVE-2025-31207. Она поддерживает обычные среды джейлбрейка rootless и rootHide на iOS 15.0–18.4.1. Репозиторий также содержит обычное песочное тестовое приложение iOS, которое демонстрирует уязвимый результат и проверяет действие смягчения.

CVE-2025-31207

CVE-2025-31207 — это уязвимость раскрытия информации в логике запуска приложений FrontBoard от Apple. Песочное приложение может отправлять произвольные идентификаторы пакетов через приватную функцию запуска SpringBoardServices и различать установленные приложения и отсутствующие по разным кодам возврата. Это может раскрыть приватную информацию о приложениях, установленных пользователем, включая банковские, мессенджеры, приложения безопасности, приложения для сайдлоадинга и связанные с джейлбрейком.

Apple описывает проблему как логическую ошибку, которая может позволить приложению перечислять установленные приложения. Apple исправила её улучшенными проверками в iOS и iPadOS 18.5. Следовательно, системы старше iOS 18.5 остаются затронутыми на уровне ОС.

Совместимость

КомпонентПоддерживаемая цель
iOS15.0–18.4.1
ДжейлбрейкЛюбая обычная среда rootless или rootHide
Архитектура бутстрапа/пакетаrootless / iphoneos-arm64; rootHide / iphoneos-arm64e
Архитектура устройстваarm64 и arm64e (rootless); arm64e (rootHide)
ПакетУстановите пакет, соответствующий бутстрапу устройства

Сборка по умолчанию использует обычный rootless Theos и включает срезы arm64 и arm64e. Вариант rootHide собирается с rootHide Theos и содержит необходимые пути загрузчика .jbroot для rootHide. Оба пакета объявляют firmware (>= 15.0) и firmware (<< 18.5): смягчение не требуется на iOS 18.5 и новее, где Apple исправила CVE-2025-31207.

Твик v1.1 на стороне SpringBoard и песочный тестер были проверены вместе на iOS 17.3.1 сборка 21D61 с отключённой инъекцией для тестера. Тестер обнаружил утечку при удалённом твике и вернул зелёный результат после установки твика.

Как это работает

Опубликованный примитив вызывает приватную функцию SpringBoardServices SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions. На уязвимой системе она возвращает разные ошибки для установленного приложения и отсутствующего:

  • 9: цель существует, но запуск запрещён политикой
  • 7: цель не существует

AppEnumGuard 1.1 внедряется только в SpringBoard и перехватывает общий метод проверки доверия FBSystemService. Когда несанкционированный запрос запуска должен вернуть ошибку политики безопасности 3 из FBSOpenApplicationErrorDomain, твик изменяет её на ошибку 4 «приложение не найдено». Внешний API SpringBoardServices затем возвращает 7 как для установленных, так и для отсутствующих целей.

Количество аргументов приватного метода и кодировка типов Objective-C проверяются перед установкой хука. Если Apple изменит ABI, AppEnumGuard безопасно откажется от перехвата неизвестного метода SpringBoard, а не вызовет сбой.

Изменение по сравнению с 1.0

Версия 1.0 перехватывала SpringBoardServices внутри каждого приложения UIKit. Это работало, но требовало инъекции в каждое защищаемое приложение; приложение, отключающее или обнаруживающее инъекцию, могло обойти смягчение. Версия 1.1 переносит контроль в SpringBoard, поэтому один центральный хук защищает вызывающих без внедрения AppEnumGuard в их процессы.

Загрузки релизов

Релиз 1.2 можно собрать для любого бутстрапа:

  • AppEnumGuard_1.2_rootless_iphoneos-arm64.deb — обычный твик rootless
  • AppEnumGuard_1.2_roothide_iphoneos-arm64e.deb — твик rootHide
  • AppEnumGuardTester_1.2_sandboxed.ipa — песочное проверочное приложение с иконкой

Установка и проверка

  1. Установите .deb, соответствующий бутстрапу rootless или rootHide, и выполните респринг.
  2. Установите тестовый IPA с обычной подписью разработчика/сайдлоадинга.
  3. Оставьте инъекцию AppEnumGuard отключённой для AppEnum Test; v1.1 защищает его из SpringBoard.
  4. Нажмите на иконку WhatsApp, YouTube или Spotify для приложения, которое, как вы знаете, установлено.

Ожидаемые результаты при установленной выбранной цели:

СостояниеЦельОтсутствуетРезультат тестера
Твик отсутствует97Красный / FAIL
Твик активен77Зелёный / PASS

Тестер сообщает зелёный результат, когда выбранное приложение не обнаруживается, и красный, когда оно обнаруживается. Выбирайте только приложение, которое, как вы знаете, установлено: одно 7 / 7 не может отличить работающее смягчение от несуществующей цели.

Тест на устройстве воспроизвёл оба состояния с отключённой инъекцией тестера: удаление твика дало красный результат 9 / 7, а установка v1.1 — зелёный результат 7 / 7.

Сборка твика

Со стандартным Theos сборка по умолчанию — обычный rootless:

root@kitploit:~
cd Tweak
make clean package FINALPACKAGE=1

Для rootHide установите rootHide Theos и выполните:

root@kitploit:~
cd Tweak
THEOS=/path/to/theos-roothide \
  make clean package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=roothide

Сборка тестового IPA

Тестер компилируется с iPhoneOS SDK от Xcode и не имеет джейлбрейка или повышенных привилегий:

root@kitploit:~
./scripts/build-tester-ipa.sh

Полученный IPA помещается в dist/. Он подписан ad-hoc, поэтому установщик может переподписать его обычной идентичностью разработчика. Не предоставляйте ему platform-application или com.apple.private.security.no-sandbox, поскольку тест специально предназначен для запуска из обычной песочницы приложения.

Область применения и ограничения

  • Это пользовательское смягчение для опубликованного примитива SpringBoardServices, а не полный патч FrontBoard от Apple.
  • Версия 1.1 не требует инъекции в защищаемые приложения. Отключение инъекции глобально или для самого SpringBoard отключит смягчение.
  • Серверная реализация подтверждена на iOS 17.3.1 сборка 21D61. На других поддерживаемых версиях твик устанавливает свой хук только тогда, когда приватный селектор имеет ожидаемый ABI, проверенный во время выполнения.
  • Тест 7 / 7 значим только тогда, когда целевое приложение заведомо установлено.
  • Тестер намеренно вызывает недокументированный приватный API и не подходит для публикации в App Store.

Ссылки

  • Содержимое безопасности Apple iOS 18.5
  • NVD: CVE-2025-31207
  • Оригинальная публичная proof of concept SpringBoardServices
  • Документация разработчика rootHide

Лицензия

MIT

Скачать инструмент