NFS no_root_squash/no_all_squash misconfiguration PE
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Διαβάστε το _ /etc/exports _ αρχείο, αν βρείτε κάποιον κατάλογο που είναι ρυθμισμένος ως no_root_squash, τότε μπορείτε να έχετε πρόσβαση σε αυτόν από ως πελάτης και να γράφετε μέσα σε αυτόν τον κατάλογο σαν να ήσασταν ο τοπικός root της μηχανής.
no_root_squash: Αυτή η επιλογή δίνει βασικά εξουσία στον χρήστη root στον πελάτη να έχει πρόσβαση σε αρχεία στον NFS server ως root. Και αυτό μπορεί να οδηγήσει σε σοβαρές επιπτώσεις ασφαλείας.
no_all_squash: Αυτή είναι παρόμοια με την επιλογή no_root_squash αλλά εφαρμόζεται σε μη-root χρήστες. Φανταστείτε, έχετε ένα shell ως χρήστης nobody; ελέγξατε το αρχείο /etc/exports; η επιλογή no_all_squash είναι παρούσα; ελέγξτε το αρχείο /etc/passwd; προσομοιώστε έναν μη-root χρήστη; δημιουργήστε ένα αρχείο suid ως αυτός ο χρήστης (με την τοποθέτηση χρησιμοποιώντας nfs). Εκτελέστε το suid ως χρήστης nobody και γίνετε διαφορετικός χρήστης.
Αν έχετε βρει αυτή την ευπάθεια, μπορείτε να την εκμεταλλευτείτε:
Τοποθετώντας αυτόν τον κατάλογο σε μια μηχανή πελάτη, και ως root αντιγράφοντας μέσα στον τοποθετημένο φάκελο το /bin/bash δυαδικό και δίνοντάς του SUID δικαιώματα, και εκτελώντας από τη μηχανή του θύματος αυτό το δυαδικό bash.
Τοποθετώντας αυτόν τον φάκελο σε μια μηχανή-πελάτη, και ως root αντιγράφοντας μέσα στον τοποθετημένο φάκελο το προετοιμασμένο payload μας που θα εκμεταλλευτεί την άδεια SUID, δίνοντάς του δικαιώματα SUID, και εκτελώντας από τη μηχανή του θύματος αυτό το δυαδικό (μπορείτε να βρείτε εδώ μερικά C SUID payloads).
Σημειώστε ότι αν μπορείτε να δημιουργήσετε ένα τούνελ από τη μηχανή σας στη μηχανή του θύματος, μπορείτε ακόμα να χρησιμοποιήσετε την απομακρυσμένη έκδοση για να εκμεταλλευτείτε αυτή την κλιμάκωση προνομίων, τοποθετώντας τα απαιτούμενα ports.
Το παρακάτω κόλπο ισχύει στην περίπτωση που το αρχείο /etc/exports
υποδεικνύει μια IP. Σε αυτή την περίπτωση δεν θα μπορείτε να χρησιμοποιήσετε σε καμία περίπτωση την απομακρυσμένη εκμετάλλευση και θα χρειαστεί να καταχραστείτε αυτό το κόλπο.
Ένα άλλο απαιτούμενο προαπαιτούμενο για να λειτουργήσει η εκμετάλλευση είναι ότι η εξαγωγή μέσα στο /etc/export
πρέπει να χρησιμοποιεί την insecure
σημαία.
--Δεν είμαι σίγουρος αν το /etc/export
υποδεικνύει μια διεύθυνση IP, αν αυτό το κόλπο θα λειτουργήσει--
Το σενάριο περιλαμβάνει την εκμετάλλευση ενός προσαρτημένου NFS share σε μια τοπική μηχανή, εκμεταλλευόμενος ένα σφάλμα στην προδιαγραφή NFSv3 που επιτρέπει στον πελάτη να καθορίσει το uid/gid του, ενδεχομένως επιτρέποντας μη εξουσιοδοτημένη πρόσβαση. Η εκμετάλλευση περιλαμβάνει τη χρήση του libnfs, μιας βιβλιοθήκης που επιτρέπει την παραχάραξη των κλήσεων RPC NFS.
Τα βήματα για τη συμπίεση της βιβλιοθήκης μπορεί να απαιτούν προσαρμογές με βάση την έκδοση του πυρήνα. Σε αυτή την συγκεκριμένη περίπτωση, οι syscalls fallocate είχαν σχολιαστεί. Η διαδικασία συμπίεσης περιλαμβάνει τις παρακάτω εντολές:
Η εκμετάλλευση περιλαμβάνει τη δημιουργία ενός απλού προγράμματος C (pwn.c
) που ανυψώνει τα δικαιώματα σε root και στη συνέχεια εκτελεί ένα shell. Το πρόγραμμα μεταγλωττίζεται και το προκύπτον δυαδικό αρχείο (a.out
) τοποθετείται στο κοινόχρηστο με suid root, χρησιμοποιώντας το ld_nfs.so
για να προσποιηθεί το uid στις κλήσεις RPC:
Μεταγλωττίστε τον κώδικα εκμετάλλευσης:
Τοποθετήστε την εκμετάλλευση στο κοινόχρηστο και τροποποιήστε τα δικαιώματά της προσποιούμενοι το uid:
Εκτελέστε την εκμετάλλευση για να αποκτήσετε δικαιώματα root:
Μόλις αποκτηθεί η πρόσβαση root, για να αλληλεπιδράσετε με το NFS κοινόχρηστο χωρίς να αλλάξετε την ιδιοκτησία (για να αποφευχθεί η αφή ίχνους), χρησιμοποιείται ένα σενάριο Python (nfsh.py). Αυτό το σενάριο προσαρμόζει το uid ώστε να ταιριάζει με αυτό του αρχείου που προσπελάζεται, επιτρέποντας την αλληλεπίδραση με αρχεία στο κοινόχρηστο χωρίς προβλήματα δικαιωμάτων:
Τρέξτε όπως:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)