Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
dockerized-android — Фреймворк на основе контейнеров для интеграции мобильных компонентов в платформы обучения безопасности | Kitploit
Инструменты/GitHubGitHub/cybersecsi/dockerized-android
Безопасность AndroidБезопасность контейнеровМобильная безопасностьОбучение и ОбразованиеЛаборатории и Практика
GitHubcybersecsi/dockerized-android

dockerized-android

Фреймворк на основе контейнеров для интеграции мобильных компонентов в платформы обучения безопасности

Репозиторий
187253 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Dockerized Android

Dockerized Android — это контейнерная платформа, позволяющая запускать эмулятор Android внутри Docker и управлять им через браузер. Этот проект был разработан для того, чтобы стать отправной точкой для интеграции компонентов мобильной безопасности в Cyber Ranges, но он может использоваться для любых целей. В любом случае, для целей разработки и тестирования рекомендуется проект docker-android.

Docker Maintenance Documentation License: MIT

Содержание

  • Содержание
  • Введение
  • Возможности
  • Архитектура
    • Основной компонент
    • Компонент UI
    • Компонент управления экземплярами
  • Список Docker-образов
  • Как запустить
    • Предварительные требования
    • Совместимость с ОС
    • Обходной путь для OS X с реальным устройством
    • Запуск
    • Сборка
  • Настройка
  • Лицензия
  • Кто говорит о Dockerized Android
  • Благодарности

Введение

Как указано в кратком описании выше, этот проект был создан для того, чтобы стать отправной точкой для внедрения компонентов мобильной безопасности в Cyber Ranges. По этой причине уже реализованные функции и те, которые будут добавлены в будущем, помогут пользователю упростить настройку реалистичного моделирования (например, для обучения безопасности). Этот README довольно длинный, возможно, вы захотите сразу перейти к разделу «Как запустить».

Возможности

В настоящее время доступны следующие функции:

  • Запуск эмулятора Android в Docker
  • Управление устройством через веб-браузер
  • Установка приложений
  • Включение перенаправления портов
  • Перезагрузка устройства
  • Эмуляция SMS
  • Использование терминала из веб-браузера
  • Подключение физического устройства
  • Настройка поведения при запуске (см. раздел «Настройка»)
  • Простое управление несколькими экземплярами
Начальная настройкаНастройка диспетчера экземпляровРучная настройка
initial-setupinstance-manager-setupmanual-setup
Функции панели инструментовПереключение экземпляров
toolboxinstance-switch

Архитектура

Проект состоит из трех основных частей:

  • Ядро Dockerized Android
  • Пользовательский интерфейс (UI) Dockerized Android
  • Диспетчер экземпляров Dockerized Android (опционально)

На следующем рисунке представлен обзор фактической архитектуры двух обязательных компонентов:

Основной компонент

Основной компонент — это тот, который выполняет все процессы, необходимые для запуска компонента Android (эмулированного или реального) внутри контейнера Docker, а также предоставляет некоторые функции внешним системам. Это, несомненно, самая сложная часть, поскольку она должна управлять различными процессами, чтобы обеспечить набор функций. На приведенном выше рисунке показано четкое различие между долгоживущими процессами, процессами запуска и служебными сценариями. Кроме того, на этом рисунке показано, что существует 6 долгоживущих процессов; это небольшая неточность, добавленная для общего обзора основного компонента. В реальности существуют две разные разновидности основного компонента:

  • Ядро для эмулятора
  • Ядро для реального устройства

Основное архитектурное различие касается долгоживущих процессов: ядро для эмулятора запускает долгоживущий процесс эмулятора, в то время как ядро для реального устройства запускает долгоживущий процесс scrcpy для отображения и управления физическим устройством. Остальные части довольно схожи, с небольшой разницей в логике для обеспечения различного поведения в зависимости от типа основного компонента.

Компонент UI

