Abusing Docker Socket for Privilege Escalation

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Існують випадки, коли у вас є доступ до docker socket і ви хочете використати його для підвищення привілеїв. Деякі дії можуть бути дуже підозрілими, і ви, можливо, захочете їх уникнути, тому тут ви знайдете різні прапорці, які можуть бути корисні для підвищення привілеїв:

Через монтування

Ви можете монтувати різні частини файлової системи в контейнері, який працює як root і отримувати до них доступ. Ви також можете зловживати монтуванням для підвищення привілеїв всередині контейнера.

  • -v /:/host -> Підключіть файлову систему хоста до контейнера, щоб ви могли читати файлову систему хоста.

  • Якщо ви хочете відчувати себе на хості, але бути в контейнері, ви можете вимкнути інші захисні механізми, використовуючи прапорці, такі як:

  • --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 ** -> Це схоже на попередній метод, але тут ми підключаємо диск пристрою. Потім всередині контейнера запустіть mount /dev/sda1 /mnt, і ви зможете отримати доступ до файлової системи хоста в /mnt

  • Виконайте fdisk -l на хості, щоб знайти пристрій </dev/sda1>, який потрібно підключити

  • -v /tmp:/host -> Якщо з якоїсь причини ви можете підключити лише деякий каталог з хоста, і у вас є доступ всередині хоста. Підключіть його і створіть /bin/bash з suid в підключеному каталозі, щоб ви могли виконати його з хоста та підвищити привілеї до root.

Зверніть увагу, що можливо ви не зможете підключити каталог /tmp, але ви можете підключити інший записний каталог. Ви можете знайти записні каталоги за допомогою: find / -writable -type d 2>/dev/null

Зверніть увагу, що не всі каталоги на лінукс-машині підтримують біт suid! Щоб перевірити, які каталоги підтримують біт suid, виконайте mount | grep -v "nosuid" Наприклад, зазвичай /dev/shm, /run, /proc, /sys/fs/cgroup та /var/lib/lxcfs не підтримують біт suid.

Також зверніть увагу, що якщо ви можете підключити /etc або будь-який інший каталог із конфігураційними файлами, ви можете змінювати їх з контейнера Docker як root, щоб зловживати ними на хості та підвищити привілеї (можливо, змінюючи /etc/shadow)

Виходження з контейнера

Curl

На цій сторінці ми обговорили способи підвищення привілеїв за допомогою прапорців docker, ви можете знайти способи зловживання цими методами за допомогою команди curl на сторінці:

pageAuthZ& AuthN - Docker Access Authorization Plugin
Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated