Abusing Docker Socket for Privilege Escalation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Postoje situacije kada imate pristup docker socket-u i želite da ga iskoristite za eskalaciju privilegija. Neke akcije mogu biti veoma sumnjive i možda ćete želeti da ih izbegnete, pa ovde možete pronaći različite zastavice koje mogu biti korisne za eskalaciju privilegija:
Možete montirati različite delove fajl sistema u kontejneru koji radi kao root i pristupiti im. Takođe možete zloupotrebiti montiranje za eskalaciju privilegija unutar kontejnera.
-v /:/host
-> Montirajte fajl sistem host-a u kontejneru kako biste mogli da pročitate fajl sistem host-a.
Ako želite da imajte osećaj da ste na host-u dok ste u kontejneru, možete onemogućiti druge mehanizme zaštite koristeći zastavice kao što su:
--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
** -> Ovo je slično prethodnoj metodi, ali ovde montiramo disk uređaj. Zatim, unutar kontejnera pokrenite mount /dev/sda1 /mnt
i možete pristupiti fajl sistemu host-a u /mnt
Pokrenite fdisk -l
na host-u da pronađete </dev/sda1>
uređaj za montiranje
-v /tmp:/host
-> Ako iz nekog razloga možete samo montirati neki direktorijum sa host-a i imate pristup unutar host-a. Montirajte ga i kreirajte /bin/bash
sa suid u montiranom direktorijumu kako biste mogli da izvršite iz host-a i eskalirate na root.
Imajte na umu da možda ne možete montirati folder /tmp
, ali možete montirati drugi zapisiv folder. Možete pronaći zapisive direktorijume koristeći: find / -writable -type d 2>/dev/null
Imajte na umu da ne podržavaju svi direktorijumi na linux mašini suid bit! Da biste proverili koji direktorijumi podržavaju suid bit, pokrenite mount | grep -v "nosuid"
Na primer, obično /dev/shm
, /run
, /proc
, /sys/fs/cgroup
i /var/lib/lxcfs
ne podržavaju suid bit.
Takođe imajte na umu da ako možete montirati /etc
ili bilo koji drugi folder koji sadrži konfiguracione fajlove, možete ih promeniti iz docker kontejnera kao root kako biste zloupotrebili na host-u i eskalirali privilegije (možda menjajući /etc/shadow
)
--privileged
-> Sa ovom zastavicom uklanjate svu izolaciju iz kontejnera. Proverite tehnike za izlazak iz privilegovanih kontejnera kao root.
--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]
-> Da biste eskalirali zloupotrebom sposobnosti, dodelite tu sposobnost kontejneru i onemogućite druge metode zaštite koje mogu sprečiti da eksploatacija funkcioniše.
Na ovoj stranici smo razgovarali o načinima za eskalaciju privilegija koristeći docker zastavice, možete pronaći načine da zloupotrebite ove metode koristeći curl komandu na stranici:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)