hacktricks/windows-hardening/windows-local-privilege-escalation/integrity-levels.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

13 KiB
Raw Blame History

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Επίπεδα Ακεραιότητας

Στα Windows Vista και μεταγενέστερες εκδόσεις, όλα τα προστατευμένα αντικείμενα έχουν μια ετικέτα επιπέδου ακεραιότητας. Αυτή η ρύθμιση αναθέτει κυρίως ένα "μεσαίο" επίπεδο ακεραιότητας σε αρχεία και κλειδιά της καταχώρησης, εκτός από ορισμένους φακέλους και αρχεία στους οποίους ο Internet Explorer 7 μπορεί να γράψει σε χαμηλό επίπεδο ακεραιότητας. Η προεπιλεγμένη συμπεριφορά είναι να έχουν οι διεργασίες που ξεκινούν από τους τυπικούς χρήστες ένα μεσαίο επίπεδο ακεραιότητας, ενώ οι υπηρεσίες λειτουργούν συνήθως σε ένα επίπεδο ακεραιότητας συστήματος. Ένα επίπεδο υψηλής ακεραιότητας προστατεύει τον ριζικό κατάλογο.

Ένας βασικός κανόνας είναι ότι τα αντικείμενα δεν μπορούν να τροποποιηθούν από διεργασίες με χαμηλότερο επίπεδο ακεραιότητας από το επίπεδο του αντικειμένου. Τα επίπεδα ακεραιότητας είναι:

  • Μη έμπιστο: Αυτό το επίπεδο είναι για διεργασίες με ανώνυμες συνδέσεις. %%%Παράδειγμα: Chrome%%%
  • Χαμηλό: Κυρίως για διαδικτυακές αλληλεπιδράσεις, ειδικά στην Προστατευμένη Λειτουργία του Internet Explorer, επηρεάζοντας συνδεδεμένα αρχεία και διεργασίες, καθώς και ορισμένους φακέλους όπως ο Προσωρινός Φάκελος Διαδικτύου. Οι διεργασίες χαμηλής ακεραιότητας αντιμετωπίζουν σημαντικούς περιορισμούς, συμπεριλαμβανομένης της απουσίας πρόσβασης εγγραφής στην καταχώρηση και της περιορισμένης πρόσβασης εγγραφής στο προφίλ του χρήστη.
  • Μεσαίο: Το προεπιλεγμένο επίπεδο για τις περισσότερες δραστηριότητες, ανατίθεται σε τυπικούς χρήστες και αντικείμενα χωρίς συγκεκριμένα επίπεδα ακεραιότητας. Ακόμη και τα μέλη της ομάδας Διαχειριστών λειτουργούν σε αυτό το επίπεδο από προεπιλογή.
  • Υψηλό: Κατοχυρωμένο για διαχειριστές, επιτρέποντάς τους να τροποποιούν αντικείμενα σε χαμηλότερα επίπεδα ακεραιότητας, συμπεριλαμβανομένων αυτών στο ίδιο υψηλό επίπεδο.
  • Σύστημα: Το υψηλότερο επίπεδο λειτουργίας για τον πυρήνα των Windows και τις βασικές υπηρεσίες, μη προσβάσιμο ακόμη και από διαχειριστές, εξασφαλίζοντας την προστασία των ζωτικών λειτουργιών του συστήματος.
  • Εγκαταστάτης: Ένα μοναδικό επίπεδο που βρίσκεται πάνω από όλα τα άλλα, επιτρέποντας σε αντικείμενα σε αυτό το επίπεδο να απεγκαταστήσουν οποιοδήποτε άλλο αντικείμενο.

Μπορείτε να λάβετε το επίπεδο ακεραιότητας μιας διεργασίας χρησιμοποιώντας το Process Explorer από το Sysinternals, αποκτώντας πρόσβαση στις ιδιότητες της διεργασίας και προβάλλοντας την καρτέλα "Ασφάλεια":

Μπορείτε επίσης να λάβετε το τρέχον επίπεδο ακεραιότητας σας χρησιμοποιώντας την εντολή whoami /groups

Επίπεδα Ακεραιότητας στο Σύστημα Αρχείων

