Привет, хабровчане! С вами на связи пентестер из компании Xilant - Ян.

В прошлой статье мы нескучно рассмотрели как получить джейлбрейк (JB) с рутом на некоторых устройствах iOS  с чипом A11. Как я уже озвучил в первой части, рут на устройстве нам нужен для пентеста. А причин для рута было несколько:

  • Во-первых, нам нужен аналог adb, как в Android, для “удалённого” доступа на устройство.

  • Нужна возможность дампить расшифрованные IPA и бинарников приложений для последующего реверс-инжиниринга.

  • Доступ к системным процессам и файловой систему для быстрого обхода встроенных средств защиты приложения, таких как SSL-Pinning.

  • Установка пентест утилит Frida, Objection, SSL Killswitch и другие.

Дисклеймер: информация, представленная в данной статье, предназначена исключительно для образовательных целей и использования в рамках легальных тестов на проникновение.

И ещё. Стандартным менеджером пакетов является Sileo, который должен устанавливаться автоматически вместе с джейлбрейком. Поэтому крайне не рекомендуется устанавливать Sileo сайдлоадингом и прочими методами, скачивая IPA из интернета. Даже по поиску Google! Осторожно: много мошеннических сайтов с опасными фальшивками!

И я понимаю, что не все пентестеры среди вас, и многим просто интересно, как поставить тот или иной твик, или просто жить без ограничений Apple-ларька. Поэтому поспешу вас порадовать бонусной статьёй после праздников, в которой я расскажу про очень простой ЖБ Dopamine и рассмотрим прикольные апликухи вроде Return Youtube Dislike Button. Отмечайтесь в комментах кому интересно!

Разъяснил и по безопасности пояснил. Тогда снова к делу, дамы и господа!

Установка OpenSSH

Ищем и находим openssh пакет в Sileo.

Поиск openssh в Sileo store.
Поиск openssh в Sileo store.

Внимание! После установки openssh автоматически запускается и порт 22 вашего устройства будет открыт и виден в сети!

Скан ssh.
Скан ssh.

Поэтому - правильно, товарищ, выключаем Wi-Fi и думаем в первую очередь о своей драгоценной пятой точке: меняем дефолтные пароли. А как же подключиться без Wi-Fi, скажете вы. Подключиться можно и через любой оригинальный Apple USB кабель и MacOS. Но необходимо кое-что установить:

  1. Установите менеджера пакетов brew на MacOS (сорри бро бат ноу виндовз хиер). Бу, не бойся - это всего лишь опенсорсные пакеты не поддерживаемые Apple!

  2. На хосте MacOS: brew install usbmuxd

  3. Запускаем проксю с перенаправлением: iproxy 2222 22 &

  4. Ваш iOS уже подключен через кабель, разблокирован (авто-блокировка отключена в установках) и ждёт ssh соединения: ssh -p 2222 mobile@localhost

И по-факту, мы в Darwin-дистрибутиве Unix (видите тот милый значок процентика? ?).

Дефолтные креды девственного джейлбрейка: mobile:alpine и root:alpine.

%sudo -l

[meow] password for mobile: 

User mobile may run the following commands on iPad:

(ALL) ALL

Система говорит нам, что можно выполнять любые действия от имени root пользователем mobile. Поэтому и на mobile и на root необходимо сменить пароли командой: passwd. Вот теперь можно ssh и через Wi-Fi баловаться.

Поздравляю - вы получили полный доступ к своему устройству!

Установка Frida и Objection

Двигаемся дальше. Теперь надо заняться установкой базовых утилит для хука к системным процессам и файлам. Как ими пользоваться расскажу в третьей части.

Во-первых, добавить в Sileo источник Фриды: https://build.frida.re. После чего он должен появиться в репозиториях.

Затем, устанавливаем Frida из источника и Frida-сервер будет запускаться автоматически!

Проверить установку можно через ssh:

