Docker release_agent cgroups escape
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 pod nazivom /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.
Last updated