Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dockerized-android — Um framework baseado em contêineres para permitir a integração de componentes móveis em plataformas de treinamento de segurança. | Kitploit
Ferramentas/GitHubGitHub/cybersecsi/dockerized-android
Segurança AndroidSegurança de ContêineresSegurança MóvelAprendizado e EducaçãoLabs e Prática
GitHubcybersecsi/dockerized-android

dockerized-android

Um framework baseado em contêineres para permitir a integração de componentes móveis em plataformas de treinamento de segurança.

Ver Repositório
18725há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Dockerized Android

Dockerized Android é um framework baseado em containers que permite executar um Android Emulator dentro do Docker e controlá-lo através de um navegador. Este projeto foi desenvolvido para fornecer um ponto de partida para integrar componentes de segurança móvel em Cyber Ranges, mas pode ser usado para qualquer finalidade. De qualquer forma, para fins de desenvolvimento e teste, o projeto sugerido é docker-android.

Docker Maintenance Documentation License: MIT

Índice

  • Índice
  • Introdução
  • Recursos
  • Arquitetura
    • Componente Core
    • Componente UI
    • Componente Gerenciador de Instâncias
  • Lista de imagens Docker
  • Como executar
    • Pré-requisitos
    • Compatibilidade com SO
    • Solução alternativa para OS X para Dispositivo Real
    • Executar
    • Construir
  • Configuração
  • Licença
  • Quem fala sobre Dockerized Android
  • Créditos

Introdução

Conforme afirmado na breve descrição acima, este projeto foi criado para fornecer um ponto de partida para a introdução de componentes de segurança móvel em Cyber Ranges. Por esse motivo, os recursos já desenvolvidos e os que serão adicionados no futuro ajudarão o usuário a configurar mais facilmente uma simulação realista (por exemplo, para treinamento de segurança). Este README é bastante longo; talvez você queira pular direto para a parte "Como executar".

Recursos

Os seguintes recursos estão atualmente disponíveis:

  • Executar um Android Emulator no Docker
  • Controlar o dispositivo através do navegador web
  • Instalar aplicativos
  • Habilitar encaminhamento de porta
  • Reiniciar o dispositivo
  • Emular SMS
  • Usar o terminal a partir do navegador web
  • Anexar também um dispositivo físico
  • Personalizar o comportamento de inicialização (consulte a seção Configuração)
  • Gerenciar facilmente várias instâncias
Configuração inicialConfiguração do Gerenciador de InstânciasConfiguração manual
initial-setupinstance-manager-setupmanual-setup
Recursos da caixa de ferramentasTroca de instância
toolboxinstance-switch

Arquitetura

O projeto é composto por três partes principais:

  • Dockerized Android Core
  • Dockerized Android UI
  • Dockerized Android Instance Manager (opcional) A figura a seguir fornece uma visão geral da arquitetura atual dos dois componentes obrigatórios

Componente Core

O componente Core é aquele que executa todos os processos necessários para executar um Android Component (Emulado ou Real) dentro de um container Docker, expondo também alguns recursos para o exterior. É sem dúvida a parte mais complexa, pois precisa gerenciar diferentes processos para fornecer um conjunto de recursos. A figura acima mostra uma distinção clara entre processos de longa duração, processos de inicialização e scripts de utilidade. Além disso, esta figura mostra que existem 6 processos de longa duração; isso é uma pequena imprecisão adicionada para fornecer uma visão geral do componente Core. Na realidade, existem duas variações diferentes do componente Core:

  • Core para Emulador
  • Core para Dispositivo Real

A principal diferença arquitetural está relacionada aos processos de longa duração: o Core para Emulador executa o processo de longa duração emulator, enquanto o Core para Dispositivo Real executa o processo de longa duração scrcpy para exibir e controlar o dispositivo físico. As outras partes são bastante semelhantes, com apenas alguma lógica para seguir um comportamento diferente com base no tipo do componente Core.

Componente UI

O componente UI fornece uma maneira simples de usar todos os recursos expostos pelo backend e também adiciona a capacidade de exibir e controlar o dispositivo. O usuário deve inserir manualmente o endereço do componente Core e as portas correspondentes (a porta exposta pelo backend e a porta exposta pelo websockify); através desta configuração manual é possível alterar as portas padrão (que são 4242 para o backend e 6080 para o websockify).

Componente Gerenciador de Instâncias

O componente Gerenciador de Instâncias tem a função de fornecer todas as informações (ou seja, endereços e portas) sobre os Cores em execução através de uma única API REST. Isso é feito escrevendo um arquivo de configuração JSON simples que contém todas as informações sobre os Cores presentes no docker-compose para evitar o trabalho tedioso de adicioná-los manualmente um por um. A estrutura do arquivo de configuração JSON é a seguinte:

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

Lista de imagens Docker

O secsi/dockerized-android-core-bare não baixa nenhuma imagem de sistema e você pode montar a pasta na sua máquina host onde você tem todas as pastas do SDK

Como executar

