
Гибкая площадка для Android CTF-задач.
DroidGround
В традиционных CTF-задачах флаги часто прячут в файлах на системе, и атакующим приходится эксплуатировать уязвимости, чтобы их извлечь. Однако в мире Android такой подход плохо работает. APK-файлы легко скачать и декомпилировать, поэтому размещение флага на устройстве обычно делает его извлечение тривиальным с помощью статического анализа или трюков с эмулятором. Это серьёзно ограничивает возможность создавать реалистичные задачи, ориентированные на время выполнения.
DroidGround создан для решения этой проблемы.
Это специально разработанная платформа для проведения задач по взлому Android-приложений в контролируемой и реалистичной среде, где атакующие ограничены ровно настолько, чтобы решать задачи предполагаемым способом.
Что важно, участники могут быть заперты внутри среды приложения. Модульность инструмента позволяет настроить, может ли пользователь запустить шелл, читать произвольные файлы или устанавливать сторонние инструменты. Всё можно настроить так, чтобы единственным способом получить флаг было понимание и эксплуатация самого приложения.
DroidGround позволяет создавать широкий спектр Android-задач, которые иначе сложно реализовать в традиционных CTF-условиях. Например, в задаче на удалённое выполнение кода (RCE) игроки могут получить APK для локального анализа. Обнаружив уязвимость, они могут разработать Frida-скрипт и запустить его через DroidGround на реальном целевом устройстве, чтобы извлечь флаг из внутреннего хранилища. Другие типы задач могут включать скрытые активности, пользовательские broadcast-интенты, эксплуатацию сервисов или динамический анализ с помощью предзагруженных инструментов.
Благодаря потоковой передаче экрана устройства в реальном времени, тонкой настройке функций, интеграции с Frida и настраиваемым скриптам установки и сброса, DroidGround даёт организаторам CTF возможность создавать безопасные, гибкие и реалистичные Android-задачи, выходящие далеко за рамки типичных возможностей.
DroidGround предоставляет богатый набор функций, управляемых с сервера.
scrcpy), с опциональным управлением мышью, касаниями и клавиатуройПочти все функции модульные и определяются через переменные окружения, что обеспечивает точный контроль над рамками задачи.
![]() | ![]() |
|---|---|
| Обзор | Запуск активности |
![]() | ![]() |
| Frida в режиме Jail | Frida в полном режиме |
![]() | ![]() |
| Файловый браузер | Менеджер приложений |
![]() | ![]() |
| Терминал | Логи |
Файл .env.sample в корневой директории — хорошая отправная точка. Ниже приведён полный список всех поддерживаемых на данный момент переменных окружения: