Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dockerized-android — Un framework basato su contenitori per abilitare l'integrazione di componenti mobili nelle piattaforme di formazione sulla sicurezza. | Kitploit
Strumenti/GitHubGitHub/cybersecsi/dockerized-android
Sicurezza AndroidSicurezza dei ContenitoriSicurezza MobileApprendimento e FormazioneLab e Pratica
GitHubcybersecsi/dockerized-android

dockerized-android

Un framework basato su contenitori per abilitare l'integrazione di componenti mobili nelle piattaforme di formazione sulla sicurezza.

Vedi Repository
187253 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Dockerized Android

Dockerized Android è un framework basato su container che consente di eseguire un emulatore Android all'interno di Docker e controllarlo tramite browser. Questo progetto è stato sviluppato per fornire un punto di partenza per l'integrazione di componenti di sicurezza mobile nei Cyber Range, ma può essere utilizzato per qualsiasi scopo. Comunque, a scopi di sviluppo e test, il progetto suggerito è docker-android.

Docker Maintenance Documentation License: MIT

Indice

  • Indice
  • Introduzione
  • Caratteristiche
  • Architettura
    • Componente Core
    • Componente UI
    • Componente Instance Manager
  • Elenco delle immagini Docker
  • Come eseguire
    • Prerequisiti
    • Compatibilità del sistema operativo
    • Soluzione alternativa per OS X per Dispositivo Reale
    • Esecuzione
    • Compilazione
  • Configurazione
  • Licenza
  • Chi parla di Dockerized Android
  • Crediti

Introduzione

Come detto nella breve descrizione sopra, questo progetto è stato creato per fornire un punto di partenza per l'introduzione di componenti di sicurezza mobile nei Cyber Range. Per questo motivo, le funzionalità già sviluppate e quelle che verranno aggiunte in futuro aiuteranno l'utente a rendere più semplice impostare una simulazione realistica (ad esempio per la formazione sulla sicurezza). Questa README è piuttosto lunga, forse vuoi saltare direttamente alla parte "Come eseguire".

Caratteristiche

Le seguenti funzionalità sono attualmente disponibili:

  • Eseguire un emulatore Android in Docker
  • Controllare il dispositivo tramite il browser web
  • Installare applicazioni
  • Abilitare il port forwarding
  • Riavviare il dispositivo
  • Emulare SMS
  • Usare il terminale dal browser web
  • Collegare anche un dispositivo fisico
  • Personalizzare il comportamento all'avvio (vedi sezione Configurazione)
  • Gestire facilmente più istanze
Configurazione inizialeConfigurazione Instance ManagerConfigurazione manuale
initial-setupinstance-manager-setupmanual-setup
Funzionalità della toolboxCambio istanza
toolboxinstance-switch

Architettura

Il progetto è composto da tre parti principali:

  • Core di Dockerized Android
  • UI di Dockerized Android
  • Instance Manager di Dockerized Android (opzionale) La figura seguente fornisce una panoramica dell'architettura attuale dei due componenti obbligatori

Componente Core

Il componente Core è quello che esegue tutti i processi necessari per far funzionare un componente Android (Emulato o Reale) all'interno di un container Docker, esponendo anche alcune funzionalità all'esterno. È senza dubbio la parte più complessa perché deve gestire diversi processi per fornire un insieme di funzionalità. La figura sopra mostra una chiara distinzione tra processi long-lived, processi start e script utilità. Inoltre, questa figura mostra che ci sono 6 processi long-lived, questa è una piccola inesattezza aggiunta per fornire una panoramica generale del componente Core; in realtà ci sono due diverse varianti del componente Core:

  • Core per Emulatore
  • Core per Dispositivo Reale

La principale differenza architetturale riguarda i processi long-lived: il Core per Emulatore esegue il processo long-lived emulator mentre il Core per Dispositivo Reale esegue il processo long-lived scrcpy per visualizzare e controllare il dispositivo fisico. Le altre parti sono abbastanza simili con solo un po' di logica per seguire un comportamento diverso in base al tipo di componente Core.

Componente UI

Il componente UI fornisce un modo semplice per utilizzare tutte le funzionalità esposte dal backend e aggiunge anche la capacità di visualizzare e controllare il dispositivo. L'utente deve inserire manualmente l'indirizzo del componente Core e le porte corrispondenti (la porta esposta dal backend e la porta esposta da websockify); attraverso questa configurazione manuale è possibile cambiare le porte predefinite (che sono 4242 per il backend e 6080 per websockify).

Componente Instance Manager

Il componente Instance Manager ha il compito di fornire tutte le informazioni (cioè indirizzi e porte) sui Core in esecuzione attraverso una singola API REST. Questo viene fatto scrivendo un semplice file di configurazione JSON che contiene tutte le informazioni sui Core presenti nel docker-compose per evitare il noioso lavoro di aggiungerli manualmente uno per uno. La struttura del file di configurazione JSON è la seguente:

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

Elenco delle immagini Docker

L'immagine secsi/dockerized-android-core-bare non scarica nessuna immagine di sistema e puoi montare la cartella sulla tua macchina host dove hai tutte le cartelle SDK

