Docker release_agent cgroups escape
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)
Za više detalja, pogledajte originalni blog post. Ovo je samo sažetak:
Original PoC:
The proof of concept (PoC) demonstrates a method to exploit cgroups by creating a release_agent
file and triggering its invocation to execute arbitrary commands on the container host. Here's a breakdown of the steps involved:
Pripremite Okruženje:
Direktorijum /tmp/cgrp
se kreira da služi kao tačka montiranja za cgroup.
RDMA cgroup kontroler se montira na ovaj direktorijum. U slučaju odsustva RDMA kontrolera, predlaže se korišćenje memory
cgroup kontrolera kao alternative.
Postavite Dete Cgroup:
Dete cgroup pod imenom "x" se kreira unutar montirane cgroup direktorije.
Obaveštenja su omogućena za "x" cgroup pisanjem 1 u njegov notify_on_release fajl.
Konfigurišite Release Agent:
Putanja kontejnera na hostu se dobija iz /etc/mtab datoteke.
release_agent datoteka cgrupa se zatim konfiguriše da izvrši skriptu nazvanu /cmd smeštenu na dobijenoj putanji hosta.
Kreirajte i Konfigurišite /cmd Skriptu:
Skripta /cmd se kreira unutar kontejnera i konfiguriše se da izvršava ps aux, preusmeravajući izlaz u datoteku pod imenom /output u kontejneru. Puni put do /output na hostu je specificiran.
Pokreni Napad:
Proces se pokreće unutar "x" child cgroup i odmah se prekida.
Ovo pokreće release_agent
(skriptu /cmd), koja izvršava ps aux na hostu i zapisuje izlaz u /output unutar kontejnera.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)