Перевод: Анна Давыдова
Источник: n0where.net
Система оценки безопасности Android
Drozer (раньше Mercury) является ведущей системой проверки безопасности для Android.
Скачать drozer с github
Drozer позволяет вам искать уязвимости в системе безопасности в приложениях и устройствах, принимая на себя роль приложения и взаимодействуя с виртуальной машиной Dalvik, с конечными точками IPC других приложений и базовой операционной системой.
Drozer предоставляет вам инструменты, которые помогут вам использовать, делиться и понимать публичные эксплойты Android. Это поможет вам развернуть Drozer Agent на устройстве с помощью эксплуатации или социальной инженерии. Использование weasel (MWR дополнительный пейлоад для эксплуатации) Drozer делает возможным доведение до максимума доступных для него прав доступа с помощью установки полного агента, введения ограниченного агента в работающий процесс или подключения к обратной оболочке, чтобы выступать в качестве Инструмента удаленного доступа (Remote Access Tool (RAT).
Drozer является программным обеспечением с открытым исходным кодом, поддерживаемым MWR InfoSecurity.
Drozer разработан для того, чтобы позволять добавлять новый функционал через автономные модули. Если вы хотите создать новые проверки, эксплойты или инструменты, вы должны начать с модуля. Если то, что вы хотите сделать, нельзя осуществить через модуль интерфейса, возможно, вам может понадобиться расширить ядро.
Исходный код Drozer распределен между определенным количеством GitHub проектов. Проекты, с которыми вы будете сталкиваться, работая с оценочной функцией Drozer, следующие:
- drozer: содержит консоль и сервер;
- drozer-agent: содержит Android агент.
- drozer-modules: центральный модуль репозитория drozer, куда могут быть добавлены новые модули, доступные всем пользователям.
- drozer-common: содержит компоненты, которые разделены между агентом и консолью.
Drozer является распределенной системой. Он обладает двумя ключевыми компонентами:
- Agent (Агент): легкое приложение для Android, работающее на устройстве или эмуляторе, используемом для тестирования;
- Console (Консоль): интерфейс командной строки, запущенный на вашем ПК, который позволяет вам взаимодействовать с виртуальной машиной Dalvik через Агента.
Начиная с версии 2.0, Drozer поддерживает Infrastructure Mode, в котором Агент устанавливает внешнее соединение для прохода файервола и NAT. Это позволяет создавать более реалистичные сценарии атаки. Этот режим требует наличие сервера:
- Server (Сервер): предоставляет центральную точку, где консоли и агенты могут встречаться, и маршрутизирует сеансы между ними.
Эти компоненты используют drozer Protocol для обмена данных.
Основы проектирования drozer
drozer Agent разработан для представления произвольного, непривилегированного приложения, запущенного на устройстве Android, и запрашивает, как таковое, только одно разрешение: INTERNET разрешение. Это разрешение обязательно, потому что агенту необходимо открыть соединение для взаимодействия с консолью или сервером.
Drozer пытается избегать зависимостей на внешних инструментах, таких как ADB и AAPT, потому что они будут работать с устройствами работающими только через USB.
Функциональность Drozer должна быть реализована в виде модуля, который использует функции отражения и загрузки классов агента для выполнения своих тестов. Это позволяет системе расшириться без постоянных требований обновления агента.
Более быстрые оценки безопасности Android
Drozer помогает урезать время, которое требуется для оценки безопасности Android путем автоматизации утомительного и трудоемкого процесса.
- Обнаруживает и взаимодействует с поверхностными атаками, открываемыми приложениями Android.
- Выполняет динамический Java-код на устройстве, что позволяет избегать необходимости компилировать и устанавливать небольшие тестовые скрипты.
Тест на реальных Android устройствах
Drozer запускается как на эмуляторах Android, так и на реальных устройствах. Он не требует USB отладки или наличия каких-либо еще инструментов разработки; так что, для получения лучших результатов вы можете проводить оценку на устройствах в их рабочем состоянии.
Автоматизация и расширение
Drozer может быть с легкостью расширен с помощью дополнительных модулей, для того, чтобы находить, тестировать и эксплуатировать другие слабые стороны; все это, вместе с возможностями написания сценария, поможет вам автоматизировать регрессивное тестирование для проблем безопасности.
Протестируйте свою подверженность воздействию к открытым эксплойтам
Drozer предоставляет многообещающие реализации многих публичных эксплойтов для Android. Вы можете использовать это для определения уязвимых устройств в вашей организации, и осознания всех угроз, которые влекут их за собой.
Установка Drozer
git clone https://github.com/mwrlabs/drozer/ cd drozer python setup.py build python setup.py install
Использование
Установка агента
Drozer может быть установлен, используя Android Debug Bridge (adb).
$ adb install drozer.apk
Начало сессии
Теперь на вашем ПК должна быть установлена Drozer консоль, и агент должен работать на вашем устройстве. Сейчас вам нужно подключить их оба, и вы будете готовы к началу исследований.
Мы будем использовать сервер, встроенный в drozer Agent, чтобы сделать это.
Если вы используете эмулятор Android, вам нужно настроить подходящий порт таким образом, чтобы ваш ПК мог подключиться к разъему TCP, открытому агентом внутри эмулятора или на устройстве. По умолчанию, drozer использует порт 31415:
$ adb forward tcp:31415 tcp:31415
Теперь, запустите агент, выберите опцию «Embedded Server» (встроенный сервер) и выберите «Enable», чтобы запустить сервер. Вы должны увидеть уведомление о том, что сервер запустился.
Затем, на вашем ПК, подключитесь, используя консоль drozer:
$ drozer console connect
Если вы используете реальное устройство, IP адрес устройства в сети должен быть указан:
$ drozer console connect --server 192.168.0.10
Вы должны будете увидеть командную строку drozer:
selecting f75640f67144d9a3 (unknown sdk 4.1.1) dz>
Далее дождитесь подтверждения Android ID устройства, к которому вы подключились, вместе с производителем, моделью и версией программного обеспечения Android.
Теперь вы готовы приступить к изучению устройства.
Справочник команд drozer
Команда | Описание |
run | Приводит в исполнение модуль drozer |
list | Показывает список всех модулей drozer, которые могут быть запущены в текущей сессии. Эта команда не показывает модули, на которые у вас нет прав на использование. |
shell | Запускает интерактивную оболочку Linux на устройстве, в контексте процесса агента. |
cd | Устанавливает конкретное пространство имен в качестве корневого каталога сеанса, чтобы избежать повторного ввода полного имени модуля. |
clean | Удаляет временные файлы, которые хранит drozer на устройстве Android. |
contributors | Отображает список людей, которые внесли вклад в структуру drozer и модули, используемые в вашей системе. |
echo | Вывести текст на консоль |
exit | Завершение сеанса drozer. |
help | Показать справку о конкретной команде или модуле. |
load | Загружает файл, содержащий команды drozer, и выполняет их последовательно. |
module | Находит и устанавливает дополнительные drozer модули из Интернета. |
permissions | Выводит список разрешений, предоставленных агенту drozer. |
set | Сохраняет значение переменной, которое будет передано в качестве переменная среды в любую оболочку Linux, созданную drozer. |
unset | Удаляет названную переменную, которую drozer передает в любую оболочку Linux, которую она порождает. |