macOS SIP

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

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

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

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

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


Βασικές Πληροφορίες

Η Προστασία Ακεραιότητας Συστήματος (SIP) στο macOS είναι ένας μηχανισμός σχεδιασμένος για να αποτρέψει ακόμα και τους πιο προνομιούχους χρήστες από το να κάνουν μη εξουσιοδοτημένες αλλαγές σε βασικούς φακέλους του συστήματος. Αυτό το χαρακτηριστικό παίζει έναν κρίσιμο ρόλο στη διατήρηση της ακεραιότητας του συστήματος περιορίζοντας ενέργειες όπως προσθήκη, τροποποίηση ή διαγραφή αρχείων σε προστατευμένες περιοχές. Οι κύριοι φάκελοι που προστατεύονται από το SIP περιλαμβάνουν:

  • /System

  • /bin

  • /sbin

  • /usr

Οι κανόνες που διέπουν τη συμπεριφορά του SIP ορίζονται στο αρχείο ρυθμίσεων που βρίσκεται στη διαδρομή /System/Library/Sandbox/rootless.conf. Μέσα σε αυτό το αρχείο, οι διαδρομές που προηγούνται από ένα αστερίσκο (*) χαρακτηρίζονται ως εξαιρέσεις από τους αυστηρούς περιορισμούς του SIP.

Λάβετε υπόψη το παρακάτω παράδειγμα:

/usr
* /usr/libexec/cups
* /usr/local
* /usr/share/man

Αυτό το απόσπασμα υπονοεί ότι ενώ το SIP ασφαλίζει γενικά τον κατάλογο /usr, υπάρχουν συγκεκριμένοι υποκατάλογοι (/usr/libexec/cups, /usr/local, και /usr/share/man) όπου οι τροποποιήσεις επιτρέπονται, όπως υποδεικνύεται από τον αστερίσκο (*) που προηγείται των διαδρομών τους.

Για να επαληθεύσετε εάν ένας κατάλογος ή ένα αρχείο προστατεύεται από το SIP, μπορείτε να χρησιμοποιήσετε την εντολή ls -lOd για να ελέγξετε την παρουσία της σημαίας restricted ή sunlnk. Για παράδειγμα:

ls -lOd /usr/libexec/cups
drwxr-xr-x  11 root  wheel  sunlnk 352 May 13 00:29 /usr/libexec/cups

Σε αυτήν την περίπτωση, η σημαία sunlnk υποδηλώνει ότι το ίδιο το φάκελο /usr/libexec/cups δεν μπορεί να διαγραφεί, αν και τα αρχεία μέσα σε αυτόν μπορούν να δημιουργηθούν, τροποποιηθούν ή διαγραφούν.

Από την άλλη:

ls -lOd /usr/libexec
drwxr-xr-x  338 root  wheel  restricted 10816 May 13 00:29 /usr/libexec

Εδώ, η restricted σημαία υποδεικνύει ότι το φάκελο /usr/libexec προστατεύεται από το SIP. Σε έναν φάκελο που προστατεύεται από το SIP, τα αρχεία δεν μπορούν να δημιουργηθούν, να τροποποιηθούν ή να διαγραφούν.

Επιπλέον, αν ένα αρχείο περιέχει το χαρακτηριστικό com.apple.rootless επεκταμένο χαρακτηριστικό, αυτό το αρχείο θα προστατεύεται επίσης από το SIP.

Το SIP περιορίζει επίσης άλλες ενέργειες ριζικού χρήστη όπως:

  • Φόρτωση μη έμπιστων επεκτάσεων πυρήνα

  • Λήψη task-ports για διεργασίες που έχουν υπογραφεί από την Apple

  • Τροποποίηση μεταβλητών NVRAM

  • Επιτροπή πυρήνα εντοπισμού σφαλμάτων

Οι επιλογές διατηρούνται στη μεταβλητή nvram ως bitflag (csr-active-config στο Intel και lp-sip0 διαβάζεται από τον εκκινούμενο Device Tree για ARM). Μπορείτε να βρείτε τις σημαίες στον πηγαίο κώδικα XNU στο csr.sh:

Κατάσταση SIP

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

csrutil status

Εάν χρειάζεται να απενεργοποιήσετε το SIP, πρέπει να επανεκκινήσετε τον υπολογιστή σας σε λειτουργία ανάκαμψης (πατώντας Command+R κατά την εκκίνηση), και στη συνέχεια να εκτελέσετε την ακόλουθη εντολή:

