Windows Security Controls
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F916570657-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fr3Cb8nKOYrlGZdSyjbAy%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=9fbb29e6&sv=1)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
AppLocker Policy
Μια λίστα λευκών εφαρμογών είναι μια λίστα εγκεκριμένων λογισμικών εφαρμογών ή εκτελέσιμων που επιτρέπεται να είναι παρόντα και να εκτελούνται σε ένα σύστημα. Ο στόχος είναι να προστατευθεί το περιβάλλον από κακόβουλο λογισμικό και μη εγκεκριμένο λογισμικό που δεν ευθυγραμμίζεται με τις συγκεκριμένες επιχειρηματικές ανάγκες ενός οργανισμού.
AppLocker είναι η λύση λευκής λίστας εφαρμογών της Microsoft και δίνει στους διαχειριστές συστημάτων έλεγχο πάνω σε ποια εφαρμογές και αρχεία μπορούν να εκτελούν οι χρήστες. Παρέχει λεπτομερή έλεγχο πάνω σε εκτελέσιμα, σενάρια, αρχεία εγκατάστασης Windows, DLLs, συσκευασμένες εφαρμογές και εγκαταστάτες συσκευασμένων εφαρμογών. Είναι κοινό για τους οργανισμούς να μπλοκάρουν το cmd.exe και το PowerShell.exe και την εγγραφή πρόσβασης σε ορισμένους καταλόγους, αλλά όλα αυτά μπορούν να παρακαμφθούν.
Check
Check which files/extensions are blacklisted/whitelisted:
Αυτή η διαδρομή μητρώου περιέχει τις ρυθμίσεις και τις πολιτικές που εφαρμόζονται από το AppLocker, παρέχοντας έναν τρόπο να αναθεωρήσετε το τρέχον σύνολο κανόνων που επιβάλλονται στο σύστημα:
HKLM\Software\Policies\Microsoft\Windows\SrpV2
Παράκαμψη
Χρήσιμες Εγγράψιμες φακέλους για να παρακάμψετε την Πολιτική του AppLocker: Εάν το AppLocker επιτρέπει την εκτέλεση οτιδήποτε μέσα στο
C:\Windows\System32
ήC:\Windows
, υπάρχουν εγγράψιμοι φάκελοι που μπορείτε να χρησιμοποιήσετε για να παρακάμψετε αυτό.
Συνήθως έμπιστοι "LOLBAS's" δυαδικοί κώδικες μπορούν επίσης να είναι χρήσιμοι για να παρακαμφθεί το AppLocker.
Κακώς γραμμένοι κανόνες θα μπορούσαν επίσης να παρακαμφθούν
Για παράδειγμα,
<FilePathCondition Path="%OSDRIVE%*\allowed*"/>
, μπορείτε να δημιουργήσετε έναν φάκελο με όνομαallowed
οπουδήποτε και θα επιτραπεί.Οι οργανισμοί συχνά επικεντρώνονται στο να μπλοκάρουν το εκτελέσιμο
%System32%\WindowsPowerShell\v1.0\powershell.exe
, αλλά ξεχνούν τις άλλες τοποθεσίες εκτελέσιμων PowerShell όπως το%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
ή τοPowerShell_ISE.exe
.Η επιβολή DLL σπάνια είναι ενεργοποιημένη λόγω του επιπλέον φορτίου που μπορεί να επιφέρει σε ένα σύστημα, και της ποσότητας δοκιμών που απαιτούνται για να διασφαλιστεί ότι τίποτα δεν θα σπάσει. Έτσι, η χρήση DLLs ως πίσω πόρτες θα βοηθήσει στην παράκαμψη του AppLocker.
Μπορείτε να χρησιμοποιήσετε ReflectivePick ή SharpPick για να εκτελέσετε κώδικα Powershell σε οποιαδήποτε διαδικασία και να παρακάμψετε το AppLocker. Για περισσότερες πληροφορίες δείτε: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
Αποθήκευση Διαπιστευτηρίων
Διαχειριστής Ασφαλείας Λογαριασμών (SAM)
Τα τοπικά διαπιστευτήρια είναι παρόντα σε αυτό το αρχείο, οι κωδικοί πρόσβασης είναι κατακερματισμένοι.
Τοπική Αρχή Ασφαλείας (LSA) - LSASS
Τα διαπιστευτήρια (κατακερματισμένα) είναι αποθηκευμένα στη μνήμη αυτού του υποσυστήματος για λόγους Ενιαίας Σύνδεσης. Η LSA διαχειρίζεται την τοπική πολιτική ασφαλείας (πολιτική κωδικών πρόσβασης, δικαιώματα χρηστών...), αυθεντικοποίηση, tokens πρόσβασης... Η LSA θα είναι αυτή που θα ελέγξει τα παρεχόμενα διαπιστευτήρια μέσα στο SAM αρχείο (για τοπική σύνδεση) και θα μιλήσει με τον ελεγκτή τομέα για να αυθεντικοποιήσει έναν χρήστη τομέα.
Τα διαπιστευτήρια είναι αποθηκευμένα μέσα στη διαδικασία LSASS: εισιτήρια Kerberos, κατακερματισμοί NT και LM, εύκολα αποκρυπτογραφημένοι κωδικοί πρόσβασης.
Μυστικά LSA
Η LSA θα μπορούσε να αποθηκεύσει στο δίσκο κάποια διαπιστευτήρια:
Κωδικός πρόσβασης του λογαριασμού υπολογιστή του Active Directory (μη προσβάσιμος ελεγκτής τομέα).
Κωδικοί πρόσβασης των λογαριασμών υπηρεσιών Windows
Κωδικοί πρόσβασης για προγραμματισμένα καθήκοντα
Περισσότερα (κωδικός πρόσβασης εφαρμογών IIS...)
NTDS.dit
Είναι η βάση δεδομένων του Active Directory. Είναι παρούσα μόνο στους Ελεγκτές Τομέα.
Defender
Microsoft Defender είναι ένα Antivirus που είναι διαθέσιμο στα Windows 10 και Windows 11, και σε εκδόσεις του Windows Server. Μπλοκάρει κοινά εργαλεία pentesting όπως το WinPEAS
. Ωστόσο, υπάρχουν τρόποι για να παρακαμφθούν αυτές οι προστασίες.
Έλεγχος
Για να ελέγξετε την κατάσταση του Defender μπορείτε να εκτελέσετε την PS cmdlet Get-MpComputerStatus
(ελέγξτε την τιμή του RealTimeProtectionEnabled
για να ξέρετε αν είναι ενεργό):
Για να το απαριθμήσετε μπορείτε επίσης να εκτελέσετε:
Encrypted File System (EFS)
EFS secures files through encryption, utilizing a symmetric key known as the File Encryption Key (FEK). This key is encrypted with the user's public key and stored within the encrypted file's $EFS alternative data stream. When decryption is needed, the corresponding private key of the user's digital certificate is used to decrypt the FEK from the $EFS stream. More details can be found here.
Σενάρια αποκρυπτογράφησης χωρίς πρωτοβουλία του χρήστη περιλαμβάνουν:
Όταν αρχεία ή φάκελοι μετακινούνται σε ένα μη EFS σύστημα αρχείων, όπως το FAT32, αποκρυπτογραφούνται αυτόματα.
Τα κρυπτογραφημένα αρχεία που αποστέλλονται μέσω του δικτύου μέσω του πρωτοκόλλου SMB/CIFS αποκρυπτογραφούνται πριν από τη μετάδοση.
Αυτή η μέθοδος κρυπτογράφησης επιτρέπει διαφανή πρόσβαση σε κρυπτογραφημένα αρχεία για τον κάτοχο. Ωστόσο, απλώς αλλάζοντας τον κωδικό πρόσβασης του κατόχου και συνδεόμενος δεν θα επιτρέψει την αποκρυπτογράφηση.
Κύρια σημεία:
EFS χρησιμοποιεί ένα συμμετρικό FEK, κρυπτογραφημένο με το δημόσιο κλειδί του χρήστη.
Η αποκρυπτογράφηση χρησιμοποιεί το ιδιωτικό κλειδί του χρήστη για να αποκτήσει πρόσβαση στο FEK.
Αυτόματη αποκρυπτογράφηση συμβαίνει υπό συγκεκριμένες συνθήκες, όπως η αντιγραφή σε FAT32 ή η μετάδοση μέσω δικτύου.
Τα κρυπτογραφημένα αρχεία είναι προσβάσιμα στον κάτοχο χωρίς επιπλέον βήματα.
Έλεγχος πληροφοριών EFS
Ελέγξτε αν ένας χρήστης έχει χρησιμοποιήσει αυτή την υπηρεσία ελέγχοντας αν υπάρχει αυτή η διαδρομή:C:\users\<username>\appdata\roaming\Microsoft\Protect
Ελέγξτε ποιος έχει πρόσβαση στο αρχείο χρησιμοποιώντας cipher /c <file>
Μπορείτε επίσης να χρησιμοποιήσετε cipher /e
και cipher /d
μέσα σε έναν φάκελο για να κρυπτογραφήσετε και να αποκρυπτογραφήσετε όλα τα αρχεία
Αποκρυπτογράφηση αρχείων EFS
Όντας Authority System
Αυτή η μέθοδος απαιτεί ο θύμα χρήστης να είναι ενεργοποιημένος σε μια διαδικασία μέσα στον υπολογιστή. Αν αυτό ισχύει, χρησιμοποιώντας μια συνεδρία meterpreter
μπορείτε να προσποιηθείτε το διακριτικό της διαδικασίας του χρήστη (impersonate_token
από incognito
). Ή μπορείτε απλώς να migrate
στη διαδικασία του χρήστη.
Γνωρίζοντας τον κωδικό πρόσβασης του χρήστη
Group Managed Service Accounts (gMSA)
Η Microsoft ανέπτυξε Group Managed Service Accounts (gMSA) για να απλοποιήσει τη διαχείριση των λογαριασμών υπηρεσιών στις υποδομές IT. Σε αντίθεση με τους παραδοσιακούς λογαριασμούς υπηρεσιών που συχνά έχουν ενεργοποιημένη την ρύθμιση "Ο κωδικός πρόσβασης δεν λήγει ποτέ", οι gMSA προσφέρουν μια πιο ασφαλή και διαχειρίσιμη λύση:
Αυτόματη Διαχείριση Κωδικών Πρόσβασης: Οι gMSA χρησιμοποιούν έναν πολύπλοκο, 240-χαρακτήρων κωδικό πρόσβασης που αλλάζει αυτόματα σύμφωνα με την πολιτική τομέα ή υπολογιστή. Αυτή η διαδικασία διαχειρίζεται από την Υπηρεσία Κατανομής Κλειδιών της Microsoft (KDC), εξαλείφοντας την ανάγκη για χειροκίνητες ενημερώσεις κωδικών πρόσβασης.
Ενισχυμένη Ασφάλεια: Αυτοί οι λογαριασμοί είναι ανθεκτικοί σε κλειδώματα και δεν μπορούν να χρησιμοποιηθούν για διαδραστικές συνδέσεις, ενισχύοντας την ασφάλειά τους.
Υποστήριξη Πολλών Υπολογιστών: Οι gMSA μπορούν να μοιράζονται σε πολλούς υπολογιστές, καθιστώντας τους ιδανικούς για υπηρεσίες που εκτελούνται σε πολλούς διακομιστές.
Δυνατότητα Προγραμματισμένων Εργασιών: Σε αντίθεση με τους διαχειριζόμενους λογαριασμούς υπηρεσιών, οι gMSA υποστηρίζουν την εκτέλεση προγραμματισμένων εργασιών.
Απλοποιημένη Διαχείριση SPN: Το σύστημα ενημερώνει αυτόματα το Service Principal Name (SPN) όταν υπάρχουν αλλαγές στα στοιχεία sAMaccount του υπολογιστή ή στο DNS όνομα, απλοποιώντας τη διαχείριση SPN.
Οι κωδικοί πρόσβασης για τις gMSA αποθηκεύονται στην ιδιότητα LDAP msDS-ManagedPassword και επαναρυθμίζονται αυτόματα κάθε 30 ημέρες από τους Domain Controllers (DCs). Αυτός ο κωδικός πρόσβασης, ένα κρυπτογραφημένο blob δεδομένων γνωστό ως MSDS-MANAGEDPASSWORD_BLOB, μπορεί να ανακτηθεί μόνο από εξουσιοδοτημένους διαχειριστές και τους διακομιστές στους οποίους είναι εγκατεστημένες οι gMSA, εξασφαλίζοντας ένα ασφαλές περιβάλλον. Για να αποκτήσετε πρόσβαση σε αυτές τις πληροφορίες, απαιτείται μια ασφαλής σύνδεση όπως το LDAPS ή η σύνδεση πρέπει να είναι αυθεντικοποιημένη με 'Sealing & Secure'.
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F916570657-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fr3Cb8nKOYrlGZdSyjbAy%252Fuploads%252Fgit-blob-c06c5907734650833e33f735365f6edfed9f9091%252Fasd1.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=524d6725&sv=1)
Μπορείτε να διαβάσετε αυτόν τον κωδικό πρόσβασης με GMSAPasswordReader:
Βρείτε περισσότερες πληροφορίες σε αυτή την ανάρτηση
Επίσης, ελέγξτε αυτή τη σελίδα σχετικά με το πώς να εκτελέσετε μια επίθεση NTLM relay για να διαβάσετε τον κωδικό πρόσβασης του gMSA.
LAPS
Η Λύση Κωδικού Πρόσβασης Τοπικού Διαχειριστή (LAPS), διαθέσιμη για λήψη από την Microsoft, επιτρέπει τη διαχείριση των τοπικών κωδικών πρόσβασης διαχειριστή. Αυτοί οι κωδικοί πρόσβασης, οι οποίοι είναι τυχαίοι, μοναδικοί και τακτικά αλλάζουν, αποθηκεύονται κεντρικά στο Active Directory. Η πρόσβαση σε αυτούς τους κωδικούς πρόσβασης περιορίζεται μέσω ACLs σε εξουσιοδοτημένους χρήστες. Με επαρκείς άδειες, παρέχεται η δυνατότητα ανάγνωσης των τοπικών κωδικών πρόσβασης διαχειριστή.
LAPSPS Constrained Language Mode
Το PowerShell Constrained Language Mode περιορίζει πολλές από τις δυνατότητες που απαιτούνται για τη σωστή χρήση του PowerShell, όπως το μπλοκάρισμα COM αντικειμένων, επιτρέποντας μόνο εγκεκριμένους τύπους .NET, ροές εργασίας βασισμένες σε XAML, κλάσεις PowerShell και άλλα.
Έλεγχος
Παράκαμψη
Στα τρέχοντα Windows, αυτή η παράκαμψη δεν θα λειτουργήσει, αλλά μπορείτε να χρησιμοποιήσετε PSByPassCLM.
Για να το μεταγλωττίσετε, μπορεί να χρειαστεί να Προσθέσετε μια Αναφορά -> Περιήγηση -> Περιήγηση -> προσθέστε C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll
και αλλάξτε το έργο σε .Net4.5.
Άμεση παράκαμψη:
Αντίστροφη κέλυφος:
Μπορείτε να χρησιμοποιήσετε το ReflectivePick ή το SharpPick για να εκτελέσετε κώδικα Powershell σε οποιαδήποτε διαδικασία και να παρακάμψετε τη περιορισμένη λειτουργία. Για περισσότερες πληροφορίες, ελέγξτε: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
Πολιτική Εκτέλεσης PS
Από προεπιλογή είναι ρυθμισμένη σε περιορισμένη. Κύριοι τρόποι για να παρακάμψετε αυτήν την πολιτική:
More can be found here
Security Support Provider Interface (SSPI)
Είναι το API που μπορεί να χρησιμοποιηθεί για την αυθεντικοποίηση χρηστών.
Το SSPI θα είναι υπεύθυνο για την εύρεση του κατάλληλου πρωτοκόλλου για δύο μηχανές που θέλουν να επικοινωνήσουν. Η προτιμώμενη μέθοδος γι' αυτό είναι το Kerberos. Στη συνέχεια, το SSPI θα διαπραγματευτεί ποιο πρωτόκολλο αυθεντικοποίησης θα χρησιμοποιηθεί, αυτά τα πρωτόκολλα αυθεντικοποίησης ονομάζονται Security Support Provider (SSP), βρίσκονται μέσα σε κάθε μηχανή Windows με τη μορφή DLL και και οι δύο μηχανές πρέπει να υποστηρίζουν το ίδιο για να μπορέσουν να επικοινωνήσουν.
Main SSPs
Kerberos: Το προτιμώμενο
%windir%\Windows\System32\kerberos.dll
NTLMv1 και NTLMv2: Λόγοι συμβατότητας
%windir%\Windows\System32\msv1_0.dll
Digest: Web servers και LDAP, κωδικός πρόσβασης με τη μορφή MD5 hash
%windir%\Windows\System32\Wdigest.dll
Schannel: SSL και TLS
%windir%\Windows\System32\Schannel.dll
Negotiate: Χρησιμοποιείται για να διαπραγματευτεί το πρωτόκολλο που θα χρησιμοποιηθεί (Kerberos ή NTLM με το Kerberos να είναι το προεπιλεγμένο)
%windir%\Windows\System32\lsasrv.dll
Η διαπραγμάτευση μπορεί να προσφέρει πολλές μεθόδους ή μόνο μία.
UAC - User Account Control
User Account Control (UAC) είναι μια δυνατότητα που ενεργοποιεί ένα prompt συγκατάθεσης για ανυψωμένες δραστηριότητες.
UAC - User Account Control![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F916570657-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fr3Cb8nKOYrlGZdSyjbAy%252Fuploads%252Fgit-blob-78abb7891633b1e8147b4e743e4f00af375d3cd6%252Fimage%2520%2848%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=9fbb29e6&sv=1)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated