Tester la sécurité de votre annuaire
Active Directory
Guillaume MATHIEU- Architecte - Responsable Avant-Vente Metsys
Retrouvez nous sur http://www.metsys.fr/blog
Création en 2011
CA 2012 : 0,5 M€
CA 2013 : 2,1M€
CA 2014 : 5 M€
3eme société IT
en terme d’évolution, 1er SSII
[Channel News – 15/10/14]
METSYS : Fiche d’identité
46 experts Microsoft seniors
Spécialisés sur l’ensemble
des technologies
Spécialiste Azure et Office 365
©Copyright2014METSYS.Tousdroitsréservés
La communauté Metsys
1. Comment les hackers récupèrent les mots de passe Active Directory ?
2. Comment les hackers peuvent élever les privilèges ?
3. Comment les hackers peuvent récupérer un accès SYSTEM ?
4. Comment effectuer un déni de service avec Metasploit ?
Agenda
a. Avec le fichier NTDS.DIT (démo)
b. Avec le mot de passe d’un service Windows (démo)
c. Avec une capture réseau
a. Via NTLM Pass The Hash (démo)
b. Via l’outil INCOGNITO (démo)
c. Via le SID History (démo)
Recommandation ANSII : http://www.ssi.gouv.fr/
Recommandation Microsoft : http://aka.ms/bpsad
Contexte
Les procédures pour sécuriser
un annuaire Active Directory existent
mais ne sont pas appliquées ou connues !
Mot de passe d’un compte utilisateur Active Directory :
 Stocké sous forme d’une empreinte (Hash)
 2 types d’empreinte :
 LMHASH (14127487) : 882B5831DF88FDB77C3113B4A1A5E3A0
 NTHASH (14127487) : B8895ECED52341EDFC6A078BB962CB3B
 Rainbow Table : retrouver un mot de passe à partir d’un HASH
Démo1 : récupérer le mot de passe d’un utilisateur
à partir du fichier NTDS.DIT
Le LMHASH :
 Attributs dBCSPwd (mot de passe) et lmPwdHistory (historique) protégés par