csrutil disable

Αν επιθυμείτε να διατηρήσετε ενεργοποιημένο το SIP αλλά να αφαιρέσετε τις προστασίες από αποσφαλμάτωση, μπορείτε να το κάνετε με:

csrutil enable --without debug

Άλλοι Περιορισμοί

  • Απαγορεύει τη φόρτωση μη υπογεγραμμένων επεκτάσεων πυρήνα (kexts), εξασφαλίζοντας ότι μόνο επαληθευμένες επεκτάσεις αλληλεπιδρούν με τον πυρήνα του συστήματος.

  • Αποτρέπει την εντοπισμό των διαδικασιών του συστήματος macOS, προστατεύοντας τα βασικά στοιχεία του συστήματος από μη εξουσιοδοτημένη πρόσβαση και τροποποίηση.

  • Αναστέλλει εργαλεία όπως το dtrace από τον έλεγχο των διαδικασιών του συστήματος, προστατεύοντας περαιτέρω την ακεραιότητα της λειτουργίας του συστήματος.

Μάθετε περισσότερα για τις πληροφορίες του SIP σε αυτήν την ομιλία.

Παρακάμψεις SIP

Η παράκαμψη του SIP επιτρέπει σε έναν εισβολέα να:

  • Αποκτήσει πρόσβαση σε Δεδομένα Χρήστη: Διαβάσει ευαίσθητα δεδομένα χρήστη όπως email, μηνύματα και ιστορικό Safari από όλους τους λογαριασμούς χρηστών.

  • Παράκαμψη TCC: Να ελέγξει απευθείας τη βάση δεδομένων TCC (Διαφάνεια, Συγκατάθεση και Έλεγχος) για να χορηγήσει μη εξουσιοδοτημένη πρόσβαση στην κάμερα, το μικρόφωνο και άλλους πόρους.

  • Δημιουργία Μόνιμης Παρουσίας: Τοποθετήσει κακόβουλο λογισμικό σε τοποθεσίες που προστατεύονται από το SIP, καθιστώντας το ανθεκτικό στην αφαίρεση, ακόμη και από δικαιώματα ρίζας. Αυτό περιλαμβάνει επίσης τη δυνατότητα να παραβιάσει το Εργαλείο Αφαίρεσης Κακόβουλου Λογισμικού (MRT).

  • Φόρτωση Επεκτάσεων Πυρήνα: Παρόλο που υπάρχουν επιπλέον μέτρα προστασίας, η παράκαμψη του SIP απλοποιεί τη διαδικασία φόρτωσης μη υπογεγραμμένων επεκτάσεων πυρήνα.

Πακέτα Εγκατάστασης

Τα πακέτα εγκατάστασης που έχουν υπογραφεί με το πιστοποιητικό της Apple μπορούν να παρακάμψουν τις προστασίες του SIP. Αυτό σημαίνει ότι ακόμη και τα πακέτα που έχουν υπογραφεί από τυπικούς προγραμματιστές θα αποκλειστούν αν προσπαθήσουν να τροποποιήσουν καταλόγους που προστατεύονται από το SIP.

Ανύπαρκτο Αρχείο SIP

Ένα πιθανό κενό είναι ότι αν ένα αρχείο καθορίζεται στο rootless.conf αλλά δεν υπάρχει προς το παρόν, μπορεί να δημιουργηθεί. Το κακόβουλο λογισμικό θα μπορούσε να εκμεταλλευτεί αυτό για να δημιουργήσει μόνιμη παρουσία στο σύστημα. Για παράδειγμα, ένα κακόβουλο πρόγραμμα θα μπορούσε να δημιουργήσει ένα αρχείο .plist στο /System/Library/LaunchDaemons αν αυτό αναφέρεται στο rootless.conf αλλά δεν υπάρχει.

com.apple.rootless.install.heritable

Η επιτροπή com.apple.rootless.install.heritable επιτρέπει την παράκαμψη του SIP

Shrootless

Ερευνητές από αυτήν την ανάρτηση στο blog ανακάλυψαν μια ευπάθεια στο μηχανισμό Προστασίας Ακεραιότητας Συστήματος (SIP) του macOS, με την ονομασία 'Shrootless' ευπάθεια. Αυτή η ευπάθεια εστιάζεται στον δαίμονα system_installd, ο οποίος έχει μια επιτροπή, com.apple.rootless.install.heritable, που επιτρέπει σε οποιαδήποτε από τις υποδιεργασίες του να παρακάμψει τους περιορισμούς του SIP στο σύστημα αρχείων.

