
CNAPPgoat é um projeto de código aberto projetado para provisionar de forma modular componentes vulneráveis por design em ambientes de nuvem.
![made-with-Go][made-with-go-img] [![GitHub Release][release-img]][release] [![Go Report Card][go-report-img]][go-report] [![License: Apache-2.0][license-img]][license]
CNAPPgoat é uma ferramenta de implantação de ambientes multi-nuvem intencionalmente vulneráveis – projetada especificamente para criar arenas de prática para defensores e pentesters. Sua função principal é implantar ambientes propositalmente vulneráveis em vários provedores de serviços de nuvem, para ajudar você a aprimorar suas habilidades em exploração, detecção e prevenção dessas vulnerabilidades.

Aviso: O CNAPPgoat implanta ambientes vulneráveis. Use-o apenas em sandboxes seguros e controlados.
O CNAPPgoat opera como uma ferramenta de Interface de Linha de Comando (CLI), capaz de implantar ambientes vulneráveis em diversos provedores de serviços de nuvem. Construído com Go e utilizando Pulumi e a API de automação do Pulumi, garante uma implantação de ambiente perfeita. Uma de suas características únicas é seu design modular, que permite extensão sem esforço para suportar diversos provedores de serviços de nuvem e novos ambientes vulneráveis. Atualmente, o CNAPPgoat oferece suporte a AWS, Azure e GCP.
As dependências e plugins do Pulumi serão instalados sob demanda, de acordo com os requisitos de cada cenário, quando você provisionar seu primeiro ambiente. Isso significa que o primeiro provisionamento pode demorar um pouco mais do que os subsequentes.
O CNAPPgoat pode ser facilmente instalado para usuários macOS usando o gerenciador de pacotes Homebrew.
brew tap ermetic-research/cnappgoat
brew install cnappgoat
Baixe o último release em aqui.
tar -xvf cnappgoat-<versão>.tar.gz
cd cnappgoat-<versão>
(Opcional) Se você quiser adicionar o binário extraído ao PATH do seu sistema (não é obrigatório, você pode executá-lo diretamente do diretório local como ./cnappgoat):
Opção A: Mover para um diretório no seu PATH (ex.: /usr/local/bin para macOS e Linux)
mv cnappgoat /usr/local/bin/
Opção B: Adicionar o diretório que contém o binário ao seu PATH
Para bash:
echo 'export PATH=$PATH:<caminho_para_diretório_com_cnappgoat>' >> ~/.bashrc
source ~/.bashrc
Para zsh:
echo 'export PATH=$PATH:<caminho_para_diretório_com_cnappgoat>' >> ~/.zshrc
source ~/.zshrc
Substitua <caminho_para_diretório_com_cnappgoat> pelo caminho absoluto do diretório onde o binário cnappgoat reside.
NOME:
cnappgoat - Uma ferramenta multi-nuvem open-source para implantar recursos de nuvem intencionalmente vulneráveis
USO:
cnappgoat [opções globais] comando [opções de comando] [argumentos...]
VERSÃO:
0.1.0-beta, data: 2023-08-02T13:02:46Z, commit: 6bef61857d9f3cf88215269df8976f96317711dc
COMANDOS:
clean limpar e remover todos os recursos criados e excluir todos os cenários e arquivos relacionados
describe descrever um cenário
destroy Destruir cenários do módulo CNAPPgoat
list Listar cenários do módulo CNAPPgoat
provision Provisionar cenários do módulo CNAPPgoat
help, h Mostra uma lista de comandos ou ajuda para um comando
OPÇÕES GLOBAIS:
--debug Ativar modo de depuração (padrão: false)
--help, -h Mostrar ajuda
--version, -v Exibir a versão
| Comando | Descrição | Uso |
|---|---|---|
list | Lista todos os cenários disponíveis para provisionamento. | cnappgoat list |
describe | Fornece informações detalhadas sobre o cenário especificado. | cnappgoat describe <nome do cenário> |
provision | Provisiona o cenário especificado pelo nome. Para provisionar todos os cenários, use cnappgoat provision. | cnappgoat provision <nome do cenário> |
destroy | Destrói o cenário especificado pelo nome. Para destruir todos os cenários, use cnappgoat destroy. | cnappgoat destroy <nome do cenário> |
clean | Limpa todos os cenários e exclui o diretório local .cnappgoat. | cnappgoat clean |
--version, -v | Exibe a versão atual do CNAPPgoat. | cnappgoat --version |
--help, -h | Exibe o menu de ajuda. | cnappgoat --help |
Você pode usar vários argumentos separados por espaços. Por exemplo:
cnappgoat provision <cenario-1> <cenario-2> <cenario-N>
--module - Filtra cenários por módulo (ex.: CSPM, CIEM, CWPP, DSPM, KSPM etc.)--platform - Filtra cenários por plataforma (ex.: AWS, Azure, GCP)--force - Ativa o modo forçado (desbloqueia stacks bloqueadas com pulumi cancel)--debug - Ativa o log de depuração.Essas flags são flags de comando e devem ser colocadas após o comando. Por exemplo:
cnappgoat provision --module CSPM --platform AWS
Este comando provisionará todos os cenários AWS CSPM.
O CNAPPgoat baixa cenários do repositório cnappgoat-scenarios na primeira execução de cada dia. Esses cenários são baixados automaticamente quando você executa o CNAPPgoat e são armazenados no diretório ~/.cnappgoat/scenarios.
Antes de usar o CNAPPgoat, você precisa configurar suas credenciais de nuvem para AWS, Azure e GCP. O CNAPPgoat usa as credenciais padrão de cada provedor. Siga os passos abaixo para configurar suas credenciais:
Instale o AWS CLI seguindo as instruções aqui.
Configure suas credenciais AWS executando:
aws configure
Você será solicitado a inserir seu Access Key ID, Secret Access Key e nome da região padrão.
Instale o Azure CLI seguindo as instruções aqui.
Faça login na sua conta Azure executando:
az login
Isso abrirá uma nova janela do navegador para você fazer login. Após o login, suas credenciais serão armazenadas para uso futuro.