16 KiB
Ελεγκτική δοκιμή FreeIPA
Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF Ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Βασικές Πληροφορίες
Το FreeIPA είναι μια ανοιχτού κώδικα εναλλακτική λύση για το Microsoft Windows Active Directory, κυρίως για περιβάλλοντα Unix. Συνδυάζει έναν πλήρη κατάλογο LDAP με ένα κέντρο διανομής κλειδιών MIT Kerberos για τη διαχείριση παρόμοια με το Active Directory. Χρησιμοποιώντας το Dogtag Certificate System για τη διαχείριση πιστοποιητικών CA & RA, υποστηρίζει την πολυπαραγοντική πιστοποίηση, συμπεριλαμβανομένων των έξυπνων καρτών. Το SSSD είναι ενσωματωμένο για τις διαδικασίες πιστοποίησης Unix.
Δακτυλικά αποτυπώματα
Αρχεία & Μεταβλητές Περιβάλλοντος
- Το αρχείο στη διαδρομή
/etc/krb5.conf
είναι όπου αποθηκεύονται οι πληροφορίες του πελάτη Kerberos, που είναι απαραίτητες για την εγγραφή στον τομέα. Αυτό περιλαμβάνει τις τοποθεσίες των KDCs και των διακομιστών διαχείρισης, τις προεπιλεγμένες ρυθμίσεις και τις αντιστοιχίσεις. - Οι προεπιλεγμένες ρυθμίσεις για τους πελάτες και τους διακομιστές IPA ορίζονται στο αρχείο που βρίσκεται στη διαδρομή
/etc/ipa/default.conf
. - Οι κόμβοι εντός του τομέα πρέπει να έχουν ένα αρχείο
krb5.keytab
στη διαδρομή/etc/krb5.keytab
για τις διαδικασίες πιστοποίησης. - Διάφορες μεταβλητές περιβάλλοντος (
KRB5CCNAME
,KRB5_KTNAME
,KRB5_CONFIG
,KRB5_KDC_PROFILE
,KRB5RCACHETYPE
,KRB5RCACHEDIR
,KRB5_TRACE
,KRB5_CLIENT_KTNAME
,KPROP_PORT
) χρησιμοποιούνται για να δείχνουν συγκεκριμένα αρχεία και ρυθμίσεις που σχετίζονται με την πιστοποίηση Kerberos.
Δυαδικά Αρχεία
Εργαλεία όπως το ipa
, kdestroy
, kinit
, klist
, kpasswd
, ksu
, kswitch
και kvno
είναι κεντρικά για τη διαχείριση των τομέων FreeIPA, την χειρισμό των εισιτηρίων Kerberos, την αλλαγή κωδικών πρόσβασης και την απόκτηση εισιτηρίων υπηρεσιών, μεταξύ άλλων λειτουργιών.
Δίκτυο
Παρέχεται μια εικόνα για να απεικονίσει μια τυπική εγκατάσταση διακομιστή FreeIPA.
Πιστοποίηση
Η πιστοποίηση στο FreeIPA, εκμεταλλευόμενη το Kerberos, αντικατοπτρίζει αυτήν στο Active Directory. Η πρόσβαση σε πόρους του τομέα απαιτεί ένα έγκυρο εισιτήριο Kerberos, το οποίο μπορεί να αποθηκευτεί σε διάφορες τοποθεσίες ανάλογα με τη διαμόρφωση του τομέα FreeIPA.
Αρχεία CCACHE Ticket
Τα αρχεία CCACHE, που αποθηκεύονται συνήθως στο /tmp
με δικαιώματα 600, είναι δυαδικά μορφότυπα για την αποθήκευση διαπιστευτηρίων Kerberos, σημαντικά για την πιστοποίηση χωρίς τον καθαρό κείμενο κωδικό πρόσβασης του χρήστη λόγω της φορητότητάς τους. Η ανάλυση ενός εισιτηρίου CCACHE μπορεί να γίνει χρησιμοποιώντας την εντολή klist
, και η επαναχρησιμοποίηση ενός έγκυρου εισιτηρίου CCACHE περιλαμβάνει την εξαγωγή του KRB5CCNAME
στη διαδρομή του αρχείου εισιτηρίου.
Κλειδαριά Unix
Εναλλακτικά, τα εισιτήρια CCACHE μπορούν να αποθηκευτούν στο Linux keyring, προσφέρον
ldapsearch -x
Για να λάβετε περισσότερες πληροφορίες, πρέπει να χρησιμοποιήσετε μια επαληθευμένη συνεδρία (ελέγξτε την ενότητα Επαλήθευση για να μάθετε πώς να προετοιμάσετε μια επαληθευμένη συνεδρία).
# Get all users of domain
ldapsearch -Y gssapi -b "cn=users,cn=compat,dc=domain_name,dc=local"
# Get users groups
ldapsearch -Y gssapi -b "cn=groups,cn=accounts,dc=domain_name,dc=local"
# Get all the hosts
ldapsearch -Y gssapi -b "cn=computers,cn=accounts,dc=domain_name,dc=local"
# Get hosts groups
ldapsearch -Y gssapi -b "cn=hostgroups,cn=accounts,dc=domain_name,dc=local"
Από ένα μηχάνημα που έχει ενταχθεί στον τομέα, θα μπορείτε να χρησιμοποιήσετε τα εγκατεστημένα δυαδικά αρχεία για να απαριθμήσετε τον τομέα:
ipa user-find
ipa usergroup-find
ipa host-find
ipa host-group-find
-------------------
ipa user-show <username> --all
ipa usergroup-show <user group> --all
ipa host-find <host> --all
ipa hostgroup-show <host group> --all
{% hint style="info" %} Ο χρήστης admin του FreeIPA είναι ισοδύναμος με τους domain admins από το AD. {% endhint %}
Hashes
Ο χρήστης root από τον διακομιστή IPA έχει πρόσβαση στις κατακερματισμένες κωδικοποιήσεις.
- Ο κατακερματισμένος κωδικός ενός χρήστη αποθηκεύεται ως base64 στο χαρακτηριστικό "userPassword". Αυτός ο κατακερματισμένος κωδικός μπορεί να είναι SSHA512 (παλιές εκδόσεις του FreeIPA) ή PBKDF2_SHA256.
- Το Nthash του κωδικού αποθηκεύεται ως base64 στο "ipaNTHash" αν το σύστημα έχει ενσωμάτωση με το AD.
Για να αποκρυπτογραφήσετε αυτές τις κατακερματισμένες κωδικοποιήσεις:
• Εάν το freeIPA έχει ενσωμάτωση με το AD, το ipaNTHash είναι εύκολο να αποκρυπτογραφηθεί: Θα πρέπει να αποκωδικοποιήσετε το base64 -> να το ξανακωδικοποιήσετε ως ASCII hex -> Ο John The Ripper ή το hashcat μπορούν να σας βοηθήσουν να το αποκρυπτογραφήσετε γρήγορα
• Εάν χρησιμοποιείται μια παλιά έκδοση του FreeIPA, τότε χρησιμοποιείται το SSHA512: Θα πρέπει να αποκωδικοποιήσετε το base64 -> να βρείτε το SSHA512 hash -> Ο John The Ripper ή το hashcat μπορούν να σας βοηθήσουν να το αποκρυπτογραφήσετε
• Εάν χρησιμοποιείται νέα έκδοση του FreeIPA, τότε χρησιμοποιείται το PBKDF2_SHA256: Θα πρέπει να αποκωδικοποιήσετε το base64 -> να βρείτε το PBKDF2_SHA256 -> το μήκος του είναι 256 byte. Ο John μπορεί να λειτουργήσει με 256 bits (32 byte) -> Το SHA-265 χρησιμοποιείται ως η ψευδο-τυχαία συνάρτηση, το μέγεθος του μπλοκ είναι 32 byte -> μπορείτε να χρησιμοποιήσετε μόνο τα πρώτα 256 bit του κατακερματισμένου PBKDF2_SHA256 -> Ο John The Ripper ή το hashcat μπορούν να σας βοηθήσουν να το αποκρυπτογραφήσετε
Για να εξαγάγετε τις κατακερματισμένες κωδικοποιήσεις, πρέπει να είστε root στον διακομιστή FreeIPA, εκεί μπορείτε να χρησιμοποιήσετε το εργαλείο dbscan
για να τις εξαγάγετε:
Κανόνες HBAC
Αυτοί είναι οι κανόνες που χορηγούν συγκεκριμένα δικαιώματα σε χρήστες ή οικοδεσπότες για πόρους (οικοδεσπότες, υπηρεσίες, ομάδες υπηρεσιών...)
# Enumerate using ldap
ldapsearch -Y gssapi -b "cn=hbac,dc=domain_name,dc=local"
# Using ipa
ipa hbacrule-find
# Show info of rule
ipa hbacrule-show <hbacrule> --all
Κανόνες Sudo
Το FreeIPA επιτρέπει τον κεντρικό έλεγχο των δικαιωμάτων sudo μέσω των κανόνων sudo. Αυτοί οι κανόνες επιτρέπουν ή περιορίζουν την εκτέλεση εντολών με το sudo σε υπολογιστές εντός του τομέα. Ένας επιτιθέμενος θα μπορούσε ενδεχομένως να εντοπίσει τους σχετικούς υπολογιστές, χρήστες και επιτρεπόμενες εντολές εξετάζοντας αυτούς τους κανόνες.
# Enumerate using ldap
ldapsearch -Y gssapi -b "cn=sudorules,cn=sudo,dc=domain_name,dc=local"
# Using ipa
ipa sudorule-find
# Show info of rule
ipa sudorule-show <sudorule> --all
Έλεγχος Πρόσβασης με Βάση τον Ρόλο
Ένας ρόλος αποτελείται από διάφορα προνόμια, τα οποία περιλαμβάνουν μια συλλογή από δικαιώματα. Αυτοί οι ρόλοι μπορούν να ανατεθούν σε Χρήστες, Ομάδες Χρηστών, Υπολογιστές, Ομάδες Υπολογιστών και Υπηρεσίες. Για παράδειγμα, ας θεωρήσουμε τον προεπιλεγμένο ρόλο "Διαχειριστής Χρηστών" στο FreeIPA για να εξηγήσουμε αυτήν τη δομή.
Ο ρόλος Διαχειριστής Χρηστών
έχει τα εξής προνόμια:
- Διαχειριστές Χρηστών
- Διαχειριστές Ομάδων
- Διαχειριστές Σκηνικών Χρηστών
Με τις παρακάτω εντολές είναι δυνατό να απαριθμήσετε τους ρόλους, τα προνόμια και τα δικαιώματα:
# Using ldap
ldapsearch -Y gssapi -b "cn=roles,cn=accounts,dc=westeros,dc=local"
# Using ipa binary
ipa role-find
ipa role-show <role> --all
ipa privilege-find
ipa privilege-show <privilege> --all
ipa permission-find
ipa permission-show <permission> --all
Παράδειγμα Σεναρίου Επίθεσης
Στο https://posts.specterops.io/attacking-freeipa-part-iii-finding-a-path-677405b5b95e μπορείτε να βρείτε ένα απλό παράδειγμα πώς να καταχραστείτε ορισμένες άδειες για να διακινδυνεύσετε τον τομέα.
Linikatz/LinikatzV2
Ανύψωση Προνομίων
Δημιουργία χρήστη root
{% hint style="warning" %}
Εάν μπορείτε να δημιουργήσετε ένα νέο χρήστη με το όνομα root
, μπορείτε να προσποιηθείτε ως αυτόν και θα μπορείτε να συνδεθείτε μέσω SSH σε οποιονδήποτε υπολογιστή ως root.
ΑΥΤΟ ΈΧΕΙ ΔΙΟΡΘΩΘΕΊ. {% endhint %}
Μπορείτε να ελέγξετε μια λεπτομερή εξήγηση στο https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
Αναφορές
- https://posts.specterops.io/attacking-freeipa-part-iv-cve-2020-10747-7c373a1bf66b
- https://posts.specterops.io/attacking-freeipa-part-i-authentication-77e73d837d6a
- https://posts.specterops.io/attacking-freeipa-part-ii-enumeration-ad27224371e1
- https://www.youtube.com/watch?v=9dOu-7BTwPQ
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.