• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Мобильный пентестинг 101 – Как настроить среду Android

grozdniyandy

White-Hat
Premium
Регистрация
11.08.2023
Сообщения
522
Реакции
677
Гарант сделки
2

Мобильный пентестинг 101 – Как настроить среду Android​

Продолжая серию Мобильный пентестинг 101, эта статья дает представление о том, как должна выглядеть ваша среда тестирования Android. Какие инструменты я должен использовать? Действительно ли мне нужно физическое устройство? Нужно ли мне рутированное устройство для пентестирования приложения? Я постараюсь ответить на все эти и другие вопросы в следующих строках.

Дебаты: Физическое устройство против эмулятора
  • Физическое устройство
  • Эмулятор
Настройка вашего 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, то устройство по умолчанию не рутировано, и вы, возможно, захотите его рутировать.
1696403725584.png

Создание устройства с помощью Android Studio

1696403752753.png

Лично я использую Pixel 3 в качестве тестирующего устройства

1696403766098.png

Выберите версию API, я выбираю версию, в которой уже установлены API Google

1696403794696.png

Завершите настройку эмулятора​

Теперь, если вы используете эмулятор без установленных API Google, вы можете пропустить эту часть.

Как рутировать ваш AVD – Magisk​

Благодаря сообществу XDA, теперь у нас есть скрипт, который мгновенно рутирует ваш AVD и устанавливает Magic на ваш эмулятор. Инструмент называется root AVD, и его можно найти на GitHub. -https://github.com/newbit1/rootAVD

1696403902631.png

Следуйте инструкциям и рутируйте свое устройство​

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

Код:
./rootAVD.sh ~/Android/Sdk/system-images/android-31/google_apis/x86_64/ramdisk.img

1696403944157.png

Magick установлен на AVD​

Genymotion​

Вы можете скачать Genymotion с их официального сайта. Как только вы это сделаете, для создания эмуляторов вам нужно будет создать учетную запись. После создания учетной записи и входа в систему следующим шагом является создание устройства, опять же, я использую Google Pixel 3.

1696404006183.png

Создание эмулятора на Genymotion​

Как я упоминал ранее, эмулятор Genymotion по умолчанию рутирован, поэтому вам не придется делать это самостоятельно.

1696404035714.png

Привилегии суперпользователя предоставляются по умолчанию​

Подготовка вашего устройства​

Независимо от типа используемого вами устройства, на вашем устройстве должны быть установлены некоторые инструменты для использования приложений и обнаружения уязвимостей. Два из самых важных - "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).

1696404199936.png

Легко устанавливается с помощью раздела Magick module​

Подготовка вашей тестовой станции​

Когда дело доходит до настройки вашей среды пентестирования, иногда бывает трудно установить все необходимые инструменты из-за различных проблем. Чтобы решить эту проблему, ребята из Enciphers разработали виртуальную машину, которая содержит все необходимые инструменты и может быть немедленно использована без каких-либо проблем. Более подробную информацию вы можете найти здесь (https://mobexler.com/).

Если вам все еще нужна всего пара инструментов, установленных на вашей станции pentest, я дам вам краткое представление о самых популярных инструментах, которые я использую практически во всех своих проектах. Все инструменты и методы установки, описанные ниже, предназначены для Ubuntu, но вы можете найти подробную информацию о Windows в их документации.

MobSF​

Mobile Security Framework (MobSF) - это автоматизированное универсальное мобильное приложение (Android / iOS / Windows) для ручного тестирования, анализа вредоносных программ и оценки безопасности, способное выполнять статический и динамический анализ. Более подробную информацию можно найти на их странице на GitHub https://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

1696404313786.png

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

1696404347091.png

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 других приложений и базовой ОС. Несмотря на то, что он выведен из эксплуатации и не находится в разработке, я по-прежнему использую его как универсальный инструмент, когда дело доходит до мобильного пентестирования. Более подробную информацию можно найти на их GitHub https://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 на свою хакерскую станцию, вы можете легко искать уже созданные скрипты на https://codeshare.frida.re/, или вы можете создать свой собственный. Кроме того, вы можете использовать скрипты, используя любую из следующих команд:
Код:
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
 

Вложения

  • 1696403778942.png
    1696403778942.png
    24.4 КБ · Просмотры: 8
  • 1696404337464.png
    1696404337464.png
    77.2 КБ · Просмотры: 8


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх