Comments 46
Красиво!
я бы сказал: красиво, но мало, что понятно :)
Старался переводить понятным языком. Давайте уточню какие-то моменты?
нет, перевод то может быть и хороший, я к тому, что я далек от iOS разработки и мало, что понятно. А вообще да, интересно было бы понимать это все.
тут больше по UNIX и Objective-C Runtime окружению, а не чисто iOS (ну разве кроме MISValidation...)
Прикольные слова :)
думаю Вы сами все прекрасно понимаете — iOS — это UNIX/Mach просто сильно запиленный под ARM, с дополнением Cocoa Touch и проприетарными фишками поверх стандартной инфраструктуры (кстати именно поэтому и баг с неподписанным кодом так успешно прошел — если бы была проверка сигнатуры для всех секций ELF — то тогда да, было бы веселее).
Дело в том, что у остальных секций иногда есть легитимные права на изменения (и да, там не ELF, там Mach-O, но не суть). Но идея в библиотеке без __text просто шикарна, конечно.
Они вообще молодцы. Jailbreak всех Apple девайсов, при чем одной кнопкой, простой и лаконичный интерфейс программы, поддержка Linux. По сравнению со всякими Redsn0w это просто небо и земля.
Absinthe тоже ставился в одну кнопку, и работал на 3х системах.
Apple-way
Не всех, Apple TV 3 так и не сломали.
symlink: Media/Recordings/.haxx -> /var/mobileПравильно я понял, что iOS проверяет права доступа только у символьных ссылок, а не у файлов, на которые они ссылаются? Странно, что не закрыли такой явный баг, если
Символьная ссылка из .haxx в /var/mobile создается для обхода ограничения работы с файлами только в пределах домена, т.е. хотя стандартное ограничение не допустит копирования фалов вне /var/mobile/Media, но с помощью символьной ссылки файлы фактически попадают в /var/mobile.
Далее, DemoApp.app, обычное iOS приложение, создается в /var/mobile.
Этот подход уже использовался в «джейлах» и ранее.Или я чего-то не понимаю, и это не баг, но фича?
Получается, что Apple может очень просто закрыть дыру пофиксив функцию PairRequest и/или проверку прав доступа к символьным ссылкам. Если так, то апдейт iOS может выйти уже через через пару дней — нужно поспешить апдейтнуться до iOS 6,1 и сделать джейл, пока не закрыли дыру.
Правильно я понял, что iOS проверяет права доступа только у символьных ссылок, а не у файлов, на которые они ссылаются
Нет, тут скорее вопрос побега из «песочницы». Права у фалов бекапа вообще не проверяются.
Получается, что Apple может очень просто закрыть дыру пофиксив функцию PairRequest
Да, скорее всего.
Нет, тут скорее вопрос побега из «песочницы». Права у фалов бекапа вообще не проверяются.Теперь понял. Получается, что iOS подсовывают «некорректный» образ, в котором есть папка
Media/Recordings/.haxx/DemoApp.app/
, но при этом папка Media/Recordings/.haxx
— это символьная ссылка в защищённую область /var/mobile
. Вот файлы из образа и восстанавливаются непредназначенное для них место. Хитро.Надо не забыть на всякий случай, даже если и не обновляться на iOS 6.1, сохранить SHSH Blob через TinyUmbella на будущее.
Что-то мне кажется ошибку могут быстро поправить, если конечно у Apple не будет какого-то скрытого интереса оставить её открытой еще какое-то время.
Что-то мне кажется ошибку могут быстро поправить, если конечно у Apple не будет какого-то скрытого интереса оставить её открытой еще какое-то время.
Интересно как быстро среагирует на это Apple?
Как только прочитает статью :)
Если они будут сильно урезать права на запись то тогда восстановление системных файлов будет невозможно.
А по поводу бага с пакетом — мб. это не баг а специальная недокументированная функция?
А по поводу бага с пакетом — мб. это не баг а специальная недокументированная функция?
Стоит особо отметить, что вопреки вступлению, эксплоит использует не только файловую систему, но и уязвимость в lockdownd, позволяющую поднять права доступа к файлу до 777.
Замечательная статья, прочёл час назад в оригинале. Спасибо за перевод!
Наконец то начал более менее предстаавлять что у джейла под капотом. Всегда было интересно. Головы конечно у ребят что надо.
Подозреваю, что так долго из-за этого:
И
Часто при эксплуатации уязвимостей приходится перебирать какой-нибудь параметр.
Отправка некорректного пакета PairRequest заставляет lockdownd изменить права доступа к /var/db/timezone на 777
И
Address Space Layout Randomisation – рандомизация расположения в адресном пространстве
Часто при эксплуатации уязвимостей приходится перебирать какой-нибудь параметр.
Часто при эксплуатации уязвимостей приходится перебирать какой-нибудь параметр
Это вы о «fuzzing». В данном случае, ASLR к эксплойту не имеет отношения. ASLR вообще защищает от «повреждений памяти», например buffer overrun. Защита обеспечивается тем, что мы имеем возможность выполнить буквально несколько инструкций, и мы не знаем внутреннее состояние процесса (где в памяти что лежит).
Это всё конечно замечательно. Только теперь у всех проблемы с простыми программами вроде погоды и другими приложениями(
Инструкция по починке погоды, может кому пригодится.
А что ещё сломалось?
iTunes Match? iBooks?
iTunes Match? iBooks?
Интереснее было бы узнать почему джейл повлиял на погоду.
Понял от силы половину. В восторге от искуссной работы.
Интересно, а та китайская программа работает этим же способом устанавливая пиратские приложения?
Скопировать файлы приложения туда, где их найдет Springboard – это совершенно не проблема. Проблема только с цифровой подписью, а обойти ее уже существенно проблематичнее. Если конечно этот механизм не был отключен целиком во время джейла.
Я проводил небольшое исследование. Как я понял, она не ставит взломанные приложения. Все приложения были легально куплены в AppStore. Если посмотреть ipa пакеты, то все приложения подписаны Apple и куплены с одного AppleID. Задача программы лишь в передаче девайсу данных этого AppleID. Это так же подтверждает тот факт, что все бинарники шифрованы (взломанные приложения всегда расшифрованы) и при необходимости просят ввести тот самый AppleID. Именно поэтому нельзя установить через китайскую программу крякнутые ipa — iOS отказывается их устанавливать, потому что у них недействительная цифровая подпись.
Sign up to leave a comment.
Evasi0n под микроскопом