Windows Security Controls
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Μια λίστα λευκών εφαρμογών είναι μια λίστα εγκεκριμένων λογισμικών εφαρμογών ή εκτελέσιμων που επιτρέπεται να είναι παρόντα και να εκτελούνται σε ένα σύστημα. Ο στόχος είναι να προστατευθεί το περιβάλλον από κακόβουλο λογισμικό και μη εγκεκριμένο λογισμικό που δεν ευθυγραμμίζεται με τις συγκεκριμένες επιχειρηματικές ανάγκες ενός οργανισμού.
AppLocker είναι η λύση λευκής λίστας εφαρμογών της Microsoft και δίνει στους διαχειριστές συστημάτων έλεγχο πάνω σε ποια εφαρμογές και αρχεία μπορούν να εκτελούν οι χρήστες. Παρέχει λεπτομερή έλεγχο πάνω σε εκτελέσιμα, σενάρια, αρχεία εγκατάστασης Windows, DLLs, πακέτα εφαρμογών και εγκαταστάτες πακέτων εφαρμογών. Είναι κοινό για οργανισμούς να μπλοκάρουν το cmd.exe και το PowerShell.exe και την εγγραφή πρόσβασης σε ορισμένους καταλόγους, αλλά όλα αυτά μπορούν να παρακαμφθούν.
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.
Τα τοπικά διαπιστευτήρια είναι παρόντα σε αυτό το αρχείο, οι κωδικοί πρόσβασης είναι κατακερματισμένοι.
Τα διαπιστευτήρια (κατακερματισμένα) είναι αποθηκευμένα στη μνήμη αυτού του υποσυστήματος για λόγους Ενιαίας Σύνδεσης. Η LSA διαχειρίζεται την τοπική πολιτική ασφαλείας (πολιτική κωδικών πρόσβασης, δικαιώματα χρηστών...), αυθεντικοποίηση, tokens πρόσβασης... Η LSA θα είναι αυτή που θα ελέγξει τα παρεχόμενα διαπιστευτήρια μέσα στο αρχείο SAM (για τοπική σύνδεση) και θα μιλήσει με τον ελεγκτή τομέα για να αυθεντικοποιήσει έναν χρήστη τομέα.
Τα διαπιστευτήρια είναι αποθηκευμένα μέσα στη διαδικασία LSASS: εισιτήρια Kerberos, κατακερματισμοί NT και LM, εύκολα αποκρυπτογραφημένοι κωδικοί πρόσβασης.
Η LSA θα μπορούσε να αποθηκεύσει στο δίσκο κάποια διαπιστευτήρια:
Κωδικός πρόσβασης του λογαριασμού υπολογιστή του Active Directory (μη προσβάσιμος ελεγκτής τομέα).
Κωδικοί πρόσβασης των λογαριασμών υπηρεσιών Windows
Κωδικοί πρόσβασης για προγραμματισμένα καθήκοντα
Περισσότερα (κωδικός πρόσβασης εφαρμογών IIS...)
Είναι η βάση δεδομένων του Active Directory. Είναι παρούσα μόνο στους Ελεγκτές Τομέα.
Microsoft Defender είναι ένα Antivirus που είναι διαθέσιμο στα Windows 10 και Windows 11, και σε εκδόσεις του Windows Server. Μπλοκάρει κοινά εργαλεία pentesting όπως το WinPEAS
. Ωστόσο, υπάρχουν τρόποι για να παρακαμφθούν αυτές οι προστασίες.
Για να ελέγξετε την κατάσταση του Defender μπορείτε να εκτελέσετε το PS cmdlet Get-MpComputerStatus
(ελέγξτε την τιμή του RealTimeProtectionEnabled
για να μάθετε αν είναι ενεργό):
Για να το απαριθμήσετε, μπορείτε επίσης να εκτελέσετε:
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 ή η μετάδοση μέσω δικτύου.
Τα κρυπτογραφημένα αρχεία είναι προσβάσιμα στον κάτοχο χωρίς επιπλέον βήματα.
Check if a user has used this service checking if this path exists:C:\users\<username>\appdata\roaming\Microsoft\Protect
Check who has access to the file using cipher /c <file>
You can also use cipher /e
and cipher /d
inside a folder to encrypt and decrypt all the files
This way requires the victim user to be running a process inside the host. If that is the case, using a meterpreter
sessions you can impersonate the token of the process of the user (impersonate_token
from incognito
). Or you could just migrate
to process of the user.
Microsoft developed Group Managed Service Accounts (gMSA) to simplify the management of service accounts in IT infrastructures. Unlike traditional service accounts that often have the "Password never expire" setting enabled, gMSAs offer a more secure and manageable solution:
Αυτόματη Διαχείριση Κωδικών Πρόσβασης: gMSAs χρησιμοποιούν έναν πολύπλοκο, 240 χαρακτήρων κωδικό πρόσβασης που αλλάζει αυτόματα σύμφωνα με την πολιτική του τομέα ή του υπολογιστή. Αυτή η διαδικασία διαχειρίζεται από την Υπηρεσία Κατανομής Κλειδιών της Microsoft (KDC), εξαλείφοντας την ανάγκη για χειροκίνητες ενημερώσεις κωδικών πρόσβασης.
Ενισχυμένη Ασφάλεια: Αυτοί οι λογαριασμοί είναι ανθεκτικοί σε κλειδώματα και δεν μπορούν να χρησιμοποιηθούν για διαδραστικές συνδέσεις, ενισχύοντας την ασφάλειά τους.
Υποστήριξη Πολλών Υπολογιστών: gMSAs μπορούν να μοιράζονται σε πολλούς υπολογιστές, καθιστώντας τους ιδανικούς για υπηρεσίες που εκτελούνται σε πολλούς διακομιστές.
Δυνατότητα Προγραμματισμένων Εργασιών: Σε αντίθεση με τους διαχειριζόμενους λογαριασμούς υπηρεσιών, οι gMSAs υποστηρίζουν την εκτέλεση προγραμματισμένων εργασιών.
Απλοποιημένη Διαχείριση SPN: Το σύστημα ενημερώνει αυτόματα το Όνομα Κύριας Υπηρεσίας (SPN) όταν υπάρχουν αλλαγές στα στοιχεία sAMaccount του υπολογιστή ή στο DNS όνομα, απλοποιώντας τη διαχείριση SPN.
Οι κωδικοί πρόσβασης για gMSAs αποθηκεύονται στην ιδιότητα LDAP msDS-ManagedPassword και επαναρυθμίζονται αυτόματα κάθε 30 ημέρες από τους Ελεγκτές Τομέα (DCs). Αυτός ο κωδικός πρόσβασης, ένα κρυπτογραφημένο blob δεδομένων γνωστό ως MSDS-MANAGEDPASSWORD_BLOB, μπορεί να ανακτηθεί μόνο από εξουσιοδοτημένους διαχειριστές και τους διακομιστές στους οποίους είναι εγκατεστημένα τα gMSAs, εξασφαλίζοντας ένα ασφαλές περιβάλλον. Για να αποκτήσετε πρόσβαση σε αυτές τις πληροφορίες, απαιτείται μια ασφαλής σύνδεση όπως το LDAPS ή η σύνδεση πρέπει να είναι πιστοποιημένη με 'Sealing & Secure'.
You can read this password with GMSAPasswordReader:
Βρείτε περισσότερες πληροφορίες σε αυτή την ανάρτηση
Επίσης, ελέγξτε αυτή τη σελίδα σχετικά με το πώς να εκτελέσετε μια επίθεση NTLM relay για να διαβάσετε τον κωδικό πρόσβασης του gMSA.
Η Λύση Κωδικού Πρόσβασης Τοπικού Διαχειριστή (LAPS), διαθέσιμη για λήψη από την Microsoft, επιτρέπει τη διαχείριση των κωδικών πρόσβασης τοπικών διαχειριστών. Αυτοί οι κωδικοί πρόσβασης, οι οποίοι είναι τυχαίοι, μοναδικοί και τακτικά αλλάζουν, αποθηκεύονται κεντρικά στο Active Directory. Η πρόσβαση σε αυτούς τους κωδικούς πρόσβασης περιορίζεται μέσω ACLs σε εξουσιοδοτημένους χρήστες. Με επαρκείς άδειες, παρέχεται η δυνατότητα ανάγνωσης των κωδικών πρόσβασης τοπικών διαχειριστών.
LAPSΤο 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.
Από προεπιλογή είναι ρυθμισμένη σε περιορισμένη. Κύριοι τρόποι για να παρακάμψετε αυτή την πολιτική:
More can be found here
Είναι το API που μπορεί να χρησιμοποιηθεί για την αυθεντικοποίηση χρηστών.
Το SSPI θα είναι υπεύθυνο για την εύρεση του κατάλληλου πρωτοκόλλου για δύο μηχανές που θέλουν να επικοινωνήσουν. Η προτιμώμενη μέθοδος γι' αυτό είναι το Kerberos. Στη συνέχεια, το SSPI θα διαπραγματευτεί ποιο πρωτόκολλο αυθεντικοποίησης θα χρησιμοποιηθεί, αυτά τα πρωτόκολλα αυθεντικοποίησης ονομάζονται Security Support Provider (SSP), βρίσκονται μέσα σε κάθε μηχανή Windows με τη μορφή DLL και και οι δύο μηχανές πρέπει να υποστηρίζουν το ίδιο για να μπορέσουν να επικοινωνήσουν.
Kerberos: Η προτιμώμενη
%windir%\Windows\System32\kerberos.dll
NTLMv1 και NTLMv2: Λόγοι συμβατότητας
%windir%\Windows\System32\msv1_0.dll
Digest: Διακομιστές ιστού και 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
User Account Control (UAC) είναι μια δυνατότητα που ενεργοποιεί ένα prompt συγκατάθεσης για ανυψωμένες δραστηριότητες.
UAC - User Account ControlUse 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)