Новости Джейлбрейк вернулся к корням. Для взлома iPhone снова достаточно открыть Safari

NewsMaker

I'm just a script
Премиум
29,109
46
8 Ноя 2022
Браузерная версия Relaxin делает джейлбрейк пугающе простым.

<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1200/676;margin-bottom:2rem;overflow:hidden">
4kd4hy3nqf3cjxwou1whry8txxj6sxwd.jpg

<div itemprop="articleBody">Экспериментальная версия Relaxin Lite позволяет запустить джейлбрейк iPhone прямо из Safari, без отдельного приложения на первом этапе. В опубликованной демонстрации устройство с iOS 17.1.1 проходит всю цепочку от открытия локальной веб-страницы до перезапуска SpringBoard и возвращается на домашний экран уже после активации Relaxin.

Safari открывает Relaxin Lite по локальному IP-адресу. На странице указано, что браузерная цепочка Coruna рассчитана на устройства arm64e с iOS 17.0–17.2.x. К arm64e относятся современные 64-битные процессоры Apple с дополнительной защитой указателей. Во время работы вкладку нельзя сворачивать: браузер последовательно выполняет несколько этапов эксплуатации уязвимостей и сразу выводит их в журнал.

Сначала Relaxin Lite запускает обход PAC , механизма аутентификации указателей. Современные процессоры Apple добавляют к некоторым указателям криптографическую подпись и проверяют её перед использованием адреса. Защита мешает атакующему произвольно подменить указатель в памяти и заставить процессор перейти к нужному участку кода. Поэтому для дальнейшего продвижения цепочке недостаточно найти обычную ошибку работы с памятью, приходится также обходить PAC.

В показанном запуске первый этап срабатывает с первой попытки. Затем Relaxin Lite определяет наличие проверки PAC и начинает подгружать следующие модули. В журнале последовательно появляются файлы <code>Stage2_16.6_17.2.1_seedbell_pre.js</code>, <code>Stage_17_0_17.2.1_seedbell.js</code> и другие части Coruna. Разработчики предупреждают, что этап с WebKit иногда приходится запускать несколько раз. Успешное завершение браузерной части подтверждает системное окно SpringBoard с заголовком Coruna.

WebKit нужен только для первоначального проникновения за ограничения Safari. Сам по себе контроль над браузерным процессом ещё не даёт джейлбрейку необходимых прав во всей iOS. Операционная система разделяет приложения, системные службы и ядро несколькими уровнями защиты, поэтому после WebKit начинается следующая часть цепочки, где Relaxin постепенно получает более высокие привилегии.

После завершения Coruna устройство переключается на основной интерфейс Relaxin. Зелёное меню на чёрном фоне сообщает о поддержке iOS 16.5.1–17.3.1. В демонстрации программа определяет iOS 17.1.1, Darwin 23.1.0 и время работы устройства после последней загрузки.

Команда <code>relaxin do</code> запускает системную часть джейлбрейка. Сначала инструмент подтверждает параметры устройства и получает kernelcache, затем добирается до ядра, повышает привилегии, готовит bootstrap, настраивает доверие для BaseBin, передаёт необходимые компоненты <code>launchd</code> и подключает SystemHook.

Kernelcache содержит ядро iOS и связанные с ним компоненты, подготовленные для загрузки на конкретном устройстве. Анализ kernelcache помогает инструменту определить структуры и адреса, которые нужны для работы с выбранной версией системы. После получения доступа к ядру Relaxin может менять ограничения, недоступные обычным приложениям.

Дальше программа повышает привилегии и готовит bootstrap, набор файлов и служебных компонентов для среды джейлбрейка. Relaxin использует архитектуру RootHide и не требует классического переписывания системного раздела iOS. Дополнительные программы и служебные файлы размещаются отдельно от защищённой части системы.

Следующий пункт журнала касается BaseBin. В BaseBin находятся базовые исполняемые компоненты Relaxin, которым нужно разрешение на запуск. После настройки доверия управление частью процессов передаётся <code>launchd</code>. Системный процесс <code>launchd</code> запускается при загрузке iOS и отвечает за активацию многих служб операционной системы.

Затем подключается SystemHook. Журнал демонстрации указывает на вариант со штатным <code>dyld</code>, динамическим загрузчиком Apple. <code>dyld</code> подключает библиотеки к запускаемым процессам, а SystemHook использует механизм загрузки для внедрения компонентов джейлбрейка в нужные процессы.

После настройки SystemHook Relaxin перезапускает <code>iconservicesagent</code> и завершает связанные операции. Служба <code>iconservicesagent</code> участвует в обработке данных об установленных приложениях и их значках. Перезапуск помогает графической оболочке iOS подхватить изменения без полной перезагрузки смартфона.

В конце на дисплее появляется белая пиксельная буква R, следом iPhone показывает логотип Apple. Затем SpringBoard перезапускается, и пользователь снова видит обычный домашний экран iOS. В демонстрации система работает на китайском языке, а возле значка настроек остаётся красный индикатор уведомления.

Основной Relaxin относится к полупривязанным джейлбрейкам и основан на RootHide. После полноценной перезагрузки iPhone изменения перестают действовать, однако устанавливать среду заново не требуется. Пользователю достаточно повторно активировать джейлбрейк. Apple в русскоязычной документации также использует термин «джейлбрейк» для несанкционированного изменения iOS в обход встроенных механизмов безопасности.

Relaxin рассчитан на iOS 17.0–17.3.1 и охватывает устройства на процессорах от A12 до A17, а также часть техники на M1 и M2. Relaxin Lite пока имеет более узкие рамки. Показанная браузерная цепочка Coruna работает с arm64e и версиями iOS 17.0–17.2.x.

Главное отличие Lite связано со способом запуска. Обычной версии Relaxin нужен отдельно установленный и подписанный IPA-файл. Coruna переносит первоначальный этап в Safari: пользователь открывает локальную страницу, WebKit запускает браузерную цепочку, а после успешного прохождения защита передаёт управление основной среде Relaxin.

Разработчики пока называют Safari-вариант экспериментальным. WebKit может не сработать с первой попытки, а поддерживаемый диапазон прошивок уже, чем у основного Relaxin. В предыдущих заметках о разработке команда сообщала о работе над расширением поддержки Coruna, а после новой демонстрации участники сообщества ожидают полноценную активацию через Safari в следующих публичных сборках.

Для владельцев совместимых устройств браузерный запуск прежде всего убирает необходимость устанавливать отдельно подписанный IPA на начальном этапе. Насколько надёжно Coruna будет проходить WebKit-часть на разных моделях iPhone, покажут следующие сборки Relaxin и дальнейшее тестирование цепочки.
 
Источник новости
www.securitylab.ru

Похожие темы