le système
 Mot de passe < 14 caractères, pas de majuscules / minuscules
 LMHASH = DES(Password[0..6], KGS!@#$%) | DES(Password[7..13],
KGS!@#$%)
 Mot de passe < 8 caractères -> résultat seconde clé : 0xAAD3B435B51404EE
 Rainbow Table 17 Go : retrouver tout mot passe à partir de son LMHASH
Démo1 : récupérer le mot de passe d’un utilisateur
à partir du fichier NTDS.DIT
Le NTHASH :
 Attribut UnicodePwd (mot passe actuel) et ntPwdHistory (historique)
 NTHASH = MD4 (Password Unicode)
 Rainbow Table 5 Go : retrouver un mot de passe < 8 caractères si utilisation
mot du dictionnaire ou suite de chiffres
Démo1 : récupérer le mot de passe d’un utilisateur
à partir du fichier NTDS.DIT
Démonstration 1
Préconisation Metsys :
 nombre logins / utilisateur
 LMHASH
 Mot de passe > 7 caractères pour les utilisateurs standards
 Mot de passe > 16 caractères pour les comptes avec privilèges
 Contourner les blocages humains
Démo1 : récupérer le mot de passe d’un utilisateur
à partir du fichier NTDS.DIT
LSA SECRETS : exemple avec le mot de
passe d’un compte de service
Démo2 : récupérer le mot de passe d’un service Windows
Démonstration 2
Préconisation Metsys : protéger les LSA SECRETS
 Ouverture de session sur des machines non sécurisées
 Compte de service = minimum de privilèges
 Mots de passe sensibles ≠ coffre fort Windows
 Cache des sessions sur les serveurs / machines d’administration
 Utilisateur ≠ administrateur de sa station
 Bloquer l’outil PSEXEC (AppLocker)
 Utiliser des MSA ou des gMSA pour les services / tâches planifiées
Démo2 : récupérer le mot de passe d’un service Windows
Comment s’authentifier avec un annuaire Active Directory ?
 LDAP BIND SIMPLE : transmission de mot de passe (texte clair) via le
réseau
 LDAP BIND SASL (Simple Authentication and Security Layer) :
authentification avec Lan Manager, NTLM ou Kerberos
Démo3 : récupérer le mot de passe d’un compte de service
via une capture réseau
Démonstration 3
Préconisation Metsys :
 Signer les données LDAP : bloque les authentifications LDAP BIND SIMPLE
sans SSL.
 Générer des certificats pour les contrôleurs de domaine.
Démo3 : récupérer le mot de passe d’un compte de service
via une capture réseau
Authentification NTLM :
Charlie accède au serveur FILE1. DC1 est le contrôleur du domaine. CL1 est la machine de Charlie.
Démo4 : élévation de privilège avec NTLM Pass The Hash
Charlie
CL1
FILE1 DC1
Version NTLM
(négociation…)
1 - Charlie ouvre sa session2- Charlie accède à File1
Challenge
4- CL1 chiffre ce challenge avec NTHASH Charlie et le
renvoie
3- FILE1 génère le challenge et l’envoie à CL1
Réponse
5- FILE1 envoie le logon + challenge + réponse à DC1
Challenge
Logon de
Charlie
6- DC1 génère la réponse avec le challenge et le logon de Charlie
Réponse
DC1 : OK
7- DC1 compare la réponse générée avec celle reçue par FILE18- Si les deux réponses correspondent, DC1 donne accès à FILE1
« Je suis
Charlie »
Démonstration 4 : élévation de privilège avec NTLM Pass The Hash
Comprendre 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 !
Démonstration 4
Préconisations Metsys :
 Activer NTLM V2
 Désactiver NTLM ?
 Protéger les NTHASH / LSA SECRETS
Démonstration 4 : élévation de privilège avec NTLM Pass The Hash
Qu’est ce qu’un SID ?
 Attribut objectSid -> protégé en écriture par LSASS.EXE
 Identifiant de sécurité unique généré Active Directory (maître RID)
 Les permissions sont associées à un SID
Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
Qu’est ce qu’un jeton d’accès (Access Token) ?
 Contient les SID du compte utilisateur / groupes
 Liste des privilèges (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 jeton d’accès
Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
Présentation d’INCOGNITO :
 Duplique les jetons d’accès existants et les utilise pour exécuter des tâches
 Nécessite les privilèges Debug Programs, Replace a process-level token,
Impersonate a client after authentication
 Exécuter INCOGNITO en tant que System (PSEXEC)
 Utiliser la version 2.0 d’INCOGNITO : https://labs.mwrinfosecurity.com/tools/
Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
Démonstration 5
Préconisation Metsys :
 Détecter INCOGNITO avec antivirus
 Utilisateur ≠ administrateur station de travail
 Replace a process-level token, Impersonate a client after authentication et
Debug Programs
Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
Présentation du SID History :
 Pour les migrations (ADMT)
 L’attribut SIDHistory (tableau) est protégé contre les accès en écriture
 Ajout SID History avec SIDCloner, suppression avec ADMOD.EXE
Démonstration 6 : Elévation de privilège avec le SID History
Démonstration 6
Préconisation Metsys :
 SID History en fin de migration
 Activer la quarantaine SID (netdom trust) en fin de migration
Démonstration 6 : Elévation de privilège avec le SID History
Démonstration 7 : accès SYSTEM au démarrage d’une machine
“If a bad guy has unrestricted
physical access to your computer,
it's not your computer anymore”
Loi n°3 de Jesper M.Johansson
Démonstration 7
Démonstration 8 : effectuer un déni de service avec Metasploit
Présentation de Metasploit :
 Un exploit = permet l’élévation de privilège ou le déni de service.
 Metasploit = base de donnée d’exploits.
 MS012-020 crash machine via vulnérabilité service TSE / RDS
Démonstration 8
 Mots de passe complexe et LMHASH
 Minimum de droits (services, comptes administratifs)
 Activer la signature LDAP
 SID History
 Utilisateur ≠ administrateur
 Debug Programs, Impersonate a client after authentication, Replace a process-
level token
 Chiffrer les disques
 OS supporté et à jour
Synthèse des préconisations
Venez chercher votre livre sur le stand Metsys !
Stand G11

Tester la sécurité de votre annuaire Active Directory : top 10 des menaces et des mesures de sécurité

  • 1.
    Tester la sécuritéde votre annuaire Active Directory Guillaume MATHIEU- Architecte - Responsable Avant-Vente Metsys Retrouvez nous sur http://www.metsys.fr/blog
  • 2.
    Création en 2011 CA2012 : 0,5 M€ CA 2013 : 2,1M€ CA 2014 : 5 M€ 3eme société IT en terme d’évolution, 1er SSII [Channel News – 15/10/14] METSYS : Fiche d’identité 46 experts Microsoft seniors Spécialisés sur l’ensemble des technologies Spécialiste Azure et Office 365 ©Copyright2014METSYS.Tousdroitsréservés
  • 3.
  • 4.
    1. Comment leshackers récupèrent les mots de passe Active Directory ? 2. Comment les hackers peuvent élever les privilèges ? 3. Comment les hackers peuvent récupérer un accès SYSTEM ? 4. Comment effectuer un déni de service avec Metasploit ? Agenda a. Avec le fichier NTDS.DIT (démo) b. Avec le mot de passe d’un service Windows (démo) c. Avec une capture réseau a. Via NTLM Pass The Hash (démo) b. Via l’outil INCOGNITO (démo) c. Via le SID History (démo)
  • 5.
    Recommandation ANSII :http://www.ssi.gouv.fr/ Recommandation Microsoft : http://aka.ms/bpsad Contexte Les procédures pour sécuriser un annuaire Active Directory existent mais ne sont pas appliquées ou connues !
  • 6.
    Mot de passed’un compte utilisateur Active Directory :  Stocké sous forme d’une empreinte (Hash)  2 types d’empreinte :  LMHASH (14127487) : 882B5831DF88FDB77C3113B4A1A5E3A0  NTHASH (14127487) : B8895ECED52341EDFC6A078BB962CB3B  Rainbow Table : retrouver un mot de passe à partir d’un HASH Démo1 : récupérer le mot de passe d’un utilisateur à partir du fichier NTDS.DIT
  • 7.
    Le LMHASH : Attributs dBCSPwd (mot de passe) et lmPwdHistory (historique) protégés par le système  Mot de passe < 14 caractères, pas de majuscules / minuscules  LMHASH = DES(Password[0..6], KGS!@#$%) | DES(Password[7..13], KGS!@#$%)  Mot de passe < 8 caractères -> résultat seconde clé : 0xAAD3B435B51404EE  Rainbow Table 17 Go : retrouver tout mot passe à partir de son LMHASH Démo1 : récupérer le mot de passe d’un utilisateur à partir du fichier NTDS.DIT
  • 8.
    Le NTHASH : Attribut UnicodePwd (mot passe actuel) et ntPwdHistory (historique)  NTHASH = MD4 (Password Unicode)  Rainbow Table 5 Go : retrouver un mot de passe < 8 caractères si utilisation mot du dictionnaire ou suite de chiffres Démo1 : récupérer le mot de passe d’un utilisateur à partir du fichier NTDS.DIT
  • 9.
  • 10.
    Préconisation Metsys : nombre logins / utilisateur  LMHASH  Mot de passe > 7 caractères pour les utilisateurs standards  Mot de passe > 16 caractères pour les comptes avec privilèges  Contourner les blocages humains Démo1 : récupérer le mot de passe d’un utilisateur à partir du fichier NTDS.DIT
  • 11.
    LSA SECRETS :exemple avec le mot de passe d’un compte de service Démo2 : récupérer le mot de passe d’un service Windows
  • 12.
  • 13.
    Préconisation Metsys :protéger les LSA SECRETS  Ouverture de session sur des machines non sécurisées  Compte de service = minimum de privilèges  Mots de passe sensibles ≠ coffre fort Windows  Cache des sessions sur les serveurs / machines d’administration  Utilisateur ≠ administrateur de sa station  Bloquer l’outil PSEXEC (AppLocker)  Utiliser des MSA ou des gMSA pour les services / tâches planifiées Démo2 : récupérer le mot de passe d’un service Windows
  • 14.
    Comment s’authentifier avecun annuaire Active Directory ?  LDAP BIND SIMPLE : transmission de mot de passe (texte clair) via le réseau  LDAP BIND SASL (Simple Authentication and Security Layer) : authentification avec Lan Manager, NTLM ou Kerberos Démo3 : récupérer le mot de passe d’un compte de service via une capture réseau
  • 15.
  • 16.
    Préconisation Metsys : Signer les données LDAP : bloque les authentifications LDAP BIND SIMPLE sans SSL.  Générer des certificats pour les contrôleurs de domaine. Démo3 : récupérer le mot de passe d’un compte de service via une capture réseau
  • 17.
    Authentification NTLM : Charlieaccède au serveur FILE1. DC1 est le contrôleur du domaine. CL1 est la machine de Charlie. Démo4 : élévation de privilège avec NTLM Pass The Hash Charlie CL1 FILE1 DC1 Version NTLM (négociation…) 1 - Charlie ouvre sa session2- Charlie accède à File1 Challenge 4- CL1 chiffre ce challenge avec NTHASH Charlie et le renvoie 3- FILE1 génère le challenge et l’envoie à CL1 Réponse 5- FILE1 envoie le logon + challenge + réponse à DC1 Challenge Logon de Charlie 6- DC1 génère la réponse avec le challenge et le logon de Charlie Réponse DC1 : OK 7- DC1 compare la réponse générée avec celle reçue par FILE18- Si les deux réponses correspondent, DC1 donne accès à FILE1 « Je suis Charlie »
  • 18.
    Démonstration 4 :élévation de privilège avec NTLM Pass The Hash Comprendre 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 !
  • 19.
  • 20.
    Préconisations Metsys : Activer NTLM V2  Désactiver NTLM ?  Protéger les NTHASH / LSA SECRETS Démonstration 4 : élévation de privilège avec NTLM Pass The Hash
  • 21.
    Qu’est ce qu’unSID ?  Attribut objectSid -> protégé en écriture par LSASS.EXE  Identifiant de sécurité unique généré Active Directory (maître RID)  Les permissions sont associées à un SID Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
  • 22.
    Qu’est ce qu’unjeton d’accès (Access Token) ?  Contient les SID du compte utilisateur / groupes  Liste des privilèges (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 jeton d’accès Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
  • 23.
    Présentation d’INCOGNITO : Duplique les jetons d’accès existants et les utilise pour exécuter des tâches  Nécessite les privilèges Debug Programs, Replace a process-level token, Impersonate a client after authentication  Exécuter INCOGNITO en tant que System (PSEXEC)  Utiliser la version 2.0 d’INCOGNITO : https://labs.mwrinfosecurity.com/tools/ Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
  • 24.
  • 25.
    Préconisation Metsys : Détecter INCOGNITO avec antivirus  Utilisateur ≠ administrateur station de travail  Replace a process-level token, Impersonate a client after authentication et Debug Programs Démonstration 5 : élévation de privilège avec l’outil INCOGNITO
  • 26.
    Présentation du SIDHistory :  Pour les migrations (ADMT)  L’attribut SIDHistory (tableau) est protégé contre les accès en écriture  Ajout SID History avec SIDCloner, suppression avec ADMOD.EXE Démonstration 6 : Elévation de privilège avec le SID History
  • 27.
  • 28.
    Préconisation Metsys : SID History en fin de migration  Activer la quarantaine SID (netdom trust) en fin de migration Démonstration 6 : Elévation de privilège avec le SID History
  • 29.
    Démonstration 7 :accès SYSTEM au démarrage d’une machine “If a bad guy has unrestricted physical access to your computer, it's not your computer anymore” Loi n°3 de Jesper M.Johansson
  • 30.
  • 31.
    Démonstration 8 :effectuer un déni de service avec Metasploit Présentation de Metasploit :  Un exploit = permet l’élévation de privilège ou le déni de service.  Metasploit = base de donnée d’exploits.  MS012-020 crash machine via vulnérabilité service TSE / RDS
  • 32.
  • 33.
     Mots depasse complexe et LMHASH  Minimum de droits (services, comptes administratifs)  Activer la signature LDAP  SID History  Utilisateur ≠ administrateur  Debug Programs, Impersonate a client after authentication, Replace a process- level token  Chiffrer les disques  OS supporté et à jour Synthèse des préconisations
  • 34.
    Venez chercher votrelivre sur le stand Metsys ! Stand G11