Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
dockerized-android — 基于容器的框架,用于在安全培训平台中集成移动组件 | Kitploit
工具/GitHubGitHub/cybersecsi/dockerized-android
Android安全容器安全移动安全学习与教育实验室与实践
GitHubcybersecsi/dockerized-android

dockerized-android

基于容器的框架,用于在安全培训平台中集成移动组件

查看仓库
187253年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

容器化的 Android

容器化的 Android 是一个基于容器的框架,允许在 Docker 内执行 Android 模拟器并通过浏览器进行控制。该项目旨在为将移动安全组件集成到网络靶场提供起点,但它可以用于任何目的。不过,对于开发和测试目的,推荐使用 docker-android 项目。

Docker Maintenance Documentation License: MIT

目录

  • 目录
  • 介绍
  • 特性
  • 架构
    • 核心组件
    • UI 组件
    • 实例管理器组件
  • Docker 镜像列表
  • 如何运行
    • 先决条件
    • 操作系统兼容性
    • OS X 针对真实设备的变通方法
    • 运行
    • 构建
  • 配置
  • 许可协议
  • 谁在谈论容器化的 Android
  • 致谢

介绍

正如上述简要描述所述,该项目的创建是为了给网络靶场中移动安全组件的引入提供一个起点。因此,已经开发的功能以及未来将添加的功能将帮助用户更轻松地设置真实的模拟场景(例如用于安全培训)。这份 README 相当长,也许您只想跳到*“如何运行”*部分。

特性

目前可用的特性如下:

  • 在 Docker 中运行 Android 模拟器
  • 通过网页浏览器控制设备
  • 安装应用
  • 启用端口转发
  • 重启设备
  • 模拟短信
  • 从网页浏览器使用终端
  • 也可连接物理设备
  • 自定义启动行为(参见配置部分)
  • 轻松管理多个实例
初始设置实例管理器设置手动设置
initial-setupinstance-manager-setupmanual-setup
工具箱功能实例切换
toolboxinstance-switch

架构

该项目由三个主要部分组成:

  • 容器化的 Android 核心
  • 容器化的 Android UI
  • 容器化的 Android 实例管理器(可选) 下图提供了两个必需组件的实际架构概览

核心组件

核心组件是执行在 Docker 容器内运行 Android 组件(模拟或真实)所需的所有进程的组件,同时还向外部暴露一些功能。它无疑是最复杂的部分,因为它必须管理不同的进程以提供一组功能。上图清晰区分了长生命周期进程、启动进程和实用脚本。此外,该图显示有 6 个长生命周期进程,这是一个小不准确之处,旨在提供核心组件的总体概览;实际上,核心组件有两种不同的风格:

  • 用于模拟器的核心
  • 用于真实设备的核心

主要架构差异在于长生命周期进程:用于模拟器的核心运行长生命周期的 emulator 进程,而用于真实设备的核心运行长生命周期的 scrcpy 进程以显示和控制物理设备。其他部分非常相似,只是根据核心组件的类型遵循不同行为的一些逻辑。

UI 组件

UI 组件提供了一种简单的方式来使用后端暴露的所有功能,并且还增加了显示和控制设备的能力。用户需要手动输入核心组件的地址和对应的端口(后端暴露的端口和 websockify 暴露的端口);通过这种手动设置,可以更改默认端口(后端默认为 4242,websockify 默认为 6080)。

实例管理器组件

实例管理器组件的工作是通过单个 REST API 提供所有运行中核心的信息(即地址和端口)。这是通过编写一个简单的 JSON 配置文件来完成的,该文件包含所有存在于 docker-compose 中的核心信息,以避免手动逐个添加的痛苦工作。JSON 配置文件的结构如下:

root@kitploit:~
{
    "instances": [
        {
            "name": [标识设备的通用字符串],
            "address": [组件的地址],
            "core_port": [后端的端口],
            "vnc_port": [VNC 的端口]
        }
    ]
}

Docker 镜像列表

secsi/dockerized-android-core-bare 不会下载任何系统镜像,您可以将主机上包含所有 SDK 文件夹的目录挂载到容器中。

如何运行

要查看如何运行该平台的完整示例,您可以查看 examples 目录中提供的 docker-compose 文件。该目录包含三种不同的配置:

  • 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. docker-compose 中声明的核心组件的 IP 地址;
  3. 核心端口号(默认为 4242);
  4. VNC 端口号(默认为 6080)。

如果使用了实例管理器,请点击“实例管理器”,只需输入其 IP 地址和端口号(例如 193.21.1.100:7373)。

就这样!您可以在浏览器中使用该框架了。

构建

您也可以通过 utils 文件夹中的脚本来自行构建镜像。

配置

您可以通过环境变量配置一些功能以自定义设置,下表列出了所有环境变量:

REAL_DEVICE_SERIAL 变量在连接多个物理设备时至关重要,因为如果缺少该变量,一切将无法正常工作。 最后,每个组件暴露的端口列表如下:

许可协议

容器化的 Android 是开源且免费的软件,根据 MIT 许可协议 发布。

谁在谈论容器化的 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

引用

如果您觉得此代码在您的研究中有用,请引用我们的论文:

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})}
}

致谢

该项目代表我们在那不勒斯腓特烈二世大学计算机工程专业的硕士论文。 特别感谢 Simon Pietro Romano 教授和工程师 Francesco Caturano,他们是我们这项工作的灵感来源。

下载工具
Android 版本API镜像
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 变量名默认值描述
CoreTARGET_PORT6080Websockify 端口
CoreCUSTOM_APP_DEFAULT_PORT4242Node.js 后端端口
CoreDEVICEINFO未设置,但行为等同于 true启用/禁用设备信息功能
CoreTERMINAL未设置,但行为等同于 true启用/禁用终端功能
CoreAPK未设置,但行为等同于 true启用/禁用安装 APK 功能
CoreFORWARD未设置,但行为等同于 true启用/禁用端口转发功能
CoreSMS未设置,但行为等同于 true启用/禁用短信模拟功能
CoreREBOOT未设置,但行为等同于 true启用/禁用重启功能
CoreINSTALL_ON_STARTUPfalse启用/禁用在启动时安装所有位于 /root/dockerized-android/apk 文件夹中的 apk 的功能
CoreENABLE_UNKNOWN_SOURCESfalse启用从未知来源安装
CoreREAL_DEVICE_SERIAL未设置如果连接了多个物理设备,此值必须设置为要控制的设备的序列号,否则所有其他功能将无法正常工作
Instance ManagerDEFAULT_PORT7373REST API 的端口
组件端口号描述
Core5555ADB 端口
Core4242Node.js 后端
Core6080Websockify(用于 noVNC)
UI80前端
Instance Manager7373REST API