
Всем привет! С вами Ян, пентестер из компании Xilant. В течении следующих нескольких статей мы поговорим о тонкостях взлома iOS и её приложений. В свою очередь я бы хотел из этого сделать нескучную историю с кучей полезного и мемного контента.
Всё начинается с того, что у нас в руках красивый блестящий iOS-девайс, но ничего мы с ним сделать не можем кроме задуманных Apple процедур. Обычно, это называют «песочницей» (Sandbox) или «стеклянной тюрьмой» (Glass Prison). Но если вы хотите «покинуть тюрьму», единственный способ — побег или Джейлбрейк (JailBreak / JB).
Однако, будьте осторожны! Если вы планируете использовать свой iOS-девайс только для личных нужд, а не для пентеста приложений и разработки, то крайне не рекомендуется осуществлять JailBreak. Это значительно снизит встроенную защиту iOS от взлома и злоумышленники могут этим воспользоваться!
Дисклеймер: информация, представленная в данной статье, предназначена исключительно для образовательных целей и использования в рамках легальных тестов на проникновение.
Для чего нужен Джейлбрейк
В первую очередь, Джейлбрейк необходим профессиональным пентестерам для полного контроля над iOS устройством для теста приложений. Ведь не секрет, что многие косяки в безопасности, такие как открытые токены доступа и несекьюрное шифрование кроется на стороне клиента. Однако, Apple всячески препятствует вмешательство в ОС для исследования файловой системы и процессов, что делает невозможным пентест.
Да и банально скачать расшифрованный образ IPA приложения для статического анализа не получится, как это легко делается в андроиде через adb pull. Нужен рут доступ к iOS, который можно получить только через джейлбрейк.
Еще один частый кейс джейлбрейка — установка твиков и пиратского стороннего софта: кастомные приложения для камеры, контроль звука будильника, значки экрана и прочее.
Но может возникнуть вопрос — легально ли это. Если iOS-устройство принадлежит именно вам, то джейлбрейк не нарушает законодательство и не считается противозаконным во многих странах, включая Россию.
Но стоит учесть, что Джейлбрейк противоречит лицензионному соглашению iOS, поэтому Apple может отказать в гарантийном обслуживании, обновлениях или ремонте устройства.
С чего все началось?

А началось все, собственно с релиза самого первого iPhone в 2007 году. Про iOS тогда еще никто не слышал, потому что мобильная операционка называлась iPhone OS. И у самого первого iPhone была особенность — использовать его можно было только с сим-картами оператора AT&T. За это Apple многие ругали до тех пор пока 17-летний парень под ником GeoHot не нашел способ как обойти это ограничение и пользоваться смартфоном без привязки к оператору.
Парня звали Джордж Хоц, и вообще он довольно заметная фигура в истории хакерского мира, потому что помимо устройств Apple, ему удалось провести реверс-инжиниринг PlayStation 3 (за что он получил иск от Sony) и поломать залоченные устройства Samsung. В общем, батхерт от взлома передовых технологий прыщавым подростком получился знатный.
Но вернемся в 2007 год. Если вы думаете, что он нашел уязвимость в коде системы и абьюзнул ее — как бы не так. Первый джейлбрейк iPhone был аппаратным, то есть нужно было вскрывать смартфон и применять навыки пайки. Удивительное время. Однако, этот шаг был первым импульсом, который вдохновил многих начать искать лазейки, как можно сделать джейлбрейк устройств Apple.
За этим последовал софт-мод: в сентябре 2007 года группа хакеров, включая iPhone Dev Team, начала работать над программными методами взлома. Довольно быстро появились первые инструменты для джейлбрейка, такие как AppSnapp и Installer.app, которые позволяли устанавливать сторонние приложения.
Это было время, когда хакеры соревновались в поиске уязвимостей в iOS, а Apple отвечала обновлениями, «заделывающими» дыры. Период с 2007 по 2010 год считается «золотой эрой» джейлбрейка, когда разработчики быстро выпускали эксплойты для новых версий iOS, включая кастомные рингтоны, темы и приложения.
Не вижу смысла перечислять все способы джейлбрейка, которые выходили за все это время, но однако хочу перечислить тех, кто внес весомый вклад в этой сфере:
Jay Freeman (saurik): Создатель Cydia — альтернативного App Store для джейлбрейк-устройств, запущенного в 2008 году. Cydia стала центром сообщества, где распространялись твики и приложения. Saurik поддерживал инфраструктуру до 2018 года, когда магазин закрылся.
Comex (Николас Аллегра): Молодой хакер, прославившийся в 2010 году с JailbreakMe — веб-сайтом, где джейлбрейк выполнялся просто через Safari, без ПК. Это был прорыв для iOS 4, и Apple быстро закрыла уязвимость. Comex позже стажировался в Apple.
Chronic Dev Team: Включала pod2g (Сирил), p0sixninja и других. Они создали Absinthe для untethered джейлбрейка iOS 5 в 2012 году. Pod2g был ключевым в поиске бутром-эксплойтов.
Разновидности побега

