
Exploit Docker
Questo repository fornisce un ambiente Docker interattivo e autonomo per dimostrare e analizzare in sicurezza la vulnerabilità di escalation dei privilegi "Dirty Pipe". È progettato come strumento educativo per i professionisti della sicurezza per comprendere i meccanismi di un exploit critico a livello di kernel in un ambiente controllato.
Dirty Pipe era una vulnerabilità critica scoperta nel kernel Linux (che colpiva le versioni dalla 5.8 in poi). Consentiva a un utente locale senza privilegi di sovrascrivere dati in file di sola lettura arbitrari.
L'impatto è grave: sovrascrivendo un file sensibile come /etc/passwd o un binario SUID, un attaccante poteva facilmente elevare i propri privilegi a root, ottenendo il controllo completo del sistema. Questa vulnerabilità era particolarmente pericolosa perché bypassava i controlli standard dei permessi dei file, un controllo di sicurezza fondamentale in Linux.
Questo progetto sfrutta Docker per creare un ambiente sicuro, isolato e intenzionalmente vulnerabile. Ciò consente a chiunque di studiare l'exploit senza rischiare la propria macchina host.
I componenti chiave sono:
Dockerfile: Definisce il modello del nostro container vulnerabile. Utilizza un'immagine base più datata (debian:bullseye-20210927-slim) nota per avere un kernel suscettibile a Dirty Pipe e automatizza il processo di configurazione.exploit.c: Il codice C che implementa la logica dell'exploit, basato sul proof-of-concept originale di Max Kellermann.Makefile: Un semplice makefile per compilare il codice C in un binario eseguibile all'interno del container.Questa guida ti accompagnerà nella creazione dell'ambiente e nell'esecuzione dell'exploit.
Prerequisiti: Devi avere Docker installato e in esecuzione sul tuo sistema.
Apri il terminale e clona questo progetto.
git clone https://github.com/mrchucu1/CVE-2022-0847-Docker.git
cd CVE-2022-0847-Docker
Usa il comando docker build per creare l'immagine del container. Il Dockerfile gestirà tutte le dipendenze e compilerà il codice dell'exploit.
docker build -t dirty-pipe-demo .
Ora esegui il container in modalità interattiva. Il flag --rm garantisce che il container venga eliminato all'uscita e -it ti fornisce una shell interattiva.
docker run --rm -it dirty-pipe-demo
Ti ritroverai in una shell all'interno del container come utente senza privilegi (hacker@...:/$).
Ora esegui l'exploit precompilato:
# You are currently an unprivileged user.
# Your prompt looks like this: hacker@<container_id>:/$
#
# Now run the exploit...
./exploit
Successo! L'exploit sovrascrive un binario SUID per concederti una shell di root. Il prompt del tuo terminale cambierà da $ a #, indicando che ora hai privilegi di root.
# The exploit has succeeded.
# Your prompt is now a root shell: # whoami
root
#
Questo progetto è più che semplicemente eseguire uno script; è una dimostrazione pratica di principi di sicurezza critici rilevanti per il mio lavoro di Cloud Security Engineer:
Questo progetto e il suo codice sono destinati esclusivamente a scopi educativi e di ricerca. Non tentare di utilizzare questo exploit su alcun sistema per il quale non disponi di un'autorizzazione esplicita.