29.09.2013

Безопасность IOS-приложений (часть 1) – настройка мобильной платформы для пентестов

image

В этой серии статей мы рассмотрим утилиты и техники, необходимые для выполнения пентестов и экспертизы уязвимостей в IOS-приложениях.

Автор: Пратик Джианчандани (Prateek Gianchandani)

Введение

В этой серии статей мы рассмотрим утилиты и техники, необходимые для выполнения пентестов и экспертизы уязвимостей в IOS-приложениях.

Джейлбрейкинг мобильного устройства

Если вы серьезный исследователь по безопасности платформы IOS, то вам в обязательном порядке необходимо обзавестись джейлбрейковым устройством. В этом разделе мы рассмотрим способы джейлбрейка устройства на платформе IOS. Подобные устройства обладают множеством преимуществ. Вы можете устанавливать утилиты (такие как nmap, metasploit) и даже запускать на мобильном устройстве ваш собственный код на языке python. Попросту говоря, в ваших руках будет находиться мощная штука, которая может производить пентесты в любом месте и в любое время. Если вы хотите узнать больше о том, что такое джейлбрейк и его преимущества, то я рекомендую вам ознакомиться с этой статьей.

Произвести джейлбрейк вашего устройства проще простого. Для этого необходимо загрузить соответствующее программное обеспечение и нажать на кнопку jailbreak. Для решения этой задачи я рекомендую использовать evasi0n для устройств на платформе IOS 6.x и redsn0w для устройств на платформе IOS 5.x.

В моем случае я использую мой новый Ipad (третье поколение) на платформе IOS 6.0.1. Как только вы загрузите и запустите evasi0n, то увидите, что произошло обнаружение типа устройства и платформы в автоматическом режиме, и отобразилась информация о доступности или недоступности джейлбрейка.

Рисунок 1: Начальное окно после запуска evasi0n

Вам нужно лишь нажать на кнопку Jailbreak. Все остальное сделает evasi0n.

Рисунок 2: evasi0n выполняет джейлбрейк

Как видно из Рисунка 2, начался процесс джейлбрейкинга. Через некоторое время evasi0n перезагрузит устройство и запустит эксплоит.

Рисунок 3: Выполнение второго шага для джейлбрейка (при этом не трогайте устройство)

После запуска эксплоита, будет установлена Cydia и ее список пакетов. Cydia представляет собой графическую оболочку, которая позволяет загружать на ваше джейлбрейковое устройство пакеты программ и другие приложения, которых нет в официальном магазине приложений App Store. Большинство приложений, выполняющих джейлбрейк, по умолчанию устанавливают Cydia на ваше устройство. При помощи Cydia вы можете работать с альтернативным магазином приложений в дополнение к официальному App Store.

Рисунок 4: Загрузка списка пакетов Cydia (при этом не трогайте устройство)

Через некоторое время появится следующее сообщение.

Рисунок 5: Сообщение, появляющееся после загрузки пакетов Cydia

После этого вы увидите новую иконку на рабочем столе ‘Jailbreak’. Щелкните по ней (только один раз!), чтобы завершить процесс джейлбрейкинга.


Рисунок 6: Появилась новая иконка ‘Jailbreak’

При клике по иконке экран почернеет (устройство перезагружается). Подождите немного для окончательного завершения процесса. После перезагрузки вы увидите новое приложение с именем Cydia, которое появится в вашем списке приложений. Это свидетельствует о том, что вся процедура джейлбрейкинга прошла успешно.

Поздравляю, вы сделали первый шаг на поприще исследования платформы IOS.

Настройка утилит для аудита мобильных приложений

Следующий шаг после джейлбрейкинга – установка некоторых очень важных linux-утилит, работающих из командной строки (wget, ps, apt-get и т. д.) и других приложений, которые используются для аудита IOS-приложения. Однако прежде всего необходимо установить OpenSSH, что позволит вам подключиться к вашему устройству и выполнять различные задачи (об этом будет рассказано дальше).

Зайдите в Cydia, кликните на поисковую вкладку внизу и найдите приложение OpenSSH.

Рисунок 7: Поиск утилиты OpenSSH

В списке найденных приложений кликните на OpenSSH. Далее кликните на кнопку Install, а затем на Confirm.

Рисунок 8: Установка утилиты OpenSSH

После этого на ваше устройство установится OpenSSH.

