# Зловживання Docker Socket для ескалації привілеїв {{#include ../../../banners/hacktricks-training.md}} Існують випадки, коли у вас є **доступ до 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` на хості, щоб знайти пристрій `` для монтування - **`-v /tmp:/host`** -> Якщо з якоїсь причини ви можете **просто змонтувати деяку директорію** з хоста і у вас є доступ всередині хоста. Змонтируйте її і створіть **`/bin/bash`** з **suid** в змонтованій директорії, щоб ви могли **виконати його з хоста і ескалувати до root**. > [!NOTE] > Зверніть увагу, що, можливо, ви не можете змонтувати папку `/tmp`, але ви можете змонтувати **іншу записувану папку**. Ви можете знайти записувані директорії, використовуючи: `find / -writable -type d 2>/dev/null` > > **Зверніть увагу, що не всі директорії в linux машині підтримують суід біт!** Щоб перевірити, які директорії підтримують суід біт, запустіть `mount | grep -v "nosuid"` Наприклад, зазвичай `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` і `/var/lib/lxcfs` не підтримують суід біт. > > Також зверніть увагу, що якщо ви можете **монтувати `/etc`** або будь-яку іншу папку **з конфігураційними файлами**, ви можете змінювати їх з контейнера docker як root, щоб **зловживати ними на хості** і ескалувати привілеї (можливо, модифікуючи `/etc/shadow`) ### Втеча з контейнера - **`--privileged`** -> З цим прапорцем ви [знімаєте всю ізоляцію з контейнера](docker-privileged.md#what-affects). Перевірте техніки, щоб [втекти з привілейованих контейнерів як root](docker-breakout-privilege-escalation/index.html#automatic-enumeration-and-escape). - **`--cap-add= [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Щоб [ескалувати, зловживаючи можливостями](../linux-capabilities.md), **надайте цю можливість контейнеру** і вимкніть інші методи захисту, які можуть заважати експлуатації. ### Curl На цій сторінці ми обговорили способи ескалації привілеїв, використовуючи прапорці docker, ви можете знайти **способи зловживати цими методами, використовуючи команду curl** на сторінці: {{#include ../../../banners/hacktricks-training.md}}