Ο δαίμονας system_installd θα εγκαταστήσει πακέτα που έχουν υπογραφεί από την Apple.

Οι ερευνητές ανέφεραν ότι κατά την εγκατάσταση ενός πακέτου που έχει υπογραφεί από την Apple (.pkg αρχείο), ο system_installd εκτελεί οποιαδήποτε post-install scripts περιλαμβάνονται στο πακέτο. Αυτά τα scripts εκτελούνται από το προεπιλεγμένο κέλυφος, zsh, το οποίο αυτόματα εκτελεί εντολές από το αρχείο /etc/zshenv, αν υπάρχει, ακόμη και σε μη διαδραστική λειτουργία. Αυτή η συμπεριφορά θα μπορούσε να εκμεταλλευτεί από εισβολείς: δημιουργώντας ένα κακόβουλο αρχείο /etc/zshenv και περιμένοντας τον system_installd να καλέσει το zsh, θα μπορούσαν να εκτελέσουν αυθαίρετες λειτουργίες στη συσκευή.

Επιπλέον, ανακαλύφθηκε ότι το /etc/zshenv θα μπορούσε να χρησιμοποιηθεί ως γενική τεχνική επίθεσης, όχι μόνο για παράκαμψη του SIP. Κάθε προφίλ χρήστη έχει ένα αρχείο ~/.zshenv, το οποίο λειτουργεί με τον ίδιο τρόπο με το /etc/zshenv αλλά δεν απαιτεί δικαιώματα ρίζας. Αυτό το αρχείο θα μπορούσε να χρησιμοποιηθεί ως μηχανισμός μόνιμης παρουσίας, ενεργοποιώντας κάθε φορά που ξεκινά η zsh, ή ως μηχανισμός ανύψωσης προνομίων. Αν ένας διαχειριστής χρήστη αναβαθμίζει σε ρίζα χρησιμοποιώντας sudo -s ή sudo <εντολή>, το αρχείο ~/.zshenv θα ενεργοποιηθεί, ανεβάζοντας αποτελεσματικά σε ρίζα.

Στο CVE-2022-22583 ανακαλύφθηκε ότι ο ίδιος διακομιστής system_installd μπορούσε να καταχραστεί επειδή έβαζε το post-install script μέσα σε ένα φάκελο με τυχαίο όνομα που προστατευόταν από το SIP μέσα στο /tmp. Το θέμα είναι ότι το /tmp δεν προστατεύεται από το SIP, οπότε ήταν δυνατό να προσαρτηθεί ένα εικονικό εικονίδιο επάνω του, στη συνέχεια ο εγκαταστάτης θα έβαζε εκεί το post-install script, αποσυναρμολογούσε το εικονίδιο, αναδημιουργούσε όλους τους φακέλους και πρόσθετε το script με το payload προς εκτέλεση.

Αναγνωρίστηκε μια ευπάθεια όπου το fsck_cs παραπλανήθηκε να καταστρέψει ένα κρίσιμο αρχείο, λόγω της ικανότητάς του να ακολουθεί συμβολικούς συνδέσμους. Συγκεκριμένα, οι εισβολείς δημιούργησαν ένα σύνδεσμο

ln -s /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist /dev/diskX
fsck_cs /dev/diskX 1>&-
touch /Library/Extensions/
reboot

Η εκμετάλλευση αυτής της ευπάθειας έχει σοβαρές επιπτώσεις. Το αρχείο Info.plist, που είναι υπεύθυνο για τη διαχείριση των δικαιωμάτων για τις πυρήνα επεκτάσεις, γίνεται αναποτελεσματικό. Αυτό περιλαμβάνει την αδυναμία μαύρης λίστας ορισμένων επεκτάσεων, όπως η AppleHWAccess.kext. Ως αποτέλεσμα, με το μηχανισμό ελέγχου του SIP να είναι εκτός λειτουργίας, αυτή η επέκταση μπορεί να φορτωθεί, παρέχοντας μη εξουσιοδοτημένη πρόσβαση ανάγνωσης και εγγραφής στη RAM του συστήματος.

Ήταν δυνατό να τοποθετηθεί ένα νέο σύστημα αρχείων πάνω από τους φακέλους που προστατεύονται από το SIP για να παρακάμψει την προστασία.

