macOS Keychain

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

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

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

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

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


Κύρια Keychains

  • Το Keychain του Χρήστη (~/Library/Keychains/login.keycahin-db), το οποίο χρησιμοποιείται για την αποθήκευση συγκεκριμένων διαπιστευτηρίων χρήστη όπως κωδικοί εφαρμογών, κωδικοί internet, πιστοποιητικά που δημιουργήθηκαν από τον χρήστη, κωδικοί δικτύου και δημιουργημένα δημόσια/ιδιωτικά κλειδιά χρήστη.

  • Το Keychain του Συστήματος (/Library/Keychains/System.keychain), το οποίο αποθηκεύει διαπιστευτήρια που ισχύουν για ολόκληρο το σύστημα όπως κωδικοί WiFi, πιστοποιητικά ρίζας συστήματος, ιδιωτικά κλειδιά συστήματος και κωδικοί εφαρμογών συστήματος.

Πρόσβαση στο Keychain Κωδικών

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

Προστασίες Καταχωρήσεων Keychain

ACLs

Κάθε καταχώρηση στο keychain διέπεται από Λίστες Ελέγχου Πρόσβασης (ACLs) που καθορίζουν ποιος μπορεί να εκτελέσει διάφορες ενέργειες στην καταχώρηση του keychain, συμπεριλαμβανομένων:

  • ACLAuhtorizationExportClear: Επιτρέπει στον κάτοχο να λάβει το καθαρό κείμενο του μυστικού.

  • ACLAuhtorizationExportWrapped: Επιτρέπει στον κάτοχο να λάβει το καθαρό κείμενο κρυπτογραφημένο με έναν άλλο καθορισμένο κωδικό.

  • ACLAuhtorizationAny: Επιτρέπει στον κάτοχο να εκτελέσει οποιαδήποτε ενέργεια.

Οι ACLs συνοδεύονται επίσης από μια λίστα αξιόπιστων εφαρμογών που μπορούν να εκτελέσουν αυτές τις ενέργειες χωρίς προτροπή. Αυτό μπορεί να είναι:

  • Nil (δεν απαιτείται άδεια, όλοι είναι αξιόπιστοι)

  • Μια κενή λίστα (κανείς δεν είναι αξιόπιστος)

  • Λίστα συγκεκριμένων εφαρμογών.

Επίσης, η καταχώρηση μπορεί να περιέχει το κλειδί ACLAuthorizationPartitionID, το οποίο χρησιμοποιείται για την ταυτοποίηση του teamid, apple, και cdhash.

  • Εάν το teamid είναι καθορισμένο, τότε για να έχει πρόσβαση στην τιμή της καταχώρησης χωρίς προτροπή η χρησιμοποιούμενη εφαρμογή πρέπει να έχει το ίδιο teamid.

  • Εάν το apple είναι καθορισμένο, τότε η εφαρμογή πρέπει να είναι υπογεγραμμένη από την Apple.

  • Εάν το cdhash είναι υποδειγμένο, τότε η εφαρμογή πρέπει να έχει το συγκεκριμένο cdhash.

Δημιουργία Καταχώρησης Keychain

Όταν δημιουργείται μια νέα καταχώρηση χρησιμοποιώντας το Keychain Access.app, ισχύουν οι ακόλουθοι κανόνες:

  • Όλες οι εφαρμογές μπορούν να κρυπτογραφήσουν.

  • Καμία εφαρμογή δεν μπορεί να εξάγει/αποκρυπτογραφήσει (χωρίς προτροπή του χρήστη).

  • Όλες οι εφαρμογές μπορούν να δουν τον έλεγχο ακεραιότητας.

  • Καμία εφαρμογή δεν μπορεί να αλλάξει τις ACLs.

  • Το partitionID ορίζεται σε apple.

Όταν μια εφαρμογή δημιουργεί μια καταχώρηση στο keychain, οι κανόνες είναι ελαφρώς διαφορετικοί:

  • Όλες οι εφαρμογές μπορούν να κρυπτογραφήσουν.

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

  • Όλες οι εφαρμογές μπορούν να δουν τον έλεγχο ακεραιότητας.

  • Καμία εφαρμογή δεν μπορεί να αλλάξει τις ACLs.

  • Το partitionID ορίζεται σε teamid:[teamID εδώ].

Πρόσβαση στο Keychain

security

# Dump all metadata and decrypted secrets (a lot of pop-ups)
security dump-keychain -a -d

# Find generic password for the "Slack" account and print the secrets
security find-generic-password -a "Slack" -g

# Change the specified entrys PartitionID entry
security set-generic-password-parition-list -s "test service" -a "test acount" -S