Para ver um exemplo completo de como executar a plataforma, você pode conferir o docker-compose disponível no diretório examples. Este diretório contém três configurações diferentes:

  • docker-compose-core: configuração com um core para um dispositivo real;
  • docker-compose-emulator: configuração com um core para um emulador;
  • docker-compose-instance-manager: configuração com dois cores diferentes e também o componente opcional Gerenciador de Instâncias.

Depois de entender como funciona, você pode modificá-lo para atender às suas necessidades.

Pré-requisitos

Docker e Docker Compose precisam estar instalados na sua máquina.

Compatibilidade com SO

Esta plataforma se comporta de maneiras diferentes com base no SO host. Aqui está uma tabela que resume a compatibilidade atual:

LinuxWindowsOS X
Core para EmuladorCompatibilidade totalNão suportado (ainda)Não suportado
Core para Dispositivo RealCompatibilidade totalCompatibilidade totalSolução alternativa

Para Windows e OS X, você precisa usar uma VM Linux com virtualização aninhada.

Para verificar se sua máquina Linux suporta virtualização aninhada, você pode executar os seguintes comandos:

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

Solução alternativa para OS X para Dispositivo Real

Para usar o Core para Dispositivo Real no OS X, você pode:

  • Usar o adb do host
  • Usar conexão sem fio

Para a conexão sem fio, o Google fornece um tutorial simples. Para se conectar ao adb do host de dentro do container, você precisa entrar manualmente no container e executar:

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

Executar

Os comandos para começar a usar o framework são os seguintes:

  1. Primeiramente, escolha uma configuração encontrada na pasta examples. Por exemplo:
root@kitploit:~
cp ./examples/docker-compose-core.yml docker-compose.yml
  1. Execute com docker-compose:
root@kitploit:~
docker-compose up

Mais simplesmente, você também pode usar o comando:

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

Resta apenas navegar através de um navegador no seguinte endereço http://127.0.0.1:8080 e definir a configuração atual:

Se o Gerenciador de Instâncias não foi usado, clique em Configuração manual e insira as seguintes informações:

  1. Um nome de sua escolha para a instância;
  2. Endereço IP do componente core declarado no docker-compose;
  3. Número da porta do core (4242 por padrão);
  4. Número da porta VNC (6080 por padrão).

Se o Gerenciador de Instâncias for usado, clique em "Gerenciador de Instâncias" e insira apenas o endereço IP e seu número de porta (por exemplo, 193.21.1.100:7373).

Pronto! Você pode usar o framework dentro do navegador.

Construir

Você também pode construir as imagens você mesmo através dos scripts colocados na pasta utils

Configuração

Você pode configurar alguns recursos para personalizar a configuração através de variáveis de ambiente (ENV). A tabela a seguir fornece uma lista de todas elas:

A variável REAL_DEVICE_SERIAL é fundamental se houver mais de um dispositivo físico conectado, porque se estiver ausente, nada funcionará. Finalmente, há uma lista de portas expostas por cada componente:

Licença

Dockerized Android é um software de código aberto e gratuito distribuído sob a Licença MIT.

Quem fala sobre 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

Citação

Se você achar este código útil em sua pesquisa, por favor, considere citar nosso artigo:

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

Créditos

Este projeto representa nossa dissertação de Mestrado em Engenharia da Computação na Universidade Federico II de Nápoles. Agradecimentos especiais ao Professor Simon Pietro Romano e ao Engenheiro Francesco Caturano, fontes de inspiração para este trabalho.

Baixar ferramenta
Versão do AndroidAPIImagem
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 da ENVValor padrãoDescrição
CoreTARGET_PORT6080Porta do Websockify
CoreCUSTOM_APP_DEFAULT_PORT4242Porta do backend Node.js
CoreDEVICEINFONão definido, mas funciona como trueHabilita/Desabilita o recurso de informações do dispositivo
CoreTERMINALNão definido, mas funciona como trueHabilita/Desabilita o recurso de terminal
CoreAPKNão definido, mas funciona como trueHabilita/Desabilita o recurso de instalação de APK
CoreFORWARDNão definido, mas funciona como trueHabilita/Desabilita o recurso de encaminhamento de porta
CoreSMSNão definido, mas funciona como trueHabilita/Desabilita o recurso de emulação de SMS
CoreREBOOTNão definido, mas funciona como trueHabilita/Desabilita o recurso de reinicialização
CoreINSTALL_ON_STARTUPfalseHabilita/Desabilita o recurso que permite instalar todos os APKs colocados na pasta /root/dockerized-android/apk
CoreENABLE_UNKNOWN_SOURCESfalseHabilita a instalação de fontes desconhecidas
CoreREAL_DEVICE_SERIALnão definidoSe houver mais de um dispositivo físico conectado, este valor deve ser definido com o serial do dispositivo a ser controlado; caso contrário, todos os outros recursos não funcionarão
Gerenciador de InstânciasDEFAULT_PORT7373Porta da API REST
ComponentePorta #Descrição
Core5555Porta ADB
Core4242Backend Node.js
Core6080Websockify (para noVNC)
UI80Frontend
Gerenciador de Instâncias7373API REST