Abusing Docker Socket for Privilege Escalation
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Ci sono alcune occasioni in cui hai accesso al docker socket e vuoi usarlo per escalare i privilegi. Alcune azioni potrebbero essere molto sospette e potresti voler evitarle, quindi qui puoi trovare diverse opzioni che possono essere utili per escalare i privilegi:
Via mount
Puoi montare diverse parti del filesystem in un container in esecuzione come root e accedervi.
Potresti anche abusare di un mount per escalare i privilegi all’interno del container.
-v /:/host-> Monta il filesystem dell’host nel container in modo da poter leggere il filesystem dell’host.- Se vuoi sentirti come se fossi nell’host ma essere nel container, puoi disabilitare altri meccanismi di difesa usando flag come:
--privileged--cap-add=ALL--security-opt apparmor=unconfined--security-opt seccomp=unconfined-security-opt label:disable--pid=host--userns=host--uts=host--cgroupns=host--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined-> Questo è simile al metodo precedente, ma qui stiamo montando il disco del dispositivo. Poi, all’interno del container eseguimount /dev/sda1 /mnte puoi accedere al filesystem dell’host in/mnt- Esegui
fdisk -lnell’host per trovare il dispositivo</dev/sda1>da montare -v /tmp:/host-> Se per qualche motivo puoi solo montare una directory dall’host e hai accesso all’interno dell’host. Montala e crea un/bin/bashcon suid nella directory montata in modo da poter eseguirlo dall’host e escalare a root.
Note
Nota che forse non puoi montare la cartella
/tmpma puoi montare una differente cartella scrivibile. Puoi trovare directory scrivibili usando:find / -writable -type d 2>/dev/nullNota che non tutte le directory in una macchina linux supporteranno il bit suid! Per controllare quali directory supportano il bit suid esegui
mount | grep -v "nosuid"Ad esempio, di solito/dev/shm,/run,/proc,/sys/fs/cgroupe/var/lib/lxcfsnon supportano il bit suid.Nota anche che se puoi montare
/etco qualsiasi altra cartella contenente file di configurazione, puoi modificarli dal container docker come root per abusarli nell’host e escalare i privilegi (magari modificando/etc/shadow)
Escaping from the container
--privileged-> Con questo flag rimuovi tutta l’isolamento dal container. Controlla le tecniche per uscire da container privilegiati come root.--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]-> Per escalare abusando delle capacità, concedi quella capacità al container e disabilita altri metodi di protezione che potrebbero impedire il funzionamento dell’exploit.
Curl
In questa pagina abbiamo discusso modi per escalare i privilegi usando flag docker, puoi trovare modi per abusare di questi metodi usando il comando curl nella pagina:
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

