
Docker Enumeration, Escalation of Privileges and Container Escapes (DEEPCE)
## .
## ## ## ==
## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ X __/
\ \ __/
\____\_______/
__
____/ /__ ___ ____ ________
/ __ / _ \/ _ \/ __ \/ ___/ _ \ ENUMERATE
/ /_/ / __/ __/ /_/ / (__/ __/ ESCALATE
\__,_/\___/\___/ .___/\___/\___/ ESCAPE
/_/
Docker-Enumeration, Privilegienerweiterung und Container-Escapes (DEEPCE)
Damit DEEPCE mit der maximalen Anzahl von Containern kompatibel ist, ist es in reinem sh ohne Abhängigkeiten geschrieben. Es nutzt, falls verfügbar, zusätzliche Tools wie curl, nmap, nslookup und dig, ist aber größtenteils nicht auf diese für die Enumeration angewiesen.
Keine der Enumerationen sollte die Festplatte berühren, jedoch erzeugen die meisten Exploits neue Container, was Schreibzugriffe auf die Festplatte verursacht, und einige Exploits überschreiben runC, was destruktiv sein kann – also sei vorsichtig!
Im Folgenden findest du eine Liste der Enumerationen, Exploits und Payloads, die DEEPCE verwenden kann. Wenn du Ideen für weitere hast, erstelle bitte ein Issue auf GitHub!
DEEPCE kann mit einem der folgenden Einzeiler auf einem Host oder Container heruntergeladen werden. Tipp: Lade es nach /dev/shm herunter, um die Festplatte nicht zu berühren.
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
Wenn dir gefällt, was ich mit Deepce und meinen anderen Projekten mache, kannst du meine Arbeit jetzt direkt unterstützen! Wenn du mir einen Kaffee ☕ kaufst, stillst du nicht nur meinen Koffeinbedarf – du hilfst mir, mehr Zeit in die Entwicklung und Verbesserung dieser Open-Source-Projekte zu investieren. Jeder Kaffee zählt und bringt mehr Innovation in die Welt der Cybersicherheit. Danke für deine Unterstützung – sie bedeutet mir und der Open-Source-Community sehr viel!
Für mehr bitte den docs-Ordner ansehen

Die folgende Liste zeigt die von DEEPCE durchgeführten Enumerationen.
Für jeden der obigen Exploits können Payloads definiert werden, um das Host-System anzugreifen. Dazu gehören:
# Make the script executable and then run it
chmod +x ./deepce.sh
./deepce.sh
Die folgenden Beispiele zeigen die verschiedenen Arten von Exploits, die ausgeführt werden können, sowie die verfügbaren Payloads.
./deepce.sh --no-enumeration --exploit PRIVILEGED --username deepce --password deepce
/etc/shadow anzuzeigen./deepce.sh --no-enumeration --exploit SOCK --shadow
./deepce.sh --no-enumeration --exploit DOCKER --command "whoami>/tmp/hacked"
Es ist möglich, deepce herunterzuladen und auszuführen, ohne die Festplatte zu berühren. Du kannst dann jedoch nicht einfach Argumente setzen (eine direkte Manipulation der Variablen ist mit export möglich).
wget -O - https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
curl -sL https://github.com/stealthcopter/deepce/raw/main/deepce.sh | sh
Es gibt einige großartige Skripte und Tools zur Container-Enumeration und -Escape-Erkennung, von denen ich mich beim Schreiben inspirieren ließ. Allerdings sah ich die Notwendigkeit, ein reines sh-Skript zu schreiben, um keine go-/ruby-Abhängigkeiten installieren zu müssen oder auf ein statisches Binärprogramm angewiesen zu sein. Außerdem wollte ich weitere Enumerationen durchführen können, um herauszufinden, was der Docker-Container ist, da wir während eines Tests möglicherweise in einem unbekannten Container landen. Die Anzahl der Dinge, die dieses Skript enumerieren kann, ist mir entglitten, denn jedes Mal, wenn ich etwas Neues hinzufügte, fielen mir weitere Dinge ein, die ich ergänzen könnte.
Entwickler, die nach Docker-Sicherheitstipps suchen https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Docker_Security_Cheat_Sheet.md
Ich freue mich über Pull Requests, Issues und Feedback.