Компонент пользовательского интерфейса предоставляет простой способ использования всех функций, предоставляемых серверной частью, а также добавляет возможность отображения и управления устройством. Пользователь должен вручную ввести адрес основного компонента и соответствующие порты (порт, предоставляемый серверной частью, и порт, предоставляемый websockify); с помощью этой ручной настройки можно изменить порты по умолчанию (которые равны 4242 для серверной части и 6080 для websockify).

Компонент управления экземплярами

Компонент диспетчера экземпляров отвечает за предоставление всей информации (т.е. адресов и портов) о работающих ядрах через единый REST API. Это достигается путем написания простого JSON-файла конфигурации, который содержит всю информацию о ядрах, присутствующих в docker-compose, чтобы избежать утомительной работы по ручному добавлению каждого по отдельности. Структура JSON-файла конфигурации следующая:

root@kitploit:~
{
    "instances": [
        {
            "name": [Generic string to identify the device],
            "address": [Address of the component],
            "core_port": [Port of the backend],
            "vnc_port": [Port of VNC]
        }
    ]
}

Список Docker-образов

Образ secsi/dockerized-android-core-bare не загружает никакого системного образа, и вы можете смонтировать папку на хост-машине, где находятся все папки SDK.

Как запустить

Чтобы увидеть полный пример того, как запустить платформу, вы можете посмотреть на docker-compose, доступный в каталоге examples. Этот каталог содержит три различные конфигурации:

  • docker-compose-core: настройка с ядром для реального устройства;
  • docker-compose-emulator: настройка с ядром для эмулятора;
  • docker-compose-instance-manager: настройка с двумя разными ядрами, а также опциональным компонентом диспетчера экземпляров.

Когда вы поймете, как это работает, вы можете изменить конфигурацию в соответствии с вашими потребностями.

Предварительные требования

Docker и Docker Compose должны быть установлены на вашем компьютере.

Совместимость с ОС

Эта платформа ведет себя по-разному в зависимости от хост-ОС; ниже приведена таблица, обобщающая текущую совместимость:

LinuxWindowsOS X
Ядро для эмулятораПолная совместимостьНе поддерживается (пока)Не поддерживается
Ядро для реального устройстваПолная совместимостьПолная совместимостьОбходной путь

Для Windows и OS X необходимо использовать виртуальную машину Linux с вложенной виртуализацией.

Чтобы проверить, поддерживает ли ваш компьютер Linux вложенную виртуализацию, выполните следующие команды:

root@kitploit:~
sudo apt install cpu-checker
kvm-ok

Обходной путь для OS X с реальным устройством

Чтобы использовать ядро для реального устройства на OS X, вы можете:

  • Использовать adb хост-системы
  • Использовать беспроводное соединение

Для беспроводного соединения Google предоставляет простое руководство. Чтобы подключиться к adb хост-системы из контейнера, необходимо вручную войти в контейнер и выполнить:

root@kitploit:~
adb -H host.docker.internal devices

Запуск

Команды для начала использования фреймворка следующие:

  1. Сначала выберите конфигурацию из папки examples. Например:
root@kitploit:~
cp ./examples/docker-compose-core.yml docker-compose.yml
  1. Запустите с помощью docker-compose:
root@kitploit:~
docker-compose up

Проще можно также использовать команду:

docker-compose -f ./examples/docker-compose-core.yml up

Остается только перейти через браузер по адресу http://127.0.0.1:8080 и установить текущую конфигурацию:

Если диспетчер экземпляров не использовался, нажмите Ручная настройка и введите следующую информацию:

  1. Имя экземпляра по вашему выбору;
  2. IP-адрес основного компонента, указанный в docker-compose;
  3. Номер порта ядра (4242 по умолчанию);
  4. Номер порта VNC (6080 по умолчанию).

Если используется диспетчер экземпляров, нажмите «Диспетчер экземпляров» и просто введите IP-адрес и номер порта (например, 193.21.1.100:7373).

Вот и все! Вы можете использовать фреймворк в браузере.

Сборка

Вы также можете самостоятельно собрать образы с помощью скриптов, расположенных в папке utils.

Настройка

Вы можете настроить некоторые функции с помощью переменных окружения (ENV); следующая таблица содержит их полный список:

