Мобильный пентестинг 101 – Как настроить среду Android
Продолжая серию Мобильный пентестинг 101, эта статья дает представление о том, как должна выглядеть ваша среда тестирования Android. Какие инструменты я должен использовать? Действительно ли мне нужно физическое устройство? Нужно ли мне рутированное устройство для пентестирования приложения? Я постараюсь ответить на все эти и другие вопросы в следующих строках.Дебаты: Физическое устройство против эмулятора
- Физическое устройство
- Эмулятор
- Виртуальное устройство Android
- Как рутировать ваш AVD – Magisk
- Genymotion
- Drozer
- Friday
- Установка сертификата BurpSuite
- СОВЕТ: Аттестация SafetyNet Magisk
- МобСФ
- APKTool
- Jadx-Gui
- Drozer
- Friday
- Objection
- Runtime Mobile Security (RMS)
Дебаты: Физическое устройство против эмулятора
В Интернете идет бурная дискуссия о том, что должен использовать пентестер: физическое или эмулируемое устройство. Я не буду говорить, что вы должны придерживаться только один вариант, потому что это не всегда так. Вы можете столкнуться с некоторыми ситуациями, когда эмулятор бесполезен, и с некоторыми случаями, когда физическое устройство просто не может выполнить эту работу. Я приведу вам несколько плюсов и минусов для каждого из них, а потом вы сможете выбрать то, что вам больше подходит.Физическое устройство
- Плюсы
- Большинство устройств Android поставляются с процессорами ARM;
- Не полагаясь на технические характеристики ноутбука;
- Минусы
- Вы не можете изменить уровень API Android в соответствии со своими потребностями;
- Рутинг может заблокировать ваш телефон, поэтому его трудно заменить;
- В некоторых моделях устройств еще нет метода рутинга.
- Плюсы
- Вы можете свободно выбирать свои Android API и переключаться между ними;
- Вы всегда можете запустить новый эмулятор в случае сбоя;
- Легко рутается или уже зарутан.
- Минусы
- Некоторые приложения могут выйти из строя из-за отсутствия спецификаций;
- Потребляет ресурсы ноутбука;
- В некоторых эмуляторах отсутствует биометрическая аутентификация, которая имеет решающее значение для современных приложений.
Настройка вашего Android-устройства
Поскольку большинство из нижеследующего применимо как к физическим, так и к эмулируемым устройствам, я представлю только аспекты, используемые для эмулируемого устройства. Итак, когда дело доходит до эмуляторов, существует множество бесплатных опций при настройке вашей среды Android. Наиболее распространенными являются Android Virtual Device (AVD), Genymotion и Nox Player. Genymotion по умолчанию рутирован, у NoxPlayer есть возможность включить root, а с помощью AVD root можно легко получить.Виртуальное устройство Android
Давайте начнем с создания нового виртуального устройства с помощью Android Studio. Вот несколько замечаний, которые необходимо сделать:- Если вы решите создать устройство без сервисов Google Play, по умолчанию устройство будет рутировано, но после этого может возникнуть сложность с установкой сервисов.
- Если вам нужны сервисы Play, то устройство по умолчанию не рутировано, и вы, возможно, захотите его рутировать.
Создание устройства с помощью Android Studio
Лично я использую Pixel 3 в качестве тестирующего устройства
Выберите версию API, я выбираю версию, в которой уже установлены API Google
Завершите настройку эмулятора
Теперь, если вы используете эмулятор без установленных API Google, вы можете пропустить эту часть.
Как рутировать ваш AVD – Magisk
Благодаря сообществу XDA, теперь у нас есть скрипт, который мгновенно рутирует ваш AVD и устанавливает Magic на ваш эмулятор. Инструмент называется root AVD, и его можно найти на GitHub. -https://github.com/newbit1/rootAVD
Следуйте инструкциям и рутируйте свое устройство
Следующая команда - это та, которую я использовал для рутирования своего AVD, и она работает каждый раз, так что вам стоит попробовать.
Код:
./rootAVD.sh ~/Android/Sdk/system-images/android-31/google_apis/x86_64/ramdisk.img
Magick установлен на AVD
Genymotion
Вы можете скачать Genymotion с их официального сайта. Как только вы это сделаете, для создания эмуляторов вам нужно будет создать учетную запись. После создания учетной записи и входа в систему следующим шагом является создание устройства, опять же, я использую Google Pixel 3.
Создание эмулятора на Genymotion
Как я упоминал ранее, эмулятор Genymotion по умолчанию рутирован, поэтому вам не придется делать это самостоятельно.
Привилегии суперпользователя предоставляются по умолчанию
Подготовка вашего устройства
Независимо от типа используемого вами устройства, на вашем устройстве должны быть установлены некоторые инструменты для использования приложений и обнаружения уязвимостей. Два из самых важных - "Drozer" и "Frida".Drozer
Drozer - хороший инструмент для моделирования вредоносного приложения. F-Secure прекратил свою разработку, но его по-прежнему можно использовать в вашем тесте на проникновение без каких-либо проблем. На их странице на GitHub есть APK-файлhttps://github.com/FSecureLABS/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk, который должен быть установлен на устройство. Команда такова
Код:
adb install drozer-agent-2.3.4.apk
Frida
Frida - это динамический инструментарий для разработчиков, реверс-инженеров и исследователей безопасности. Для установки сервера Frida на устройство можно выполнить следующие действия:
Код:
Загрузите конкретную версию с сайта https://github.com/frida/frida/releases
Распакуйте его, используя: $ xz -d ~/Downloads/frida-server-16.0.2-android-x86.xz
Теперь запустите его на устройстве, используя: $ adb push frida-server-16.0.2-android-x86 /data/local/tmp/frida-server
adb shell chmod +x /data/local/tmp/frida-server
adb shell su /data/local/tmp/frida-server
Что интересно в Frida, так это то, что для ее запуска вам не нужно рутированное устройство. Вы можете легко исправить (patch) приложение, включив библиотеку Frida-gadget, и установить новое подписанное приложение на устройство. Есть интересная статья
https://fadeevab.com/frida-gadget-injection-on-android-no-root-2-methods , в которой показаны два способа подключения гаджета к приложению. Есть также третье решение: objection patchapk. Это команда, которая в основном обтекает несколько других системных команд, автоматизируя процесс исправления, насколько это возможно.Установите сертификат BurpSuite
Чтобы иметь возможность перехватывать трафик, который приложение отправляет на внутренние серверы, вам необходимо установить сертификат Burp на устройство и использовать прокси-сервер. Существует множество ресурсов, которые предлагают вам решение, но я рекомендую ознакомиться с документацией PortSwigger, найденной здесьhttps://portswigger.net/burp/documentation/desktop/mobile/config-android-device.СОВЕТ: Аттестация SafetyNet Magisk
SafetyNet предоставляет набор сервисов и API-интерфейсов, которые помогают защитить ваше приложение от угроз безопасности, включая взлом устройства, неверные URL-адреса, потенциально вредоносные приложения и поддельных пользователей. Похоже, эра взломанных устройств подходит к концу, но, как и в случае любой другой проверки на стороне клиента, имея достаточно времени, вы, наконец, сможете обойти ее. Доступен модуль Magick, разработанный drag0n, и его можно найти на его странице на GitHub (https://github.com/kdrag0n/safetynet-fix).
Легко устанавливается с помощью раздела Magick module
Подготовка вашей тестовой станции
Когда дело доходит до настройки вашей среды пентестирования, иногда бывает трудно установить все необходимые инструменты из-за различных проблем. Чтобы решить эту проблему, ребята из Enciphers разработали виртуальную машину, которая содержит все необходимые инструменты и может быть немедленно использована без каких-либо проблем. Более подробную информацию вы можете найти здесь (https://mobexler.com/).Если вам все еще нужна всего пара инструментов, установленных на вашей станции pentest, я дам вам краткое представление о самых популярных инструментах, которые я использую практически во всех своих проектах. Все инструменты и методы установки, описанные ниже, предназначены для Ubuntu, но вы можете найти подробную информацию о Windows в их документации.
MobSF
Mobile Security Framework (MobSF) - это автоматизированное универсальное мобильное приложение (Android / iOS / Windows) для ручного тестирования, анализа вредоносных программ и оценки безопасности, способное выполнять статический и динамический анализ. Более подробную информацию можно найти на их странице на GitHubhttps://github.com/MobSF/Mobile-Security-Framework-MobSF, но простая установка на Ubuntu содержит следующие 3 шага:
Код:
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
cd Mobile-Security-Framework-MobSF
./setup.sh
APKTool
Это инструмент для реверс-инжиниринга сторонних закрытых бинарных приложений для Android. Он может декодировать ресурсы практически до их первоначального вида и перестраивать их после внесения некоторых изменений. Вы можете найти более подробную информацию здесь (https://ibotpeaches.github.io/Apktool/), но установка так же проста:
Код:
wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.7.0.jar -O apktool.jar
mv apktool /usr/local/bin/
mv apktool.jar /usr/local/bin/
chmod +x /usr/local/bin/apktool
chmod +x /usr/local/bin/apktool.jar
apktool -v
apktool полностью установлен
Jadx-Gui
Инструменты командной строки и графического интерфейса пользователя для создания исходного кода Java из файлов Android Dex и apk. Декомпилируйте байт-код Dalvik в классы java из файлов APK, dex, aar, aab и zip. Расшифровать AndroidManifest.xml и другие ресурсы. Включен деобфускатор. Более подробную информацию можно найти на GitHub здесьhttps://github.com/skylot/jadx.Drozer
Drozer позволяет вам искать уязвимости безопасности в приложениях и устройствах, принимая на себя роль приложения и взаимодействуя с виртуальной машиной Dalvik, конечными точками IPC других приложений и базовой ОС. Несмотря на то, что он выведен из эксплуатации и не находится в разработке, я по-прежнему использую его как универсальный инструмент, когда дело доходит до мобильного пентестирования. Более подробную информацию можно найти на их GitHubhttps://github.com/WithSecureLabs/drozer.
Код:
wget https://github.com/WithSecureLabs/drozer/releases/download/2.4.4/drozer_2.4.4.deb
sudo dpkg -i drozer-2.4.4.deb
Frida
Как упоминалось ранее, Frida - это обязательный инструмент, который каждый пентестер должен использовать в своей повседневной методологии мобильного пентестирования. Это помогает вам выполнять динамический анализ наилучшим образом, внедряя JavaScript-скрипты, которые взаимодействуют с операционной системой. Согласно их документации, мы обнаруживаем, что Frida может подключать любую функцию, шпионить за криптографическими API или отслеживать код частного приложения. Вы также можете отредактировать, нажать "Сохранить" и мгновенно просмотреть результаты без шагов компиляции или перезапуска программы. Вы можете легко установить Frida с помощью:
Код:
python3 -m pip install frida-tools
Код:
frida -U -f com.android.example -l Frida_Scripts/bypass_ssl_pinning_various_methods.js
frida -U -f com.android.example --codeshare sowdust/universal-android-ssl-pinning-bypass-2
Objection
Objection - это инструментарий для исследования мобильных устройств во время выполнения, разработанный компанией Frida, созданный для того, чтобы помочь вам оценить уровень безопасности ваших мобильных приложений без необходимости джейлбрейка. Это может помочь вам обойти проверку отпечатков пальцев, закрепление SSL и многое другое.Вы можете установить его с помощью pip python так же просто:
Код:
python3 -m pip install objection
Runtime Mobile Security (RMS)
Я написал целую статью, посвященную этому инструменту, так что вам следует ознакомиться с ней здесь (https://securitycafe.ro/2022/03/07/...-android-java-classes-and-methods-at-runtime/). Чтобы установить его, просто используйте следующее:
Код:
npm install -g rms-runtime-mobile-security
Вывод
Я надеюсь, что эта статья помогла вам создать свою мобильную среду пентестирования или усовершенствовать существующую. Поскольку отрасль меняется так быстро, некоторые инструменты могут быть выведены из эксплуатации и могут появиться какие-то новые, но методология не меняется. Следите за обновлениями для следующей статьи: Mobile Pentesting 101 – Как настроить среду iOS.Источник: https://securitycafe.ro/2023/04/03/mobile-pentesting-101-how-to-set-up-your-android-environment/
Перевод от grozdniyandy Специально для xss.pro