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 は、Docker 内で Android エミュレータを実行し、ブラウザを通じて制御できるコンテナベースのフレームワークです。このプロジェクトは、モバイルセキュリティコンポーネントを Cyber Range に統合するための出発点を提供するために開発されましたが、あらゆる目的に使用できます。ただし、開発およびテスト目的では、docker-android プロジェクトを推奨します。

Docker Maintenance Documentation License: MIT

目次

  • 目次
  • はじめに
  • 機能
  • アーキテクチャ
    • コアコンポーネント
    • UI コンポーネント
    • インスタンスマネージャコンポーネント
  • Docker イメージ一覧
  • 実行方法
    • 前提条件
    • OS 互換性
    • OS X の実デバイス向け回避策
    • 実行
    • ビルド
  • 設定
  • ライセンス
  • Dockerized Android について言及しているサイト
  • クレジット

はじめに

上記の簡単な説明にあるように、このプロジェクトは Cyber Range にモバイルセキュリティコンポーネントを導入するための出発点を提供するために作成されました。そのため、すでに開発されている機能および今後追加される予定の機能は、現実的なシミュレーション(セキュリティトレーニングなど)のセットアップを容易にするのに役立ちます。この README はかなり長いので、「実行方法」の部分に飛ばしてしまっても構いません。

機能

現在利用可能な機能は以下の通りです。

  • Docker 内で Android エミュレータを実行
  • Web ブラウザを介してデバイスを制御
  • アプリケーションのインストール
  • ポートフォワーディングの有効化
  • デバイスの再起動
  • SMS のエミュレート
  • Web ブラウザから端末を使用
  • 物理デバイスも接続可能
  • 起動時の動作をカスタマイズ(設定セクションを参照)
  • 複数のインスタンスを簡単に管理
初期設定インスタンスマネージャ設定手動設定
initial-setupinstance-manager-setupmanual-setup
ツールボックスの機能インスタンス切り替え
toolboxinstance-switch

アーキテクチャ

このプロジェクトは、以下の 3 つの主要なコンポーネントで構成されています。

  • Dockerized Android Core(コア)
  • Dockerized Android UI
  • Dockerized Android Instance Manager(インスタンスマネージャ)(オプション) 次の図は、2 つの必須コンポーネントの実際のアーキテクチャの概要を示しています。

コアコンポーネント

コアコンポーネントは、Docker コンテナ内で Android コンポーネント(エミュレートまたは実デバイス)を実行するために必要なすべてのプロセスを実行し、さらにいくつかの機能を外部に公開するコンポーネントです。一連の機能を提供するために複数のプロセスを管理する必要があるため、間違いなく最も複雑な部分です。上の図では、長時間実行プロセス、起動プロセス、ユーティリティスクリプトの明確な区別が示されています。さらに、この図は 6 つの長時間実行プロセスがあることを示していますが、これはコアコンポーネントの一般的な概要を提供するために追加されたわずかな不正確さであり、実際にはコアコンポーネントには 2 つの異なるフレーバーがあります。

  • エミュレータ用コア
  • 実デバイス用コア

主なアーキテクチャ上の違いは、長時間実行プロセスに関するものです。エミュレータ用コアは長時間実行の emulator プロセスを実行し、実デバイス用コアは物理デバイスの表示と制御のために長時間実行の scrcpy プロセスを実行します。他の部分はかなり類似しており、コアコンポーネントのタイプに基づいて異なる動作を実現するためのロジックが一部異なるのみです。

UI コンポーネント

UI コンポーネントは、バックエンドが公開するすべての機能を簡単に使用できるようにし、さらにデバイスの表示と制御機能も追加します。ユーザーは手動でコアコンポーネントのアドレスと対応するポート(バックエンドが公開するポートと websockify が公開するポート)を入力する必要があります。この手動セットアップにより、デフォルトのポート(バックエンドは 4242、websockify は 6080)を変更できます。

インスタンスマネージャコンポーネント

インスタンスマネージャコンポーネントの役割は、単一の REST API を通じて実行中のすべてのコアに関する情報(アドレスとポート)を提供することです。これは、docker-compose に存在するすべてのコアに関する情報を含むシンプルな JSON 設定ファイルを作成することで行われ、手作業で 1 つずつ追加する面倒な作業を回避します。JSON 設定ファイルの構造は以下のとおりです。

root@kitploit:~
{
    "instances": [
        {
            "name": [デバイスを識別する任意の文字列],
            "address": [コンポーネントのアドレス],
            "core_port": [バックエンドのポート],
            "vnc_port": [VNC のポート]
        }
    ]
}

Docker イメージ一覧

secsi/dockerized-android-core-bare はシステムイメージをダウンロードせず、すべての SDK フォルダがあるホストマシン上のフォルダをマウントできます。

実行方法

プラットフォームの実行方法の完全な例については、examples ディレクトリにある docker-compose を参照してください。このディレクトリには 3 つの異なる設定が含まれています。

  • docker-compose-core: 実デバイス用のコアを備えた設定。
  • docker-compose-emulator: エミュレータ用のコアを備えた設定。
  • docker-compose-instance-manager: 2 つの異なるコアと オプション のインスタンスマネージャコンポーネントを備えた設定。

動作を理解したら、必要に応じて変更できます。

前提条件

マシンに Docker および Docker Compose がインストールされている必要があります。

OS 互換性

このプラットフォームはホスト OS によって動作が異なります。以下に現在の互換性をまとめた表を示します。

LinuxWindowsOS X
エミュレータ用コア完全互換未サポート(近日対応予定)未サポート
実デバイス用コア完全互換完全互換回避策あり

Windows および OS X では、ネストされた仮想化を備えた Linux VM を使用する必要があります。

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 にアクセスし、現在の設定を行います。

インスタンスマネージャ を使用しない場合は、Manual Setup(手動設定)をクリックし、以下の情報を入力します。

  1. インスタンスの任意の名前。
  2. docker-compose で宣言されたコアコンポーネントの IP アドレス。
  3. コアのポート番号(デフォルトは 4242)。
  4. VNC のポート番号(デフォルトは 6080)。

インスタンスマネージャ を使用する場合は、"Instance Manager" をクリックし、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

引用

このコードが研究に役立つ場合は、以下の論文を引用することをご検討ください。

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

クレジット

このプロジェクトは、ナポリ大学フェデリコ2世 におけるコンピュータ工学の修士論文を基にしています。この研究の着想の源となった Simon Pietro Romano 教授(プロフィール)および Francesco Caturano エンジニア(GitHub)に特に感謝します。

ツールをダウンロード
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 として動作SMS エミュレーション機能の有効/無効
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