Переменная REAL_DEVICE_SERIAL является критически важной, если подключено более одного физического устройства, так как при ее отсутствии ничего не будет работать.

Наконец, список портов, предоставляемых каждым компонентом:

Лицензия

Dockerized Android — это программное обеспечение с открытым исходным кодом, распространяемое по лицензии MIT.

Кто говорит о Dockerized Android

  • SecSI
    • https://secsi.io/blog/a-container-based-framework-for-android-emulation-and-hacking/
  • KitPloit
    • https://www.kitploit.com/2021/10/dockerized-android-container-based.html
    • https://www.kitploit.com/2021/12/top-20-most-popular-hacking-tools-in.html

Citation

Если вы находите этот код полезным для своих исследований, пожалуйста, рассмотрите возможность цитирования нашей статьи:

root@kitploit:~
@inproceedings{Capone2022,
  doi = {10.1109/icecet55527.2022.9872834},
  url = {https://doi.org/10.1109/icecet55527.2022.9872834},
  year = {2022},
  month = jul,
  publisher = {{IEEE}},
  author = {Daniele Capone and Francesco Caturano and Angelo Delicato and Gaetano Perrone and Simon Pietro Romano},
  title = {Dockerized Android: a container-based platform to build mobile Android scenarios for Cyber Ranges},
  booktitle = {2022 International Conference on Electrical,  Computer and Energy Technologies ({ICECET})}
}

Благодарности

Этот проект представляет собой нашу магистерскую диссертацию по компьютерной инженерии в Университете Федерико II в Неаполе. Особая благодарность профессору Саймону Пьетро Романо и инженеру Франческо Катурано, источникам вдохновения для этой работы.

Скачать инструмент
Версия AndroidAPIImage
5.0.121secsi/dockerized-android-core-emulator-5.0.1
5.1.122secsi/dockerized-android-core-emulator-5.1.1
6.023secsi/dockerized-android-core-emulator-6.0
7.024secsi/dockerized-android-core-emulator-7.0
7.1.125secsi/dockerized-android-core-emulator-7.1.1
8.026secsi/dockerized-android-core-emulator-8.0
8.127secsi/dockerized-android-core-emulator-8.1
9.028secsi/dockerized-android-core-emulator-9.0
10.029secsi/dockerized-android-core-emulator-10.0
11.030secsi/dockerized-android-core-emulator-11.0
--secsi/dockerized-android-core-bare
--secsi/docker-android-core-real-device
КомпонентИмя ENVЗначение по умолчаниюОписание
ЯдроTARGET_PORT6080Порт websockify
ЯдроCUSTOM_APP_DEFAULT_PORT4242Порт серверной части Node.js
ЯдроDEVICEINFOНе задано, но ведет себя как trueВключает/отключает функцию информации об устройстве
ЯдроTERMINALНе задано, но ведет себя как trueВключает/отключает функцию терминала
ЯдроAPKНе задано, но ведет себя как trueВключает/отключает функцию установки APK
ЯдроFORWARDНе задано, но ведет себя как trueВключает/отключает функцию перенаправления портов
ЯдроSMSНе задано, но ведет себя как trueВключает/отключает функцию эмуляции SMS
ЯдроREBOOTНе задано, но ведет себя как trueВключает/отключает функцию перезагрузки
ЯдроINSTALL_ON_STARTUPfalseВключает/отключает функцию, позволяющую устанавливать все APK, размещенные в папке /root/dockerized-android/apk
ЯдроENABLE_UNKNOWN_SOURCESfalseВключает установку из неизвестных источников
ЯдроREAL_DEVICE_SERIALне заданоЕсли подключено более одного физического устройства, это значение должно быть установлено на серийный номер устройства, которым необходимо управлять, иначе все остальные функции не будут работать
Диспетчер экземпляровDEFAULT_PORT7373Порт REST API
КомпонентПорт №Описание
Ядро5555Порт ADB
Ядро4242Серверная часть Node.js
Ядро6080Websockify (для noVNC)
Пользовательский интерфейс80Фронтенд
Диспетчер экземпляров7373REST API