Abusing Docker Socket for Privilege Escalation

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Daar is 'n paar geleenthede waar jy net toegang tot die docker socket het en jy dit wil gebruik om privileges te verhoog. Sommige aksies mag baie verdag wees en jy mag dit wil vermy, so hier kan jy verskillende vlae vind wat nuttig kan wees om privileges te verhoog:

Via mount

Jy kan mount verskillende dele van die filesystem in 'n container wat as root loop en dit toegang gee. Jy kan ook 'n mount misbruik om privileges binne die container te verhoog.

  • -v /:/host -> Mount die host filesystem in die container sodat jy die host filesystem kan lees.

  • As jy wil voel soos jy in die host is maar in die container is, kan jy ander verdedigingsmeganismes deaktiveer met vlae soos:

  • --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 ** -> Dit is soortgelyk aan die vorige metode, maar hier mount ons die toestel skyf. Dan, binne die container, hardloop mount /dev/sda1 /mnt en jy kan die host filesystem in /mnt toegang.

  • Hardloop fdisk -l in die host om die </dev/sda1> toestel te vind om te mount.

  • -v /tmp:/host -> As jy om een of ander rede net 'n gids van die host kan mount en jy het toegang binne die host. Mount dit en skep 'n /bin/bash met suid in die gemounte gids sodat jy dit van die host kan uitvoer en na root kan verhoog.

Let daarop dat jy dalk nie die gids /tmp kan mount nie, maar jy kan 'n ander skryfbare gids mount. Jy kan skryfbare gidse vind met: find / -writable -type d 2>/dev/null

Let daarop dat nie al die gidse in 'n linux masjien die suid bit sal ondersteun nie! Om te kyk watter gidse die suid bit ondersteun, hardloop mount | grep -v "nosuid" Byvoorbeeld, gewoonlik ondersteun /dev/shm, /run, /proc, /sys/fs/cgroup en /var/lib/lxcfs nie die suid bit nie.

Let ook daarop dat as jy /etc of enige ander gids wat konfigurasie lêers bevat, kan mount, jy dit mag verander vanuit die docker container as root om dit te misbruik in die host en privileges te verhoog (miskien deur /etc/shadow te verander).

Ontsnap uit die container

Curl

Op hierdie bladsy het ons maniere bespreek om privileges te verhoog met behulp van docker vlae, jy kan maniere vind om hierdie metodes met die curl opdrag te misbruik op die bladsy:

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Last updated