В этой статье мы рассмотрим настройку платформы для пентестов на базе iOS 8 для комфортной работы со всеми необходимыми утилитами.
Автор: Prateek Gianchandani
В этой статье мы рассмотрим настройку платформы для пентестов на базе iOS 8 для комфортной работы со всеми необходимыми утилитами.
Джейлбрейк устройства
Если на вашем устройстве установлена iOS 8.1 (или более ранняя версия), для джейлбрейка подойдет утилита pangu. Весь процесс интуитивно понятен, и мы не будем вдаваться в детали. Более подробную информацию о джейлбрейке устройств на базе iOS 8 можно узнать в этой статье.
Примечание: при работе с Pangu у меня возникла ошибка, связанная с недостатком свободного места на устройстве (хотя, на самом деле, места было достаточно). Я решил проблему посредством переключения устройства в режим Airplane и выключением Wi-Fi на ноутбуке.
После успешного завершения джейлбрейка вы сможете установить OpenSSH при помощи Cydia и, таким образом, наладить взаимосвязь с устройством.
Местонахождение приложений
Одно из наиболее серьезных изменений в iOS 8 связано с файловой структурой. Пользовательские приложения больше не хранятся в папке /var/mobile/Applications. Теперь бандл приложения находится в директории /var/mobile/Containers/Bundle/Application (имя_приложения.app), а остальные файлы (документы, библиотеки и временные файлы) в папке /var/mobile/Containers/Data/Application. Имя папки (уникальный идентификатор) бандла и остальной информации также различается для одного и того же приложения. При исследовании приложения рекомендую заглядывать в обе директории.
Рисунок 1: Содержимое папок с бандлами приложений
Рисунок 2: Содержимое папок с документами приложений (как видим, идентификаторы папок различаются)
Хотя, приложения, установленные по умолчанию, находятся в папке /Applications/ (например, приложение App store).
Рисунок 3: Содержимое папки /Applications/
Дешифровка приложений
Для дешифровки приложений нужно установить последнюю версию Clutch (на данный момент доступна версия Clutch 2.0 RC2). После загрузки запустите Clutch один раз, потом еще раз, после чего на экране появится перечень зашифрованных приложений.
Рисунок 4: Перечень приложений для дешифровки
Далее запустите Clutch еще раз и в качестве параметра укажите приложение, которое нужно расшифровать.
Рисунок 5: Дешифровка приложения Alpinist
Файловые менеджеры
Поскольку у приложений изменилось место хранения документов и библиотек, iExplorer отображает содержимое папки /var/mobile/Containers/Data/Application, но не «заглядывает» в папку, где находится бандл. То же самое относится к iFunbox, еще одному неплохому файловому менеджеру. Однако если вы проводите аудит приложения, рекомендуют также исследовать содержимое папки с бандлом.
Рисунок 6: Перечень документов и библиотек приложения CNN
Cycript & class-dump-z
И Cycript и class-dump-z прекрасно работают в iOS 8. Только пользуйтесь последними версиями этих утилит (на момент написания статьи последняя версия cycript - 0.9.502).
Выгрузка keychain
Утилита Keychain dumper работает отлично и все также выгружает всю информацию из keychain.
Рисунок 7: Результат работы keychain_dumper
Swift
Swift – новый язык программирования для iOS и OS, который, согласно заявлениям Apple, вобрал все лучшее из языков C и Objective-C. Убраны все ограничения, связанные с совместимостью с языком C. В Swift’е унаследовались паттерны безопасного программирования и в то же время появились современные возможности, заметно облегчающие и делающие более гибким процесс разработки. Swift, перенявший лучшие техники из всеми любимых фреймворков Cocoa и Cocoa Touch, позволяет переосмыслить весь процесс разработки программного обеспечения. Рекомендую вам ознакомиться с возможностями этого языка. Один из лучших ресурсов для начала знакомства, помимо официальной документации, - блог Рэя Вандерлихта. Я лишь отмечу, что нужно потратить некоторое время прежде, чем идеология Swift уляжется в голове и станет одним из основных средств разработки. Мы рассмотрим Swift более подробно в одной из следующих статей.