Ένα αντικείμενο μέσα στο σύστημα αρχείων μπορεί να χρειάζεται ένα ελάχιστο επίπεδο ακεραιότητας και αν μια διεργασία δεν έχει αυτό το επίπεδο ακεραιότητας, δεν θα μπορεί να αλληλεπιδράσει με αυτό.
Για παράδειγμα, ας δημιουργήσουμε ένα κανονικό αρχείο από την κονσόλα ενός κανονικού χρήστη και να ελέγξουμε τα δικαιώματα:

echo asd >asd.txt
icacls asd.txt
asd.txt BUILTIN\Administrators:(I)(F)
DESKTOP-IDJHTKP\user:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\INTERACTIVE:(I)(M,DC)
NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)

Τώρα, ας αναθέσουμε ένα ελάχιστο επίπεδο ακεραιότητας Υψηλό στο αρχείο. Αυτό πρέπει να γίνει από ένα παράθυρο κονσόλας που εκτελείται ως διαχειριστής, καθώς ένα κανονικό παράθυρο κονσόλας θα εκτελείται σε επίπεδο Μεσαίας Ακεραιότητας και δεν θα επιτρέπεται να αναθέσει Υψηλό Επίπεδο Ακεραιότητας σε ένα αντικείμενο:

icacls asd.txt /setintegritylevel(oi)(ci) High
processed file: asd.txt
Successfully processed 1 files; Failed processing 0 files

C:\Users\Public>icacls asd.txt
asd.txt BUILTIN\Administrators:(I)(F)
DESKTOP-IDJHTKP\user:(I)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\INTERACTIVE:(I)(M,DC)
NT AUTHORITY\SERVICE:(I)(M,DC)
NT AUTHORITY\BATCH:(I)(M,DC)
Mandatory Label\High Mandatory Level:(NW)

Εδώ είναι που τα πράγματα γίνονται ενδιαφέροντα. Μπορείτε να δείτε ότι ο χρήστης DESKTOP-IDJHTKP\user έχει πλήρη δικαιώματα στο αρχείο (πράγματι, αυτός ήταν ο χρήστης που δημιούργησε το αρχείο), ωστόσο, λόγω του ελάχιστου επιπέδου ακεραιότητας που έχει εφαρμοστεί, δεν θα μπορεί πλέον να τροποποιήσει το αρχείο εκτός αν εκτελείται μέσα σε ένα Υψηλό Επίπεδο Ακεραιότητας (σημειώστε ότι θα μπορεί να το διαβάσει):

echo 1234 > asd.txt
Access is denied.

del asd.txt
C:\Users\Public\asd.txt
Access is denied.

{% hint style="info" %} Επομένως, όταν ένα αρχείο έχει ένα ελάχιστο επίπεδο ακεραιότητας, για να το τροποποιήσετε πρέπει να εκτελείστε τουλάχιστον σε αυτό το επίπεδο ακεραιότητας. {% endhint %}

Επίπεδα Ακεραιότητας στα Δυαδικά Αρχεία

Έκανα αντιγραφή του cmd.exe στο C:\Windows\System32\cmd-low.exe και του έθεσα ένα επίπεδο ακεραιότητας χαμηλό από μια κονσόλα διαχειριστή:

icacls C:\Windows\System32\cmd-low.exe
C:\Windows\System32\cmd-low.exe NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APP PACKAGES:(I)(RX)
Mandatory Label\Low Mandatory Level:(NW)

Τώρα, όταν εκτελώ το cmd-low.exe, θα εκτελείται με χαμηλό επίπεδο ακεραιότητας αντί για μεσαίο:

Για περιέργους, αν αναθέσετε υψηλό επίπεδο ακεραιότητας σε ένα δυαδικό αρχείο (icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high), δεν θα εκτελεστεί αυτόματα με υψηλό επίπεδο ακεραιότητας (αν το καλέσετε από ένα μεσαίο επίπεδο ακεραιότητας - από προεπιλογή - θα εκτελεστεί με μεσαίο επίπεδο ακεραιότητας).

Επίπεδα Ακεραιότητας στις Διεργασίες

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

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

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks: