Um script em Python para gerenciar ambientes de laboratório de pentest locais com Docker, ideal para estudo, simulação de ataques, treinamentos e experimentação de ferramentas de segurança.
Este projeto automatiza a criação e o gerenciamento de containers Docker com diversas máquinas vulneráveis e utilitárias, usando uma rede interna isolada para garantir segurança e controle. É possível escolher se as máquinas terão acesso à internet ou não, simulando ambientes realistas.
Nome | Imagem Docker | Porta(s) | Descrição |
---|---|---|---|
dvwa |
kaakaww/dvwa-docker |
8080 | Aplicação web vulnerável clássica |
dvna |
appsecco/dvna:sqlite |
9090 | Node.js Vulnerable App |
juice-shop |
bkimminich/juice-shop |
3000 | OWASP Juice Shop |
metasploitable2 |
tleemcjr/metasploitable2 |
- | Sistema operacional vulnerável completo |
kali |
kalilinux/kali-rolling |
- (TTY) | Distribuição Linux com ferramentas de ataque |
shepherd |
owasp/security-shepherd |
8081 | Plataforma de gamificação para testes de segurança |
webgoat |
webgoat/webgoat |
8082 | Plataforma OWASP para treinamento de segurança Java |
mutillidae |
citizenstig/nowasp |
8083 | Ambiente LAMP vulnerável com OWASP Mutillidae II |
- Python 3.6+
- Docker instalado e rodando
- Permissões de superusuário (o script requer acesso root)
Clone o repositório:
git clone https://github.com/seuusuario/pentest-lab-manager.git
cd pentest-lab-manager
Instale as dependências Python:
pip install docker
Execute com permissões de root:
sudo python3 lab_master.py
Você verá um menu como este:
--- Menu Pentest Lab ---
1. Subir máquina
2. Parar máquina
3. Listar máquinas ativas
4. Sair
O script cria uma rede Docker interna e isolada chamada pentest_net, garantindo que as máquinas não se comuniquem com a rede externa, a menos que você permita explicitamente.
- Nenhuma máquina tem acesso à internet por padrão, exceto se explicitado.
- Todas as máquinas compartilham uma rede bridge interna (internal=True), ideal para práticas controladas de pentest.
- O script não expõe serviços além dos necessários.
Você pode adicionar mais máquinas ao dicionário LAB_MACHINES no início do script:
"nome": {
"image": "usuario/imagem",
"ports": {"porta_interna/tcp": porta_externa},
...
}
Este projeto está licenciado sob a MIT License.
Desenvolvido por Adriel de Souza Andrade (Contato Email) [adriel.andrede@fatec.sp.gov.br] (GitHub) [https://github.com/adriel007] (LinkedIn) [https://www.linkedin.com/in/adriel-domingues-de-souza-andrade/]
Aviso Legal: Este projeto é apenas para fins educacionais e de pesquisa.
Não use essas ferramentas contra sistemas que você não tem permissão para testar.
O autor não se responsabiliza por qualquer uso indevido deste software.