Mount Namespace
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Basic Information
Ένα mount namespace είναι μια δυνατότητα του πυρήνα Linux που παρέχει απομόνωση των σημείων προσάρτησης του συστήματος αρχείων που βλέπει μια ομάδα διεργασιών. Κάθε mount namespace έχει το δικό του σύνολο σημείων προσάρτησης του συστήματος αρχείων, και οι αλλαγές στα σημεία προσάρτησης σε ένα namespace δεν επηρεάζουν άλλα namespaces. Αυτό σημαίνει ότι οι διεργασίες που εκτελούνται σε διαφορετικά mount namespaces μπορούν να έχουν διαφορετικές απόψεις της ιεραρχίας του συστήματος αρχείων.
Τα mount namespaces είναι ιδιαίτερα χρήσιμα στην κοντεντοποίηση, όπου κάθε κοντέινερ θα πρέπει να έχει το δικό του σύστημα αρχείων και ρύθμιση, απομονωμένα από άλλα κοντέινερ και το σύστημα φιλοξενίας.
How it works:
Όταν δημιουργείται ένα νέο mount namespace, αρχικοποιείται με μια αντίγραφο των σημείων προσάρτησης από το γονικό namespace. Αυτό σημαίνει ότι, κατά τη δημιουργία, το νέο namespace μοιράζεται την ίδια άποψη του συστήματος αρχείων με το γονικό του. Ωστόσο, οποιεσδήποτε επακόλουθες αλλαγές στα σημεία προσάρτησης εντός του namespace δεν θα επηρεάσουν το γονικό ή άλλα namespaces.
Όταν μια διεργασία τροποποιεί ένα σημείο προσάρτησης εντός του namespace της, όπως η προσάρτηση ή η αποσύνδεση ενός συστήματος αρχείων, η αλλαγή είναι τοπική σε αυτό το namespace και δεν επηρεάζει άλλα namespaces. Αυτό επιτρέπει σε κάθε namespace να έχει τη δική του ανεξάρτητη ιεραρχία συστήματος αρχείων.
Οι διεργασίες μπορούν να μετακινηθούν μεταξύ namespaces χρησιμοποιώντας την κλήση συστήματος
setns()
, ή να δημιουργήσουν νέα namespaces χρησιμοποιώντας τις κλήσεις συστήματοςunshare()
ήclone()
με την σημαίαCLONE_NEWNS
. Όταν μια διεργασία μετακινείται σε ένα νέο namespace ή δημιουργεί ένα, θα αρχίσει να χρησιμοποιεί τα σημεία προσάρτησης που σχετίζονται με αυτό το namespace.Οι περιγραφείς αρχείων και οι inodes μοιράζονται μεταξύ namespaces, πράγμα που σημαίνει ότι αν μια διεργασία σε ένα namespace έχει έναν ανοιχτό περιγραφέα αρχείου που δείχνει σε ένα αρχείο, μπορεί να περάσει αυτόν τον περιγραφέα αρχείου σε μια διεργασία σε άλλο namespace, και οι δύο διεργασίες θα έχουν πρόσβαση στο ίδιο αρχείο. Ωστόσο, η διαδρομή του αρχείου μπορεί να μην είναι η ίδια και στα δύο namespaces λόγω διαφορών στα σημεία προσάρτησης.
Lab:
Create different Namespaces
CLI
Με την τοποθέτηση μιας νέας παρουσίας του συστήματος αρχείων /proc
αν χρησιμοποιήσετε την παράμετρο --mount-proc
, διασφαλίζετε ότι το νέο mount namespace έχει μια ακριβή και απομονωμένη άποψη των πληροφοριών διαδικασίας που είναι συγκεκριμένες για αυτό το namespace.
Docker
Ελέγξτε σε ποιο namespace βρίσκεται η διαδικασία σας
Βρείτε όλα τα Mount namespaces
Είσοδος μέσα σε ένα Mount namespace
Επίσης, μπορείτε μόνο να εισέλθετε σε άλλο namespace διαδικασίας αν είστε root. Και δεν μπορείτε να εισέλθετε σε άλλο namespace χωρίς έναν περιγραφέα που να δείχνει σε αυτό (όπως το /proc/self/ns/mnt
).
Δεδομένου ότι οι νέες προσβάσεις είναι προσβάσιμες μόνο εντός του namespace, είναι δυνατόν ένα namespace να περιέχει ευαίσθητες πληροφορίες που μπορούν να είναι προσβάσιμες μόνο από αυτό.
Mount something
Αναφορές
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated