
Exploit Docker
Este repositório fornece um ambiente Docker interativo e autossuficiente para demonstrar e analisar com segurança a vulnerabilidade de escalonamento de privilégios "Dirty Pipe". Ele foi projetado como uma ferramenta educacional para profissionais de segurança entenderem os mecanismos de um exploit crítico de nível de kernel em um ambiente controlado.
O Dirty Pipe foi uma vulnerabilidade crítica descoberta no kernel Linux (afetando versões a partir da 5.8). Ela permitia que um usuário local sem privilégios sobrescrevesse dados em arquivos arbitrários somente leitura.
O impacto é severo: ao sobrescrever um arquivo sensível como /etc/passwd ou um binário SUID, um atacante poderia facilmente escalar seus privilégios para root, obtendo controle total do sistema. Essa vulnerabilidade era particularmente perigosa porque ignorava as verificações padrão de permissões de arquivo, um controle de segurança fundamental no Linux.
Este projeto utiliza Docker para criar um ambiente seguro, isolado e intencionalmente vulnerável. Isso permite que qualquer pessoa estude o exploit sem colocar em risco sua máquina host.
Os principais componentes são:
Dockerfile: Define o blueprint do nosso contêiner vulnerável. Ele usa uma imagem base mais antiga (debian:bullseye-20210927-slim) conhecida por ter um kernel suscetível ao Dirty Pipe e automatiza o processo de configuração.exploit.c: O código C que implementa a lógica do exploit, baseado na prova de conceito original de Max Kellermann.Makefile: Um makefile simples para compilar o código C em um binário executável dentro do contêiner.Este guia passo a passo irá orientá-lo na construção do ambiente e na execução do exploit.
Pré-requisitos: Você deve ter o Docker instalado e em execução no seu sistema.
Abra seu terminal e clone este projeto.
git clone https://github.com/mrchucu1/CVE-2022-0847-Docker.git
cd CVE-2022-0847-Docker
Use o comando docker build para criar a imagem do contêiner. O Dockerfile cuidará de todas as dependências e compilará o código do exploit.
docker build -t dirty-pipe-demo .
Agora, execute o contêiner de forma interativa. A flag --rm garante que o contêiner seja removido ao sair, e -it fornece um shell interativo.
docker run --rm -it dirty-pipe-demo
Você será levado a um shell dentro do contêiner como um usuário sem privilégios (hacker@...:/$).
Agora, execute o exploit pré-compilado:
# You are currently an unprivileged user.
# Your prompt looks like this: hacker@<container_id>:/$
#
# Now run the exploit...
./exploit
Sucesso! O exploit sobrescreve um binário SUID para conceder a você um shell de root. Seu prompt de terminal mudará de $ para #, indicando que você agora tem privilégios de root.
# The exploit has succeeded.
# Your prompt is now a root shell: # whoami
root
#
Este projeto é mais do que apenas executar um script; é uma demonstração prática de princípios críticos de segurança relevantes para o meu trabalho como Engenheiro de Segurança em Nuvem:
Este projeto e seu código são destinados apenas para fins educacionais e de pesquisa. Não tente usar este exploit em qualquer sistema para o qual você não tenha permissão explícita e autorizada.