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

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

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

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

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

Категории

Все категории
Loading categories
UnjailMe — Побег из песочницы на основе доказательства концепции (CVE-2018-4087) от Рани Идана (Zimperium) | Kitploit
Инструменты/GitHubGitHub/mtjailed/unjailme
Повышение привилегийФреймворки для эксплойтовБезопасность iOSАнализ уязвимостейЭксплуатацияФорензикаПост-эксплуатацияМобильная безопасностьРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubmtjailed/unjailme
82218 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

UnjailMe

Побег из песочницы на основе доказательства концепции (CVE-2018-4087) от Рани Идана (Zimperium)

РепозиторийСайт

UnjailMe

Побег из песочницы на основе:

  • доказательство концепции (CVE-2018-4087) от Rani Idan (Zimperium)
  • proof-of-concept переполнения securityd от @cheesecakeufo (zeroday, неизвестный CVE, спасибо Abraham!)

О PoC от ZIMPERIUM

Рани использовал sbtool от Джонатана Левина, чтобы выяснить, какие сервисы были доступны для связи из песочницы.

Затем он обнаружил в bluetoothd еще что-то и настроил код для перехвата сообщений от и к сервису.

Таким образом он выяснил, что может перехватывать сессии многих демонов и получать утечку клиентского порта.

Так он обнаружил, что можно добавить обратный вызов с дополнительными данными к клиентскому соединению с bluetoothd.

Следствием этого является возможность получить контроль над счетчиком процессов (обратный вызов) и регистром x3 (дополнительные данные) системных демонов, у которых перехвачен клиентский порт (сессия).

Что дает возможность выйти из приложения в песочнице в привилегированный контекст, заставляя его выполнять код с системными привилегиями.

Apple исправила уязвимости в iOS 11.2.5, используя arc4random() для идентификатора сессии.

Кажется, больше невозможно получить клиентский порт, но перехватывать сессии все еще возможно.

Перебор arc4random() в этом новом патче занимает примерно 5 дней (4.294.967.296 возможностей), и поэтому я все еще жду окончательного патча, поскольку это не считается исправлением проблемы безопасности.

Источник: Блог Zimperium

О PoC Abraham Masri

Насколько мне известно, это переполнение буфера при общении с securityd.

Это делается путем отправки XPC-сообщения, основанного на словаре "ключ-значение", с недопустимой длиной.

Сервис получает сообщение, и происходит нижнее переполнение.

Авраам, похоже, нашел способ управлять многими регистрами процессора, что позволяет выполнять код с правами системы для приложений, работающих внутри системы.

PoC Авраама показывает, что он сам пытается создать эксплойт для этой уязвимости, поскольку существует код для утечки базовых адресов, что известно как начало создания ROP-цепочки.

Неизвестно, планирует ли Авраам написать этот эксплойт сам или просто указывает нам правильное направление.

Требования

  • 64-битное устройство iOS с версией iOS от 10 до 11.3.1

О проекте

  • Этот проект не является джейлбрейком и не будет способствовать его созданию, так как он работает только в пользовательском пространстве
  • Этот проект не может и никогда не сможет получить возможность записи в корневую файловую систему, поскольку она смонтирована как read-only, что принудительно установлено ядром.
  • Этот проект не позволит легко выполнять произвольный код в виде динамических библиотек, как это делает Cydia Substrate.
  • Основная цель проекта — повысить права приложения, работающего в контейнере песочницы, до системных.
  • AMFI требует, чтобы все двоичные файлы были действительными подписями, и этот проект не может изменять AMFI.
  • Проект стремится получить разрешение на чтение и запись в раздел пользовательских данных (/var/root, /var/mobile).
  • Проект стремится получить доступ к защищенному хранилищу цепочек ключей для восстановления учетных данных и судебно-медицинских целей.
  • Проект также нацелен на предоставление серверной функциональности для выполнения кода с правами root и передачи файлов.
  • Проект задумывался как помощь разработчикам и исследователям для внесения вклада.
  • Проект облегчит разработчикам джейлбрейков и исследователям безопасности поиск ошибок в драйверах ядра, доступных только из привилегированного контекста, или ошибок пользовательского пространства с использованием методов фаззинга.
  • Проект облегчит разработчикам твиков для джейлбрейка исследование новых функций iOS 11 и отладку разработки твиков на живом устройстве.
  • Основное внимание проекта — работа на iOS 10 до 11.2.5, но теоретически он может поддерживать и 11.2.5–11.3, когда будут разработаны эксплойты.

