# Κατάχρηση του Docker Socket για Υπερβάθμιση Δικαιωμάτων {{#include ../../../banners/hacktricks-training.md}} Υπάρχουν περιπτώσεις όπου έχετε **πρόσβαση στο docker socket** και θέλετε να το χρησιμοποιήσετε για να **υπερβείτε τα δικαιώματα**. Ορισμένες ενέργειες μπορεί να είναι πολύ ύποπτες και ίσως θελήσετε να τις αποφύγετε, οπότε εδώ μπορείτε να βρείτε διάφορες σημαίες που μπορεί να είναι χρήσιμες για την υπέρβαση δικαιωμάτων: ### Μέσω mount Μπορείτε να **mount** διάφορα μέρη του **filesystem** σε ένα κοντέινερ που τρέχει ως root και να τα **πρόσβαση**.\ Μπορείτε επίσης να **καταχραστείτε ένα mount για να υπερβείτε τα δικαιώματα** μέσα στο κοντέινερ. - **`-v /:/host`** -> Mount το filesystem του host στο κοντέινερ ώστε να μπορείτε να **διαβάσετε το filesystem του host.** - Αν θέλετε να **νιώσετε ότι είστε στον host** αλλά να είστε στο κοντέινερ, μπορείτε να απενεργοποιήσετε άλλους μηχανισμούς άμυνας χρησιμοποιώντας σημαίες όπως: - `--privileged` - `--cap-add=ALL` - `--security-opt apparmor=unconfined` - `--security-opt seccomp=unconfined` - `-security-opt label:disable` - `--pid=host` - `--userns=host` - `--uts=host` - `--cgroupns=host` - **`--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined`** -> Αυτό είναι παρόμοιο με την προηγούμενη μέθοδο, αλλά εδώ **mountάρουμε τη συσκευή δίσκου**. Στη συνέχεια, μέσα στο κοντέινερ εκτελέστε `mount /dev/sda1 /mnt` και μπορείτε να **πρόσβαση** στο **filesystem του host** στο `/mnt` - Εκτελέστε `fdisk -l` στον host για να βρείτε τη συσκευή `` για να mountάρετε - **`-v /tmp:/host`** -> Αν για κάποιο λόγο μπορείτε **μόνο να mountάρετε κάποιον κατάλογο** από τον host και έχετε πρόσβαση μέσα στον host. Mountάρετε το και δημιουργήστε ένα **`/bin/bash`** με **suid** στον mounted κατάλογο ώστε να μπορείτε να **το εκτελέσετε από τον host και να υπερβείτε σε root**. > [!NOTE] > Σημειώστε ότι ίσως δεν μπορείτε να mountάρετε τον φάκελο `/tmp`, αλλά μπορείτε να mountάρετε έναν **διαφορετικό εγγράψιμο φάκελο**. Μπορείτε να βρείτε εγγράψιμους καταλόγους χρησιμοποιώντας: `find / -writable -type d 2>/dev/null` > > **Σημειώστε ότι όχι όλοι οι κατάλογοι σε μια μηχανή linux θα υποστηρίζουν το suid bit!** Για να ελέγξετε ποιες καταλόγοι υποστηρίζουν το suid bit, εκτελέστε `mount | grep -v "nosuid"` Για παράδειγμα, συνήθως οι `/dev/shm`, `/run`, `/proc`, `/sys/fs/cgroup` και `/var/lib/lxcfs` δεν υποστηρίζουν το suid bit. > > Σημειώστε επίσης ότι αν μπορείτε **να mountάρετε το `/etc`** ή οποιονδήποτε άλλο φάκελο **που περιέχει αρχεία ρυθμίσεων**, μπορείτε να τα αλλάξετε από το docker κοντέινερ ως root προκειμένου να **τα καταχραστείτε στον host** και να υπερβείτε τα δικαιώματα (ίσως τροποποιώντας το `/etc/shadow`) ### Διαφυγή από το κοντέινερ - **`--privileged`** -> Με αυτή τη σημαία [αφαιρείτε όλη την απομόνωση από το κοντέινερ](docker-privileged.md#what-affects). Ελέγξτε τεχνικές για [να διαφύγετε από κοντέινερ με προνόμια ως root](docker-breakout-privilege-escalation/index.html#automatic-enumeration-and-escape). - **`--cap-add= [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]`** -> Για [να υπερβείτε καταχρώντας ικανότητες](../linux-capabilities.md), **δώστε αυτή την ικανότητα στο κοντέινερ** και απενεργοποιήστε άλλες μεθόδους προστασίας που μπορεί να εμποδίσουν την εκμετάλλευση να λειτουργήσει. ### Curl Σε αυτή τη σελίδα έχουμε συζητήσει τρόπους για να υπερβείτε τα δικαιώματα χρησιμοποιώντας σημαίες docker, μπορείτε να βρείτε **τρόπους να καταχραστείτε αυτές τις μεθόδους χρησιμοποιώντας την εντολή curl** στη σελίδα: {{#include ../../../banners/hacktricks-training.md}}