Κατάχρηση του Docker Socket για Υπερβάθμιση Δικαιωμάτων
Reading time: 4 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Υπάρχουν περιπτώσεις όπου έχετε πρόσβαση στο 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 για να βρείτε τη συσκευή</dev/sda1>
για να 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
-> Με αυτή τη σημαία αφαιρείτε όλη την απομόνωση από το κοντέινερ. Ελέγξτε τεχνικές για να διαφύγετε από κοντέινερ με προνόμια ως root.--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]
-> Για να υπερβείτε καταχρώντας ικανότητες, δώστε αυτή την ικανότητα στο κοντέινερ και απενεργοποιήστε άλλες μεθόδους προστασίας που μπορεί να εμποδίσουν την εκμετάλλευση να λειτουργήσει.
Curl
Σε αυτή τη σελίδα έχουμε συζητήσει τρόπους για να υπερβείτε τα δικαιώματα χρησιμοποιώντας σημαίες docker, μπορείτε να βρείτε τρόπους να καταχραστείτε αυτές τις μεθόδους χρησιμοποιώντας την εντολή curl στη σελίδα:
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.