Скриншот

Как использовать приложение

  • Приложение не добавляет никакой ценности проекту, но служит визуальным инструментом для тех, кто просил об этом (многие разгоряченные люди из сообщества просили об этом).
  • Приложение будет выгружать информацию из библиотек и фреймворков, включая память, информацию Mach-O и их базовые адреса, что полезно для разработки ROP.
  • Логика в приложении может занимать до 15 минут из-за большого количества парсинга и выводов, но в финальных версиях этого не будет.
  • Приложение не добавит никакой ценности вашему iPhone и не изменит поведение программного обеспечения. Некоторые демоны могут вылетать, но система не получит постоянных повреждений.
  • Исследователям рекомендуется запускать этот проект в Xcode вместо этого.

УСТРАНЕНИЕ НЕПОЛАДОК (не требуется, но на всякий случай)

  • Удалите приложение
  • Выключите Bluetooth
  • Перезагрузите
  • Включите Bluetooth
  • Выключите Bluetooth

Возможности

  • FTP-доступ (сейчас в песочнице, в будущем без песочницы)
  • Визуальный PoC
  • PoC от ZERODIUM (наконец-то немного улучшен, может выполнять вызов функции system())
  • PoC от Abraham, который должен уметь запускать произвольный код с правами root, отлично подходит для SSH.
  • PoC от Sem Voigtlander (отказ в обслуживании при выделении адресного пространства ядра, для функции перезагрузки устройства).

Запланировано

  • Полный эксплойт, включая получение полного контроля над адресным пространством других демонов.
  • Удаленный доступ к оболочке SSH (dropbear или производный).

Что обдумать в будущем

  • Внедрение кода в SpringBoardd (Привет, любители джейлбрейка)
  • launchd (Невозможно, так как мы не можем получить для него сессию).

Гипотеза (просто предположение)

  • Найти демона с правами launchd / внедрить права.
  • Внедрить код, загружающий фреймворк BaseBoard
  • Утечка адресов библиотек в dyld_shared_cache.
  • Найти ROP-гаджет в любой библиотеке dyld_shared_cache.
  • Вызвать ROP-цепочку, установив обратный вызов и дополнительные данные.
  • Использовать реверс-инжиниринг логики BaseBoard, чтобы заставить launchd запускать amfid с аргументами и отключенным ASLR.
  • пропатчить amfid
  • Использовать реверс-инжиниринг логики BaseBoard, чтобы заставить afcd запускаться с аргументами для / и отключенным ASLR (как afc2).
  • Использовать реверс-инжиниринг логики BaseBoard для запуска unjaild, демона, который может использоваться как обертка вокруг launchd и обрабатывает привилегии задач и внедрение кода.
  • Получить taskport над launchd с отключенным ASLR, используя логику BaseBoard.

Что изучить

  • Патчи AMFI (Нелегко, мы не можем получить сессии над amfi, но возможно, мы можем расширить права, используя другие демоны).
  • Внедрение прав (Не совсем необходимо, у нас есть контроль над многими демонами, так что это не нужно).
  • Дальнейшее повышение прав с использованием частных API (BaseBoard.framework может запускать процессы с отключенным ASLR с правами системы)???
  • восстановить и портировать liblorgnette на iOS (ВЫПОЛНЕНО)

Скачать IPA

https://github.com/MTJailed/UnjailMe/releases/tag/0.1

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

  • Abraham (@cheesecakeufo) за его zeroday в securityd
  • Уязвимость и первоначальный PoC: Rani Idan (Zimperium) <3
  • PureFTPd
  • проект liblorgnette (с моими небольшими улучшениями)
  • NEWUI от @ringarang

Пожертвовать или внести вклад

  • Исходный код можно получить, если спросить в Twitter через ЛС (@MTJailed)
  • Пожалуйста, сделайте пожертвование, у меня очень мало времени и средств для работы над такими проектами! (http://paypal.me/devsupport)
  • Скоро исходный код (кроме ftp) будет здесь на GitHub.
Скачать инструмент