mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
44 lines
3.3 KiB
Markdown
44 lines
3.3 KiB
Markdown
# Abusing Docker Socket for Privilege Escalation
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
Postoje neki slučajevi 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:
|
|
|
|
### Via mount
|
|
|
|
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 hosta u kontejneru kako biste mogli da **pročitate fajl sistem hosta.**
|
|
- Ako želite da **imajte osećaj da ste na hostu** 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 uređaj disk**. Zatim, unutar kontejnera pokrenite `mount /dev/sda1 /mnt` i možete **pristupiti** **fajl sistemu hosta** u `/mnt`
|
|
- Pokrenite `fdisk -l` na hostu da pronađete `</dev/sda1>` uređaj za montiranje
|
|
- **`-v /tmp:/host`** -> Ako iz nekog razloga možete **samo montirati neki direktorijum** sa hosta i imate pristup unutar hosta. Montirajte ga i kreirajte **`/bin/bash`** sa **suid** u montiranom direktorijumu kako biste mogli **izvršiti ga sa hosta i eskalirati na root**.
|
|
|
|
> [!NOTE]
|
|
> Imajte na umu da možda ne možete montirati folder `/tmp`, ali možete montirati **drugi zapisivi 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 menjati iz docker kontejnera kao root kako biste **zloupotrebili ih na hostu** i eskalirali privilegije (možda menjajući `/etc/shadow`)
|
|
|
|
### Escaping from the container
|
|
|
|
- **`--privileged`** -> Sa ovom zastavicom [uklanjate svu izolaciju iz kontejnera](docker-privileged.md#what-affects). Proverite tehnike za [izlazak iz privilegovanih kontejnera kao root](docker-breakout-privilege-escalation/index.html#automatic-enumeration-and-escape).
|
|
- **`--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Da biste [eskalirali zloupotrebom sposobnosti](../linux-capabilities.md), **dodelite tu sposobnost kontejneru** i onemogućite druge metode zaštite koje mogu sprečiti da eksploatacija funkcioniše.
|
|
|
|
### Curl
|
|
|
|
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:
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|