28 KiB
ACLs - DACLs/SACLs/ACEs
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας με τη βοήθεια των πιο προηγμένων εργαλείων της κοινότητας.
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces" %}
{% hint style="success" %}
Μάθετε και εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε και εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Λίστα Ελέγχου Πρόσβασης (ACL)
Μια Λίστα Ελέγχου Πρόσβασης (ACL) αποτελείται από ένα διατεταγμένο σύνολο Εισόδων Ελέγχου Πρόσβασης (ACEs) που καθορίζουν τις προστασίες για ένα αντικείμενο και τις ιδιότητές του. Στην ουσία, μια ACL ορίζει ποιες ενέργειες από ποιους ασφαλιστικούς φορείς (χρήστες ή ομάδες) επιτρέπονται ή απορρίπτονται σε ένα δεδομένο αντικείμενο.
Υπάρχουν δύο τύποι ACLs:
- Διακριτική Λίστα Ελέγχου Πρόσβασης (DACL): Καθορίζει ποιους χρήστες και ομάδες έχουν ή δεν έχουν πρόσβαση σε ένα αντικείμενο.
- Λίστα Ελέγχου Πρόσβασης Συστήματος (SACL): Ρυθμίζει την παρακολούθηση των προσπαθειών πρόσβασης σε ένα αντικείμενο.
Η διαδικασία πρόσβασης σε ένα αρχείο περιλαμβάνει το σύστημα να ελέγχει τον ασφαλιστικό περιγραφέα του αντικειμένου σε σχέση με το διακριτικό πρόσβασης του χρήστη για να καθορίσει αν θα παραχωρηθεί πρόσβαση και το εύρος αυτής της πρόσβασης, με βάση τα ACEs.
Κύρια Συστατικά
- DACL: Περιέχει ACEs που παραχωρούν ή απορρίπτουν δικαιώματα πρόσβασης σε χρήστες και ομάδες για ένα αντικείμενο. Είναι ουσιαστικά η κύρια ACL που καθορίζει τα δικαιώματα πρόσβασης.
- SACL: Χρησιμοποιείται για την παρακολούθηση της πρόσβασης σε αντικείμενα, όπου τα ACEs καθορίζουν τους τύπους πρόσβασης που θα καταγραφούν στο Αρχείο Συμβάντων Ασφαλείας. Αυτό μπορεί να είναι πολύτιμο για την ανίχνευση μη εξουσιοδοτημένων προσπαθειών πρόσβασης ή την επίλυση προβλημάτων πρόσβασης.
Αλληλεπίδραση Συστήματος με ACLs
Κάθε συνεδρία χρήστη σχετίζεται με ένα διακριτικό πρόσβασης που περιέχει πληροφορίες ασφαλείας σχετικές με αυτή τη συνεδρία, συμπεριλαμβανομένων των ταυτοτήτων χρηστών, ομάδων και προνομίων. Αυτό το διακριτικό περιλαμβάνει επίσης ένα SID σύνδεσης που προσδιορίζει μοναδικά τη συνεδρία.
Η Τοπική Αρχή Ασφαλείας (LSASS) επεξεργάζεται τα αιτήματα πρόσβασης σε αντικείμενα εξετάζοντας το DACL για ACEs που ταιριάζουν με τον ασφαλιστικό φορέα που προσπαθεί να αποκτήσει πρόσβαση. Η πρόσβαση παραχωρείται αμέσως αν δεν βρεθούν σχετικές ACEs. Διαφορετικά, η LSASS συγκρίνει τα ACEs με το SID του ασφαλιστικού φορέα στο διακριτικό πρόσβασης για να καθορίσει την επιλεξιμότητα πρόσβασης.
Συνοπτική Διαδικασία
- ACLs: Ορίζουν δικαιώματα πρόσβασης μέσω DACLs και κανόνες παρακολούθησης μέσω SACLs.
- Διακριτικό Πρόσβασης: Περιέχει πληροφορίες χρήστη, ομάδας και προνομίων για μια συνεδρία.
- Απόφαση Πρόσβασης: Λαμβάνεται συγκρίνοντας τα DACL ACEs με το διακριτικό πρόσβασης; τα SACLs χρησιμοποιούνται για παρακολούθηση.
ACEs
Υπάρχουν τρία κύρια είδη Εισόδων Ελέγχου Πρόσβασης (ACEs):
- ACE Απορριπτόμενης Πρόσβασης: Αυτή η ACE απορρίπτει ρητά την πρόσβαση σε ένα αντικείμενο για καθορισμένους χρήστες ή ομάδες (σε ένα DACL).
- ACE Επιτρεπόμενης Πρόσβασης: Αυτή η ACE παραχωρεί ρητά την πρόσβαση σε ένα αντικείμενο για καθορισμένους χρήστες ή ομάδες (σε ένα DACL).
- ACE Συστήματος Επιθεώρησης: Τοποθετημένη μέσα σε μια Λίστα Ελέγχου Πρόσβασης Συστήματος (SACL), αυτή η ACE είναι υπεύθυνη για τη δημιουργία αρχείων καταγραφής επιθεώρησης κατά τις προσπάθειες πρόσβασης σε ένα αντικείμενο από χρήστες ή ομάδες. Καταγράφει αν η πρόσβαση επιτράπηκε ή απορρίφθηκε και τη φύση της πρόσβασης.
Κάθε ACE έχει τέσσερα κρίσιμα συστατικά:
- Το Αναγνωριστικό Ασφαλείας (SID) του χρήστη ή της ομάδας (ή το κύριο όνομά τους σε γραφική αναπαράσταση).
- Ένα σημείο που προσδιορίζει τον τύπο ACE (απορριπτόμενη, επιτρεπόμενη ή επιθεώρησης συστήματος).
- Σημεία κληρονομιάς που καθορίζουν αν τα παιδικά αντικείμενα μπορούν να κληρονομήσουν την ACE από τον γονέα τους.
- Ένα μάσκα πρόσβασης, μια 32-bit τιμή που προσδιορίζει τα παραχωρημένα δικαιώματα του αντικειμένου.
Η καθοριστική πρόσβαση διεξάγεται εξετάζοντας διαδοχικά κάθε ACE μέχρι:
- Μια ACE Απορριπτόμενης Πρόσβασης να απορρίπτει ρητά τα ζητούμενα δικαιώματα σε έναν δικαιούχο που προσδιορίζεται στο διακριτικό πρόσβασης.
- ACE Επιτρεπόμενης Πρόσβασης να παραχωρεί ρητά όλα τα ζητούμενα δικαιώματα σε έναν δικαιούχο στο διακριτικό πρόσβασης.
- Μετά τον έλεγχο όλων των ACEs, αν οποιοδήποτε ζητούμενο δικαίωμα δεν έχει παραχωρηθεί ρητά, η πρόσβαση απορρίπτεται σιωπηρά.
Σειρά ACEs
Ο τρόπος που οι ACEs (κανόνες που λένε ποιος μπορεί ή δεν μπορεί να έχει πρόσβαση σε κάτι) τοποθετούνται σε μια λίστα που ονομάζεται DACL είναι πολύ σημαντικός. Αυτό συμβαίνει επειδή μόλις το σύστημα παραχωρήσει ή απορρίψει πρόσβαση με βάση αυτούς τους κανόνες, σταματά να εξετάζει τους υπόλοιπους.
Υπάρχει ένας καλύτερος τρόπος να οργανωθούν αυτές οι ACEs, και ονομάζεται "κανονική σειρά." Αυτή η μέθοδος βοηθά να διασφαλιστεί ότι όλα λειτουργούν ομαλά και δίκαια. Εδώ είναι πώς γίνεται για συστήματα όπως Windows 2000 και Windows Server 2003:
- Πρώτα, τοποθετήστε όλους τους κανόνες που έχουν δημιουργηθεί ειδικά για αυτό το αντικείμενο πριν από εκείνους που προέρχονται από κάπου αλλού, όπως ένας γονικός φάκελος.
- Σε αυτούς τους ειδικούς κανόνες, τοποθετήστε εκείνους που λένε "όχι" (απορρίπτεται) πριν από εκείνους που λένε "ναι" (επιτρέπεται).
- Για τους κανόνες που προέρχονται από κάπου αλλού, ξεκινήστε με εκείνους από την πλησιέστερη πηγή, όπως ο γονέας, και στη συνέχεια προχωρήστε από εκεί. Και πάλι, τοποθετήστε "όχι" πριν από "ναι."
Αυτή η ρύθμιση βοηθά με δύο σημαντικούς τρόπους:
- Διασφαλίζει ότι αν υπάρχει μια συγκεκριμένη "όχι," αυτή θα τηρηθεί, ανεξάρτητα από τους άλλους κανόνες "ναι."
- Επιτρέπει στον ιδιοκτήτη ενός αντικειμένου να έχει τον τελικό λόγο για το ποιος μπορεί να εισέλθει, πριν από οποιουσδήποτε κανόνες από γονικούς φακέλους ή πιο μακριά.
Κάνοντας τα πράγματα με αυτόν τον τρόπο, ο ιδιοκτήτης ενός αρχείου ή φακέλου μπορεί να είναι πολύ ακριβής σχετικά με το ποιος έχει πρόσβαση, διασφαλίζοντας ότι οι σωστοί άνθρωποι μπορούν να εισέλθουν και οι λάθος δεν μπορούν.
Έτσι, αυτή η "κανονική σειρά" αφορά τη διασφάλιση ότι οι κανόνες πρόσβασης είναι σαφείς και λειτουργούν καλά, τοποθετώντας τους συγκεκριμένους κανόνες πρώτα και οργανώνοντας τα πάντα με έξυπνο τρόπο.
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας με τη βοήθεια των πιο προηγμένων εργαλείων της κοινότητας.
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Παράδειγμα GUI
Αυτή είναι η κλασική καρτέλα ασφαλείας ενός φακέλου που δείχνει την ACL, DACL και ACEs:
Αν κάνουμε κλικ στο κουμπί Προχωρημένες ρυθμίσεις θα λάβουμε περισσότερες επιλογές όπως η κληρονομιά:
Και αν προσθέσετε ή επεξεργαστείτε έναν Ασφαλιστικό Φορέα:
Και τέλος έχουμε το SACL στην καρτέλα Επιθεώρησης:
Εξήγηση του Ελέγχου Πρόσβασης με Απλό Τρόπο
Όταν διαχειριζόμαστε την πρόσβαση σε πόρους, όπως ένας φάκελος, χρησιμοποιούμε λίστες και κανόνες που ονομάζονται Λίστες Ελέγχου Πρόσβασης (ACLs) και Εισόδους Ελέγχου Πρόσβασης (ACEs). Αυτές καθορίζουν ποιος μπορεί ή δεν μπορεί να έχει πρόσβαση σε ορισμένα δεδομένα.
Απορρίπτοντας Πρόσβαση σε Μια Συγκεκριμένη Ομάδα
Φανταστείτε ότι έχετε έναν φάκελο με όνομα Κόστος, και θέλετε όλοι να έχουν πρόσβαση σε αυτόν εκτός από μια ομάδα μάρκετινγκ. Ρυθμίζοντας σωστά τους κανόνες, μπορούμε να διασφαλίσουμε ότι η ομάδα μάρκετινγκ απορρίπτεται ρητά πριν επιτραπεί σε όλους τους άλλους. Αυτό γίνεται τοποθετώντας τον κανόνα που απορρίπτει την πρόσβαση στην ομάδα μάρκετινγκ πριν από τον κανόνα που επιτρέπει την πρόσβαση σε όλους.
Επιτρέποντας Πρόσβαση σε Ένα Συγκεκριμένο Μέλος μιας Απορριπτόμενης Ομάδας
Ας πούμε ότι ο Μπομπ, ο διευθυντής μάρκετινγκ, χρειάζεται πρόσβαση στον φάκελο Κόστος, αν και η ομάδα μάρκετινγκ γενικά δεν θα έπρεπε να έχει πρόσβαση. Μπορούμε να προσθέσουμε έναν συγκεκριμένο κανόνα (ACE) για τον Μπομπ που του παραχωρεί πρόσβαση, και να τον τοποθετήσουμε πριν από τον κανόνα που απορρίπτει την πρόσβαση στην ομάδα μάρκετινγκ. Με αυτόν τον τρόπο, ο Μπομπ αποκτά πρόσβαση παρά τον γενικό περιορισμό στην ομάδα του.
Κατανόηση των Εισόδων Ελέγχου Πρόσβασης
Τα ACEs είναι οι ατομικοί κανόνες σε μια ACL. Προσδιορίζουν χρήστες ή ομάδες, καθορίζουν ποια πρόσβαση επιτρέπεται ή απορρίπτεται, και προσδιορίζουν πώς εφαρμόζονται αυτοί οι κανόνες σε υπο-αντικείμενα (κληρονομιά). Υπάρχουν δύο κύριοι τύποι ACEs:
- Γενικά ACEs: Αυτά εφαρμόζονται ευρέως, επηρεάζοντας είτε όλους τους τύπους αντικειμένων είτε διακρίνοντας μόνο μεταξύ κοντέινερ (όπως φάκελοι) και μη κοντέινερ (όπως αρχεία). Για παράδειγμα, ένας κανόνας που επιτρέπει στους χρήστες να βλέπουν το περιεχόμενο ενός φακέλου αλλά όχι να έχουν πρόσβαση στα αρχεία μέσα σε αυτόν.
- Ειδικά ACEs Αντικειμένων: Αυτά παρέχουν πιο ακριβή έλεγχο, επιτρέποντας να ρυθμιστούν κανόνες για συγκεκριμένους τύπους αντικειμένων ή ακόμη και για μεμονωμένες ιδιότητες εντός ενός αντικειμένου. Για παράδειγμα, σε έναν κατάλογο χρηστών, ένας κανόνας μπορεί να επιτρέπει σε έναν χρήστη να ενημερώνει τον αριθμό τηλεφώνου του αλλά όχι τις ώρες σύνδεσης.
Κάθε ACE περιέχει σημαντικές πληροφορίες όπως ποιος ισχύει ο κανόνας (χρησιμοποιώντας ένα Αναγνωριστικό Ασφαλείας ή SID), τι επιτρέπει ή απορρίπτει ο κανόνας (χρησιμοποιώντας μια μάσκα πρόσβασης), και πώς κληρονομείται από άλλα αντικείμενα.
Κύριες Διαφορές Μεταξύ Τύπων ACE
- Γενικά ACEs είναι κατάλληλα για απλές καταστάσεις ελέγχου πρόσβασης, όπου ο ίδιος κανόνας ισχύει για όλες τις πτυχές ενός αντικειμένου ή για όλα τα αντικείμενα εντός ενός κοντέινερ.
- Ειδικά ACEs Αντικειμένων χρησιμοποιούνται για πιο σύνθετες καταστάσεις, ειδικά σε περιβάλλοντα όπως το Active Directory, όπου μπορεί να χρειαστεί να ελέγξετε την πρόσβαση σε συγκεκριμένες ιδιότητες ενός αντικειμένου διαφορετικά.
Συνοψίζοντας, οι ACLs και ACEs βοηθούν στον καθορισμό ακριβών ελέγχων πρόσβασης, διασφαλίζοντας ότι μόνο τα σωστά άτομα ή ομάδες έχουν πρόσβαση σε ευαίσθητες πληροφορίες ή πόρους, με τη δυνατότητα προσαρμογής των δικαιωμάτων πρόσβασης μέχρι το επίπεδο μεμονωμένων ιδιοτήτων ή τύπων αντικειμένων.
Διάταξη Εισόδου Ελέγχου Πρόσβασης
Πεδίο ACE | Περιγραφή |
---|---|
Τύπος | Σημείο που υποδεικνύει τον τύπο ACE. Τα Windows 2000 και Windows Server 2003 υποστηρίζουν έξι τύπους ACE: Τρεις γενικούς τύπους ACE που συνδέονται με όλα τα ασφαλίσιμα αντικείμενα. Τρεις ειδικούς τύπους ACE αντικειμένων που μπορούν να συμβούν για αντικείμενα Active Directory. |
Σημεία | Σύνολο σημείων bit που ελέγχουν την κληρονομιά και την παρακολούθηση. |
Μέγεθος | Αριθμός byte μνήμης που έχει κατανεμηθεί για το ACE. |
Μάσκα πρόσβασης | 32-bit τιμή των bits που αντιστοιχούν στα δικαιώματα πρόσβασης για το αντικείμενο. Τα bits μπορούν να είναι είτε ενεργοποιημένα είτε απενεργοποιημένα, αλλά η σημασία της ρύθμισης εξαρτάται από τον τύπο ACE. Για παράδειγμα, αν το bit που αντιστοιχεί στο δικαίωμα ανάγνωσης δικαιωμάτων είναι ενεργοποιημένο, και ο τύπος ACE είναι Απορρίπτεται, η ACE απορρίπτει το δικαίωμα να διαβάσει τα δικαιώματα του αντικειμένου. Αν το ίδιο bit είναι ενεργοποιημένο αλλά ο τύπος ACE είναι Επιτρέπεται, η ACE παραχωρεί το δικαίωμα να διαβάσει τα δικαιώματα του αντικειμένου. Περισσότερες λεπτομέρειες της μάσκας πρόσβασης εμφανίζονται στον επόμενο πίνακα. |
SID | Προσδιορίζει έναν χρήστη ή μια ομάδα της οποίας η πρόσβαση ελέγχεται ή παρακολουθείται από αυτή την ACE. |
Διάταξη Μάσκας Πρόσβασης
Bit (Εύρος) | Σημασία | Περιγραφή/Παράδειγμα |
---|---|---|
0 - 15 | Δικαιώματα Πρόσβασης Ειδικού Αντικειμένου | Ανάγνωση δεδομένων, Εκτέλεση, Προσθήκη δεδομένων |
16 - 22 | Τυπικά Δικαιώματα Πρόσβασης | Διαγραφή, Γράψιμο ACL, Γράψιμο Ιδιοκτήτη |
23 | Μπορεί να έχει πρόσβαση στο ACL ασφαλείας | |
24 - 27 | Κρατημένα | |
28 | Γενικά ΟΛΑ (Ανάγνωση, Γράψιμο, Εκτέλεση) | Όλα τα παρακάτω |
29 | Γενική Εκτέλεση | Όλα τα πράγματα που είναι απαραίτητα για την εκτέλεση ενός προγράμματος |
30 | Γενική Γράψιμο | Όλα τα πράγματα που είναι απαραίτητα για να γράψετε σε ένα αρχείο |
31 | Γενική Ανάγνωση | Όλα τα πράγματα που είναι απαραίτητα για να διαβάσετε ένα αρχείο |
Αναφορές
- https://www.ntfs.com/ntfs-permissions-acl-use.htm
- https://secureidentity.se/acl-dacl-sacl-and-the-ace/
- https://www.coopware.in2.info/_ntfsacl_ht.htm
{% hint style="success" %}
Μάθετε και εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε και εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας με τη βοήθεια των πιο προηγμένων εργαλείων της κοινότητας.
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=acls-dacls-sacls-aces" %}