mkdir evil
# Add contento to the folder
hdiutil create -srcfolder evil evil.dmg
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg

Το σύστημα έχει ρυθμιστεί να εκκινεί από ένα ενσωματωμένο δισκίο εγκατάστασης μέσα στο Install macOS Sierra.app για να αναβαθμίσει το λειτουργικό σύστημα, χρησιμοποιώντας το εργαλείο bless. Η εντολή που χρησιμοποιείται είναι η ακόλουθη:

/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer

Η ασφάλεια αυτής της διαδικασίας μπορεί να διακυβευτεί εάν ένας εισβολέας τροποποιήσει την εικόνα αναβάθμισης (InstallESD.dmg) πριν την εκκίνηση. Η στρατηγική περιλαμβάνει την αντικατάσταση ενός δυναμικού φορτωτή (dyld) με μια κακόβουλη έκδοση (libBaseIA.dylib). Αυτή η αντικατάσταση οδηγεί στην εκτέλεση του κώδικα του εισβολέα όταν ξεκινά ο εγκαταστάτης.

Ο κώδικας του εισβολέα αποκτά έλεγχο κατά τη διάρκεια της διαδικασίας αναβάθμισης, εκμεταλλευόμενος την εμπιστοσύνη του συστήματος στον εγκαταστάτη. Η επίθεση συνεχίζεται με την τροποποίηση της εικόνας InstallESD.dmg μέσω της μεθόδου swizzling, εστιάζοντας ιδιαίτερα στη μέθοδο extractBootBits. Αυτό επιτρέπει την εισαγωγή κακόβουλου κώδικα πριν από τη χρήση της εικόνας δίσκου.

Επιπλέον, μέσα στο InstallESD.dmg, υπάρχει ένα BaseSystem.dmg, το οποίο λειτουργεί ως ριζικό σύστημα αρχείων αναβάθμισης. Η εισαγωγή ενός δυναμικού βιβλιοθήκης σε αυτό επιτρέπει στον κακόβουλο κώδικα να λειτουργεί μέσα σε ένα διεργασία ικανή να τροποποιήσει αρχεία σε επίπεδο λειτουργικού συστήματος, αυξάνοντας σημαντικά τη δυνατότητα για διακύβευση του συστήματος.

Σε αυτήν την ομιλία από το DEF CON 31, δείχνεται πώς το systemmigrationd (το οποίο μπορεί να παρακάμψει το SIP) εκτελεί ένα bash και ένα σενάριο perl, τα οποία μπορούν να καταχραστούνται μέσω των μεταβλητών περιβάλλοντος BASH_ENV και PERL5OPT.

com.apple.rootless.install

Η εξουσία com.apple.rootless.install επιτρέπει την παράκαμψη του SIP

Η εξουσία com.apple.rootless.install είναι γνωστή για την παράκαμψη της Προστασίας Ακεραιότητας Συστήματος (SIP) στο macOS. Αυτό αναφέρθηκε ιδιαίτερα σε σχέση με το CVE-2022-26712.

Σε αυτήν τη συγκεκριμένη περίπτωση, η υπηρεσία XPC του συστήματος που βρίσκεται στο /System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc διαθέτει αυτήν την εξουσία. Αυτό επιτρέπει στη σχετική διαδικασία να παρακάμψει τους περιορισμούς του SIP. Επιπλέον, αυτή η υπηρεσία παρουσιάζει μια μέθοδο που επιτρέπει τη μετακίνηση αρχείων χωρίς την εφαρμογή οποιωνδήποτε μέτρων ασφαλείας.

Σφραγισμένα Στιγμιότυπα Συστήματος

Τα Σφραγισμένα Στιγμιότυπα Συστήματος είναι μια λειτουργία που εισήγαγε η Apple στο macOS Big Sur (macOS 11) ως μέρος του μηχανισμού της Προστασίας Ακεραιότητας Συστήματος (SIP) για να παρέχει ένα επιπλέον επίπεδο ασφάλειας και σταθερότητας συστήματος. Ουσιαστικά είναι αναγνώσιμες μόνο εκδόσεις του όγκου του συστήματος.