ΑΡΙ

Η απαρίθμηση κλειδιών και η εξαγωγή μυστικών που δεν θα προκαλέσει παράθυρο ειδοποίησης μπορεί να γίνει με το εργαλείο LockSmith

Καταχωρήστε και λάβετε πληροφορίες για κάθε καταχώρηση κλειδιού:

  • Η ΑΡΙ SecItemCopyMatching δίνει πληροφορίες για κάθε καταχώρηση και υπάρχουν ορισμένα χαρακτηριστικά που μπορείτε να ορίσετε κατά τη χρήση του:

  • kSecReturnData: Εάν είναι true, θα προσπαθήσει να αποκρυπτογραφήσει τα δεδομένα (ορίστε το false για να αποφύγετε πιθανά αναδυόμενα παράθυρα)

  • kSecReturnRef: Λάβετε επίσης αναφορά στο στοιχείο του keychain (ορίστε το true σε περίπτωση που αργότερα δείτε ότι μπορείτε να αποκρυπτογραφήσετε χωρίς παράθυρο ειδοποίησης)

  • kSecReturnAttributes: Λάβετε μεταδεδομένα σχετικά με τις καταχωρήσεις

  • kSecMatchLimit: Πόσα αποτελέσματα να επιστραφούν

  • kSecClass: Τι είδος καταχώρησης keychain

Λάβετε τα ACLs κάθε καταχώρησης:

  • Με την ΑΡΙ SecAccessCopyACLList μπορείτε να λάβετε το ACL για το στοιχείο του keychain, και θα επιστρέψει μια λίστα με ACLs (όπως ACLAuhtorizationExportClear και τα άλλα προαναφερθέντα) όπου κάθε λίστα έχει:

  • Περιγραφή

  • Λίστα Εμπιστευμένων Εφαρμογών. Αυτό μπορεί να είναι:

  • Μια εφαρμογή: /Applications/Slack.app

  • Ένα δυαδικό αρχείο: /usr/libexec/airportd

  • Μια ομάδα: group://AirPort

Εξαγωγή δεδομένων:

  • Η ΑΡΙ SecKeychainItemCopyContent λαμβάνει το κείμενο

  • Η ΑΡΙ SecItemExport εξάγει τα κλειδιά και τα πιστοποιητικά αλλά μπορεί να χρειαστεί να ορίσετε κωδικούς πρόσβασης για να εξάγετε το περιεχόμενο κρυπτογραφημένο

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

  • Εάν υπάρχουν 1+ εμπιστευμένες εφαρμογές στη λίστα:

  • Χρειάζεστε τις κατάλληλες εξουσιοδοτήσεις (Nil, ή να είστε μέρος της επιτρεπόμενης λίστας εφαρμογών στην εξουσιοδότηση για πρόσβαση στις μυστικές πληροφορίες)

  • Χρειάζεστε ταιριαστή υπογραφή κώδικα με το PartitionID

  • Χρειάζεστε ταιριαστή υπογραφή κώδικα με αυτήν μιας εμπιστευμένης εφαρμογής (ή να είστε μέλος της σωστής ομάδας KeychainAccessGroup)

  • Εάν εμπιστεύονται όλες οι εφαρμογές:

  • Χρειάζεστε τις κατάλληλες εξουσιοδοτήσεις

  • Χρειάζεστε ταιριαστή υπογραφή κώδικα με το PartitionID

  • Εάν δεν υπάρχει PartitionID, τότε αυτό δεν είναι απαραίτητο

Συνεπώς, εάν υπάρχει 1 εφαρμογή στη λίστα, χρειάζεται να ενθαρρύνετε κώδικα σε αυτήν την εφαρμογή.

Εάν το apple είναι υποδειγμένο στο partitionID, μπορείτε να έχετε πρόσβαση με το osascript σε οτιδήποτε εμπιστεύεται όλες τις εφαρμογές με το apple στο partitionID. Το Python μπορεί επίσης να χρησιμοποιηθεί γι' αυτό.

Δύο επιπλέον χαρακτηριστικά

  • Αόρατο: Είναι ένα λογικό σήμα για να κρύψετε την καταχώρηση από την εφαρμογή UI Keychain

  • Γενικό: Χρησιμοποιείται για την αποθήκευση μεταδεδομένων (άρα ΔΕΝ ΕΙΝΑΙ ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΟ)

  • Η Microsoft αποθήκευε σε καθαρό κείμενο όλα τα ανανεωμένα τοκεν για πρόσβαση σε ευαίσθητα σημεία.

Αναφορές

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

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

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

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

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

Last updated