Come eseguire

Per vedere un esempio completo su come eseguire la piattaforma, puoi guardare il docker-compose disponibile nella directory examples. Questa directory contiene tre diverse configurazioni:

  • docker-compose-core: configurazione con un core per un dispositivo reale;
  • docker-compose-emulator: configurazione con un core per un emulatore;
  • docker-compose-instance-manager: configurazione con due core diversi e anche il componente opzionale Instance Manager.

Una volta capito come funziona, puoi modificarlo per soddisfare qualsiasi esigenza.

Prerequisiti

Docker e Docker Compose devono essere installati sulla tua macchina.

Compatibilità del sistema operativo

Questa piattaforma si comporta in modi diversi in base al sistema operativo host; ecco una tabella che riassume la compatibilità attuale:

LinuxWindowsOS X
Core per EmulatorePiena compatibilitàNon supportato (ancora)Non supportato
Core per Dispositivo RealePiena compatibilitàPiena compatibilitàSoluzione alternativa

Per Windows e OS X devi usare una VM Linux con virtualizzazione annidata.

Per verificare se la tua macchina Linux supporta la virtualizzazione annidata puoi eseguire i seguenti comandi:

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

Soluzione alternativa per OS X per Dispositivo Reale

Per usare il Core per Dispositivo Reale su OS X puoi:

  • Usare l'adb dell'host
  • Usare la connessione wireless

Per la connessione wireless Google fornisce un semplice tutorial. Per connetterti all'adb dell'host dall'interno del container devi entrare manualmente nel container ed eseguire:

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

Esecuzione

I comandi per iniziare a usare il framework sono i seguenti:

  1. Per prima cosa, scegli una configurazione dalla cartella examples. Per esempio:
root@kitploit:~
cp ./examples/docker-compose-core.yml docker-compose.yml
  1. Esegui con docker-compose:
root@kitploit:~
docker-compose up

Più semplicemente puoi anche usare il comando:

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

Non resta che navigare con un browser all'indirizzo http://127.0.0.1:8080 e impostare la configurazione corrente:

Se Instance Manager non è stato usato, clicca su Configurazione manuale e inserisci le seguenti informazioni:

  1. Un nome a tua scelta per l'istanza;
  2. Indirizzo IP del componente core dichiarato in docker-compose;
  3. Numero porta del core (4242 di default);
  4. Numero porta VNC (6080 di default).

Se Instance Manager viene usato, clicca su 'Instance Manager' e inserisci semplicemente l'indirizzo IP e il suo numero di porta (ad esempio, 193.21.1.100:7373).

Questo è tutto! Puoi usare il framework all'interno del browser.

Compilazione

Puoi anche compilare le immagini tu stesso attraverso gli script nella cartella utils

Configurazione

Puoi configurare alcune funzionalità per personalizzare l'installazione tramite variabili d'ambiente; la tabella seguente fornisce un elenco di tutte:

La variabile REAL_DEVICE_SERIAL è fondamentale se è collegato più di un dispositivo fisico perché se manca non funzionerà nulla. Infine c'è un elenco di porte esposte da ciascun componente:

Licenza

Dockerized Android è un software open-source e gratuito rilasciato sotto la Licenza MIT.

Chi parla di 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

Citazione

Se trovi utile questo codice nella tua ricerca, considera di citare il nostro articolo:

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

Crediti

Questo progetto rappresenta la nostra tesi di laurea magistrale in Ingegneria Informatica presso l'Università Federico II di Napoli. Un ringraziamento speciale al Professor Simon Pietro Romano e all'Ingegnere Francesco Caturano, fonti di ispirazione per questo lavoro.

Scarica lo strumento
Versione AndroidAPIImmagine
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
ComponenteNome ENVValore predefinitoDescrizione
CoreTARGET_PORT6080Porta Websockify
CoreCUSTOM_APP_DEFAULT_PORT4242Porta backend Node.js
CoreDEVICEINFONon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità di informazioni sul dispositivo
CoreTERMINALNon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità del terminale
CoreAPKNon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità di installazione APK
CoreFORWARDNon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità di port forwarding
CoreSMSNon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità di emulazione SMS
CoreREBOOTNon impostato, ma si comporta come trueAbilita/Disabilita la funzionalità di riavvio
CoreINSTALL_ON_STARTUPfalseAbilita/Disabilita la funzionalità che permette di installare tutti gli apk posti nella cartella /root/dockerized-android/apk
CoreENABLE_UNKNOWN_SOURCESfalseAbilita l'installazione da fonti sconosciute
CoreREAL_DEVICE_SERIALnon impostatoSe è collegato più di un dispositivo fisico, questo valore deve essere impostato al seriale del dispositivo che deve essere controllato, altrimenti tutte le altre funzionalità non funzioneranno
Instance ManagerDEFAULT_PORT7373Porta della REST API
ComponentePortaDescrizione
Core5555Porta ADB
Core4242Backend Node.js
Core6080Websockify (per noVNC)
UI80Frontend
Instance Manager7373API REST