Εδώ υπάρχει μια πιο λεπτομερής ματιά:

  1. Αμετάβλητο Σύστημα: Τα Σφραγισμένα Στιγμιότυπα Συστήματος καθιστούν τον όγκο του συστήματος macOS "αμετάβλητο", πράγμα που σημαίνει ότι δεν μπορεί να τροποποιηθεί. Αυτό εμποδίζει οποιεσδήποτε μη εξουσιοδοτημένες ή ατύχητες αλλαγές στο σύστημα που θα μπορούσαν να διακυβεύσουν την ασφάλεια ή τη σταθερότητα του συστήματος.

  2. Ενημερώσεις Λογισμικού Συστήματος: Όταν εγκαθιστάτε ενημερώσεις ή αναβαθμίσεις macOS, το macOS δημιουργεί ένα νέο στιγμιότυπο συστήματος. Ο όγκος εκκίνησης του macOS χρησιμοποιεί στη συνέχεια το APFS (Apple File System) για να μεταβεί σε αυτό το νέο στιγμιότυπο. Ολόκληρη η διαδικασία εφαρμογής ενημερώσεων γίνεται πιο ασφαλής και αξιόπιστη καθώς το σύστημα μπορεί πάντα να επανέλθει στο προηγούμενο στιγμιότυπο αν κάτι πάει στραβά κατά τη διάρκεια της ενημέρωσης.

  3. Διαχωρισμός Δεδομένων: Σε συνδυασμό με την έννοια του διαχωρισμού όγκου Δεδομένων και Συστήματος που εισήγαγε το macOS Catalina, η λειτουργία Σφραγισμένων Στιγμιοτύπων Συστήματος βεβαιώνει ότι όλα τα δεδομένα και οι ρυθμίσεις σας αποθηκεύονται σε έναν ξεχωριστό όγκο "Δεδομένων". Αυτός ο διαχωρισμός κάνει τα δεδομένα σας ανεξάρτητα από το σύστημα, το οποίο απλοποιεί τη διαδικασία ενημέρωσης του συστήματος και ενισχύει την ασφάλεια του συστήματος.

Θυμηθείτε ότι αυτά τα στιγμιότυπα διαχειρίζονται αυτόματα από το macOS και δεν καταλαμβάνουν επιπλέον χώρο στο δίσκο σας, χάρη στις δυνατότητες κοινής χρήσης χώρου του APFS. Είναι επίσης σημαντικό να σημειωθεί ότι αυτά τα στιγμιότυπα διαφέρουν από τα στιγμιότυπα Time Machine, τα οποία είναι διαθέσιμα για τον χρήστη ως αντίγραφα ασφαλείας ολόκληρου του συστήματος.

Έλεγχος Στιγμιοτύπων

Η εντολή diskutil apfs list εμφανίζει τις λεπτομέρειες των όγκων APFS και τη διάταξή τους:

+-- Container disk3 966B902E-EDBA-4775-B743-CF97A0556A13
|   ====================================================
|   Αναφορά Χωρητικότητας APFS:     disk3
|   Μέγεθος (Οροφή Χωρητικότητας):      494384795648 B (494.4 GB)
|   Χωρητικότητα Χρησιμοποιούμενη από Όγκους:   219214536704 B (219.2 GB) (44.3% χρησιμοποιημένο)
|   Χωρητικότητα που δεν έχει εκχωρηθεί:       275170258944 B (275.2 GB) (55.7% ελεύθερο)
|   |
|   +-< Φυσική Αποθήκη disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
|   |   -----------------------------------------------------------
|   |   Δίσκος Φυσικής Αποθήκης APFS:   disk0s2
|   |   Μέγεθος:                       494384795648 B (494.4 GB)
|   |
|   +-> Όγκος disk3s1 7A27E734-880F-4D91-A703-FB55861D49B7
|   |   ---------------------------------------------------
|   |   Δίσκος Όγκου APFS (Ρόλος):   disk3s1 (Σύστημα)
|   |   Όνομα:                      Macintosh HD (Χωρίς διάκριση πεζών-κεφαλαίων)
|   |   Σημείο Προσάρτησης:               /System/Volumes/Update/mnt1
|   |   Χωρητικότητα Καταναλωμένη:         128192
```bash
csrutil authenticated-root status
Authenticated Root status: enabled
```
Επιπλέον, το δίσκος στιγμιότυπου είναι επίσης προσαρτημένος ως **μόνο για ανάγνωση**:
```bash
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
### [WhiteIntel](https://whiteintel.io)



[**WhiteIntel**](https://whiteintel.io) είναι ένας μηχανισμός αναζήτησης που τροφοδοτείται από το **dark web** και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν **διαρρεύσει** από **κλέφτες κακόβουλων λογισμικών**.

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

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



Last updated