~ root# ps aux | grep frida

root       [...]       /usr/sbin/frida-server

Далее можно пойти на страницу билдов Frida-клиентов и подобрать клиент (актуальный - 17.5.2), который соответствует версии сервака, который вы установили из Sileo. 

Или пристегните ремни, сейчас мы будем даунгрейдить Frida для того, чтобы запускать Objection.

Frida - это не только женщина-художник с вах-бровями, а известный дебагер в мире мобильного пентеста, но вот про Objection не все знают. 

Objection — это фреймворк для динамического анализа мобильных приложений на базе Frida с целью оценки безопасности. Это сильно упрощает базовые действия над iOS, такие как обход стандартных пиннингов, дамп памяти и прочее. Если результат можно получить одной командой в Objection, то мы так и сделаем, потому что  ценим наше время и время заказчика.

Проблема в том, что Objection написан для Frida версии 16.7.19, а актуальная версия в Sileo 17.5.2. Поэтому необходим даунгрейд Frida на устройстве iOS иначе клиент Objection к ней не сможет присоединиться и выдаст ошибку.

Сначала создаем баш-скрипт frida_update.sh со следующим содержанием: ссылка на гит.

Сохраняем как frida_update.sh и заливаем на взломаный iOS девайс:

scp -P 2222 ./frida_update.sh root@localhost:/tmp

Затем, на самом устройстве запускаем апдейт (нужен интернет):

./frida_update.sh 16.7.19

Если вдруг выйдет более новая версия, то также можно на нее перейти. 

Перезагружаем устройство. Заново активируем JB: palera1n -f 

Теперь на MacOS установите frida клиент для 16.7.19 и проверьте:

frida --version

16.7.19

Есть контакт? Теперь ищем приложение и подключаемся:

Запускаем Objection на MacOS по идентификатору гаджета (приложения):

objection -h 127.0.0.1 -p 2222 -g ph.telegra.Telegraph explore

По приколу можно сделать дамп keychain Телеграма (своего!), а вдруг пароль забыли:

Более подробную инструкцию по Objection ищи на Wiki или дождись следующей части.

Теперь ты - почти iOS хакер!

Установка NewTerm

Какой же хакер без терминала скажете вы. Вот мой ответ: установите NewTerm через Sileo.

И, voilà! У вас в руках полноценное переносное устройство с терминалом, подрубаем через Bluetooth клаву и наслаждаемся:

NewTerm.
NewTerm.

Установка SSL-KILL-SWITCH-3

Хитрые разрабы пытаются спрятать от нас свой траффик от перехвата (как перехватить с помощью Burp) и используют так называемый SSL Pinning. А если разраб не только хитрый, но и ленивый, то велика вероятность, что он будет использовать стандартные средства защиты.

Пока не буду вникать в детали, но большинство пиннингов поможет обойти SSLkillSwitch3.

Но тут на понадобится скачать пакет установщика:

moe.misty.sslkillswitch3_1.4+rootful_iphoneos-arm.deb

И чтобы его установить необходимо в Sileo загрузить dpkg.

dpkg
dpkg

Также установите PreferenceLoader из репозитория (добавить также как и репозиторий фриды ранее) https://ellekit.space/.

Теперь закидываем пакет на устройство и устанавливаем:

dpkg -i moe.misty.sslkillswitch3_1.4+rootful_iphoneos-arm.deb

Должна появиться в Настройках iOS новая вкладка: SSL Kill Switch

Теперь можно попытаться перехватить траффик в Burp.

Выводы

Мы рассмотрели, как получить шелл на iOS после джейлбрейка и как поставить основные утилиты.

Теперь можно хукать процессы и читать любые файлы - ведь у нас есть root доступ. И даже можно дампануть ключи.

В следующей части мы рассмотрим прикладной хакинг iOS приложений на примере обучалки DVIA2.

Всех жду!

Комментарии (0)