Перед использованием ssh нам необходимо установить другие необходимые linux-утилиты, работающие из командной строки. Почти все популярные хакерские утилиты можно установить при помощи пакета BigBoss Recommended tools. Для установки этого пакета введите в поисковом поле Cydia фразу «BigBoss Recommended tools», а затем кликните Install.

Рисунок 9: Установка пакета BigBoss Recommended tools

Несколько важных и полезных утилит, которые идут в составе этого пакета: APT 0.6 Transitional, Git, GNU Debugger, less, make, unzip, wget and SQLite 3.x.

Еще одна утилита, которую мы можем установить из Cydia, - MobileTerminal, позволяющую выполнять терминальные команды прямо на вашем устройстве, вместо того, чтобы делать это через ssh (при подключении к устройству из другой системы). Используя ту же самую последовательность действий, установите на устройство MobileTerminal.

Рисунок 10: Установка MobileTerminal

После установки MobileTerminal появится новая иконка с именем Terminal.

Рисунок 11: После установки MobileTerminal появилась новая иконка с именем Terminal

Кликните по новой иконке, и перед вами появится окно с терминалом. Попробуйте выполнить какую-нибудь Unix-команду. Я запустил команду ps для получения списка запущенных процессов.

Рисунок 12: Отображение списка процессов при помощи команды ps в терминале

Как видите, все работает!

Теперь протестируем соединение по ssh. Удостоверьтесь, что ваш настольный компьютер (или ноутбук) и мобильное устройство находятся в одной сети, а затем определите IP-адрес устройства. Для этого зайдите в Settings -> Wi-Fi и кликните на иконку сети, к которой подключено ваше устройство.

Рисунок 13: Список устройств, подключенных к сети

Из Рисунка 13 видно, что у нашего мобильного устройства IP-адрес 192.168.2.3. Теперь, зная IP-адрес устройства, попытаемся подключиться к нему под пользователем root через ssh. Просто введите команду, как показано ниже. У пользователя root стандартный пароль alpine. Рекомендуется поменять пароль сразу после установки Open SSH, поскольку к устройству могут подключиться вредоносные программы и украсть важную информацию, используя стандартную комбинацию имени пользователя и пароля. Для изменения пароля введите команду password, а затем новый пароль (дважды). После этого у пользователя root будет новый пароль. Все вышеперечисленные операции показаны на рисунке ниже.

Рисунок 14: Подключение к устройству через ssh и изменение пароля пользователя root

Замечание: Перед вводом какой-либо команды, которая требует привилегий суперпользователя, удостоверьтесь в том, что Cydia работает в фоновом режиме. Поскольку Cydia работает под пользователем root, то нельзя будет получить блокировку на процесс, который уже используется Cydia.

После подключения по ssh и изменения пароля, введите команду apt-get update для получения актуальных списков пакетов.

Рисунок 15: Получение списка последних версий пакетов при помощи команды apt-get update

Также неплохо было бы выполнить команду apt-get upgrade, позволяющую получить новые версии уже существующих пакетов. Для обновления пакетов используется информация из полученных ранее списков.

Рисунок 16: Процедура обновления пакетов

Далее необходимо установить утилиту class-dump-z, которую мы будем использовать для выгрузки информации о классах из IOS-приложения. Для этого зайдите на официальную страницу данной утилиты и скопируйте нужную ссылку. На момент написания статьи последняя версия утилиты 0.2a.

Рисунок 17: Получение ссылки с последней версией утилиты class-dump-z

Теперь подключитесь к мобильному устройству через ssh и загрузите файл при помощи команды wget и полученной ранее ссылки.

Рисунок 18: Загрузка последней версии class-dump-z на мобильное устройство

Можно также загрузить файл на настольный компьютер, а затем скопировать его на мобильное устройство при помощи sftp. Как только архив загружен, распакуйте его командой tar.

Рисунок 19: Процедура распаковки архива

После распаковки архива зайдите в директорию iphone_armv6 и скопируйте исполняемый файл class-dump-z в папку /usr/bin, чтобы можно было запускать файл из любого места внутри устройства. После того, как вы скопировали файл, просто наберите в командной строке class-dump-z, и если на экране появится то, что показано на рисунке ниже, значит, class-dump-z успешно установлен.

Рисунок 20: Установка и проверка работоспособности class-dump-z

Вывод

В этой статье мы настроили мобильную платформу для аудита IOS-приложений на джейлбрейковом устройстве. В следующей статье мы рассмотрим, как анализировать приложения при помощи утилиты class-dump-z.

или введите имя

CAPTCHA