Один JB не равен другому JB. Есть два критерия взлома iOS: степь “привязанности” (tethering) к утилите взлома и наличие прав рута (rootfullness) после удачного взлома.
Вот список по степени "привязанности":
Untethered (Полностью отвязанный): Самый удобный вариант — один раз взломал, и всё. Устройство перезагружается нормально, джейлбрейк всегда активен. В новых версиях iOS встречается редко.
Tethered (Привязанный): каждый раз при перезагрузке нужно подключать девайс к компьютеру и утилите, иначе он просто не загрузится.
Semi-tethered (Полу-привязанный): при перезагрузке iOS, джейлбрейк «засыпает» — твики и моды не работают, пока не подключишь к ПК и не перезапустишь процесс.
Semi-untethered (Полу-отвязанный): Похож на предыдущий, но чтобы активировать джейлбрейк заново после перезагрузки ПК не нужен, просто запускаешь специальное приложение на устройстве.
С рутом всё проще:
Rootful: то что нам необходимо для серьёзного пентеста. Получаем полный доступ к корневой файловой системе (root FS) и системным процессам.
Rootless: не трогает root FS, а всё ставит в изолированное пространство вроде
/var/jb. Это как «стелс-режим» — система остаётся нетронутой, что делает его скрытным и стабильным. Может иногда пригод��ться, когда приложение или более поздние версии iOS могут обнаружить рут-взлом.
Если бы мир был коробкой конфет, то я бы пожелал Untethered-Rootful-Jailbreak, но пока нет такой утилиты, которая бы давала и рут и отвязку для более менее актуальных версий iOS. А меня как пентестера в первую очередь интересует получения рута на устройстве и версия iOS, которая поддерживается большинством приложений.
Немного истории поздних джейлбрейков с рутом. В начале была утилита Checkra1n, которая основана на эксплойте checkm8, использующем ошибку в буфере BootROM в чипах A5–A11 для обхода встроенной защиты. Однако, этот эксплоит работает только до версий до iOS 14. Для поддержки более поздних версий до iOS 16 включительно была выпущена модификация - Palera1n.
о как же быть, если на дворе уже iOS 26? Не беда, многие приложения для совместимости с более древними устройствами поддерживают и ранние iOS версии.
В итоге, на данный момент Palera1n является лучшим вариантом, который даёт рут, жертвуя только привязкой. Использовать его удобнее всего через дистрибутив Palen1x.
Если используете другие джейлбрейки, то отметьтесь в комментариях — интересно посмотреть, кто какие способы использует.
И так к делу, дамы и господа!
Подготовка побега
Для начала вам необходимо устройство из данного списка совместимости:

Проверено работает для iPhoneX (iOS 16.7.10) и iPad Pro 10.5” (iPadOS 17.7.10). Плохо работает на iPhone SE и более ранних.
Подготовьте компьютер с архитектурой Intel X86_64. Также потребуется оригинальный Apple Lightning USB-A кабель. Это проверено!

Побег
На самом iOS устройстве необходимо отключить пин и прочие контроли доступа (после джейлбрейка их можно снова включить).
Скачиваем образ Palen1x для архитектуры X86_64 с github.
Пишем образ Palen1x на USB желательно на Linux или MacOS:
sudo dd if=/path/to/palen1x-v1.2.1-x86_64.iso of=/dev/disk bs=4k
Перезапускаем компьютер и выбираем загрузку с USB, на котором находится образ Palen1x. Именно через Boot компа, потому что у меня не получилось запустить JB с виртуальной машины.
Если всё правильно, то увидите такое приветствие, где надо выбрать shell:

Если это первый джейлбрейк на устройстве, то надо сначала создать теневую файловую систему командой: palera1n -f -c

Когда программа начинает ожидать, подключаем iOS-устройство через USB-A. Устройство необходимо разблокировать: пин или отпечаток. И оно автоматически будет отправлено в Recovery Mode.
Немного ждём и как только устройство напишет, что оно в Recovery Mode, Palera1n даст промпт: Press Enter when ready for DFU mode.
Жми Enter и появится сразу указание:
Hold home + power button (X sec)
Hold home button (X sec)
Держим указанные кнопки необходимое время и подгрузится PongoOS, как на скрине ниже.

На самом девайсе выглядеть это будет так:

Отлично, создав теневую FS, переходим к запуску самой фейковой системы. Прописываем в командной строке только: palera1n -f
Будет примерно такой скрин:

В этот раз iOS перезагрузится и появится красивая картинка с баннером Palera1n:

Поздравляю! Вы взломали свой iOS. Проверить это можно также наличием менеджера пакетов Sileo в приложениях, который устанавливается автоматически при взломе.

Если ваше взломанное устройство перезагрузится или выключится, то необходимо заново исполнить: palera1n -f. Однако, это уже можно сделать и из MacOS, установив на нём напрямую Palera1n.
Как устанавливать кряки и твики, как подключиться по ssh к взломанной iOS и кто такая Frida расскажу в следующей части.
А пока всем спасибо за внимание!
P.S.
И спасибо огромное коллеге @madballer34 за редакцию и кучу интересных инсайтов.
