Vous êtes sur la page 1sur 227

Partageons notre savoir faire

SECURISER
SON ACTIVE DIRECTORY

LA CONNAISSANCE
SACCROIT QUAND
ON LA PARTAGE
INTRODUCTION............................................................................................ 7
1 CONCEVOIR UN ANNUAIRE SECURISE ET QUI REPOND AUX BESOINS
DE LENTREPRISE.......................................................................................... 8
1.1 LES NOTIONS FONDAMENTALES......................................................................... 8
1.2 ANALYSER LE BESOIN DE VOTRE ENTREPRISE.................................................. 10
1.3 CHOISIR UNE TOPOLOGIE ACTIVE DIRECTORY................................................. 11
1.3.1 Exception 1 : une socit avec des entits indpendantes............................ 11
1.3.2 Exception 2 : des applications qui modifient le schma Active Directory...... 11
1.3.3 Exception 3 : les hbergeurs.......................................................................... 12
1.3.4 Exception 4 : contraintes lgales.................................................................... 12
1.3.5 Exception 5 : travailler avec les concurrents.................................................. 12
1.3.6 Exceptions 6 : applications hberges dans le CLOUD.................................. 15
1.4 UTILISER ACTIVE DIRECTORY COMME ANNUAIRE DENTREPRISE................... 16
1.4.1 Synchroniser lannuaire avec dautres sources de donnes (bases RH)..... 17
1.4.2 Synchroniser Azure Active Directory avec Active Directory.......................... 18
1.4.3 Hberger les donnes de lentreprise dans lannuaire Active Directory........ 20
1.4.4 Comment et qui doit administrer ces attributs ?........................................... 22
1.4.5 Protger les attributs qui contiennent des donnes sensibles....................... 26
1.4.6 Permettre un utilisateur de visualiser la valeur dun attribut protg........ 29
1.5 RENFORCER LA SECURITE DU SERVICE DNS..................................................... 29
1.5.1 Quel est le lien entre Active Directory et le DNS ?........................................ 29
1.5.2 La mise jour DNS dynamique....................................................................... 31
1.5.3 Quelles sont les attaques possibles avec le service DNS............................... 38
1.5.4 Scuriser vos serveurs DNS............................................................................ 39
1.6 ELEVATION DE PRIVILEGE AVEC LUTILISATION DU SID HISTORY.................... 47
1.6.1 Faire une augmentation de privilge avec le SID History.............................. 48
1.6.2 Pour supprimer le SID History........................................................................ 55

2 .LES BONNES PRATIQUES POUR DELEGUER LADMINISTRATION DE SON


ANNUAIRE.................................................................................................. 56

2.1 LES PRINCIPES FONDAMENTAUX DE LA DELEGATION DADMINISTRATION.. 56


2.1.1 Les diffrents types dadministrateurs Active Directory................................ 56
2.1.2 Les groupes avec des privilges dadministration.......................................... 57
2.1.3 Dlguer ladministration un utilisateur standard....................................... 59
2.2 DELEGUER LADMINISTRATION AVEC LES UNITES DORGANISATION............. 66
2.3 CREER DES COMPTES NOMINATIFS ET DEDIES POUR LADMINISTRATION..... 66
2.4 DELEGUER UNIQUEMENT LES PERMISSIONS REQUISES.................................. 67
2.5.DESACTIVER LE COMPTE INVITE ET RENOMMER LE COMPTE ADMINISTRATOR
.................................................................................................................................... 68
2.6 AUDITER LES PERMISSIONS SUR LES OBJETS ACTIVES DIRECTORY................ 68
2.7 AUDITER LES PERMISSIONS DE LOBJET ADMINSDHOLDER............................ 69
2.8 ACTIVER LA VEILLE ECRAN AVEC MOT DE PASSE............................................. 72
2.9 DESACTIVER LES COMPTES INACTIFS................................................................ 72
2.10 LES OUTILS TIERS POUR SIMPLIFIER LA DELEGATION DADMINISTRATION.. 75

3 DEFINIR UNE POLITIQUE DE MOTS DE PASSE DENTREPRISE.............. 79

3.1 ANALYSER LES BESOINS DE LENTREPRISE POUR LA POLITIQUE DE MOTS DE


PASSE......................................................................................................................... 80
3.2 REDUIRE LE NOMBRE DE LOGIN / MOTS DE PASSE DIFFERENTS.................... 81
3.2.1 Limiter le nombre de login / mot de passe retenir...................................... 81
3.2.2 Configurer vos applications pour sauthentifier avec Active Directory.......... 81
3.2.3 Utiliser le coffre-fort Windows....................................................................... 82
3.2.4 Utiliser les protocoles de fdration didentit............................................. 83
3.3 LES OUTILS DE GESTION DE MOTS DE PASSE MICROSOFT.............................. 84
3.3.1 Les stratgies de mots de passe de la Default Domain Policy....................... 84
3.3.2 Les objets PSO (fine-grained password)......................................................... 86
3.4 LES OUTILS TIERS DE GESTION DES MOTS DE PASSE....................................... 88
3.4.1 Rinitialiser son mot de passe sans contacter lquipe informatique............. 88
3.4.2 Garantir lidentit de lutilisateur................................................................... 88
3.4.3 Configurer la complexit des mots de passe................................................. 88
3.5 TROUVER LE MOT DE PASSE DUN UTILISATEUR VIA LE RESEAU.................... 89
3.6 UTILISER DES OBJETS MSA ET GMSA POUR LES SERVICES ET LES TACHES
PLANIFIEES................................................................................................................ 90
3.7 LISTER TOUS LES COMPTES QUI NONT PAS CHANGE DE MOTS DE PASSE
DEPUIS PLUSIEURS ANNEES..................................................................................... 93
3.8 REINITIALISER LE MOT DE PASSE DES UTILISATEURS AVEC DES CARTES A
PUCES......................................................................................................................... 94
3.9 RESTREINDRE LUTILISATION DE LOPTION PASSWORD NEVER EXPIRES .. 95
3.10 LE STOCKAGE DES MOTS DE PASSE AVEC ACTIVE DIRECTORY..................... 96
3.10.1 Quest-ce quune empreinte (ou HASH) ?.................................................... 96
3.10.2 Le LMHASH (Lan Manager Hash)................................................................. 96
3.10.3 Le NTHASH (NT Lan Manager Hash)............................................................ 98
3.11 RECUPERER LE MOT DE PASSE DUN UTILISATEUR AVEC LE LMHASH.......... 99
3.11.1 La procdure................................................................................................ 99
3.11.2 Comment dsactiver le LMHASH............................................................... 106
3.12 RECUPERER LE MOT DE PASSE DUN UTILISATEUR AVEC LE NTHASH......... 109
3.12.1 La procdure.............................................................................................. 109
3.12.2 Comment protger les mots de passe....................................................... 114
3.13 PROTEGER LES MOTS DE PASSE STOCKES SUR LES MACHINES WINDOWS......
.................................................................................................................................. 116
3.13.1 Les services et les tches planifies........................................................... 116
3.13.2 Le cache des sessions Windows................................................................. 118
3.14 DEFINIR UNE STRATEGIE DE MOTS DE PASSE CIBLE..................................... 119

4 RENFORCER LA SECURITE DES PROTOCOLES DAUTHENTIFICATION.... .


.................................................................................................................. 121

4.1 LE PROTOCOLE LDAP........................................................................................ 121


4.1.1 LDAP Simple Bind......................................................................................... 121
4.1.2 LDAP SASL BIND.......................................................................................... 122
4.2 PRESENTATION DU PROTOCOLE NTLM V2...................................................... 122
4.3 PRESENTATION DU PROTOCOLE KERBEROS V5.............................................. 124
4.4 LA DELEGATION DAUTHENTIFICATION KERBEROS........................................ 130
4.5 LES BONNE PRATIQUES POUR RENFORCER LA SECURITE DE LANNUAIRE
ACTIVE DIRECTORY................................................................................................. 131
4.5.1 Bloquer les connexions LDAP Simple Bind sans SSL / TLS........................... 131
4.5.2 Activer la signature du trafic LDAP.............................................................. 132
4.5.3 Dsactiver les protocoles dauthentification NTLM..................................... 136
4.5.4 Configurer algorithme de chiffrement Kerberos.......................................... 140
4.5.5 Configurer la synchronisation horaire........................................................... 142
4.5.6 Interdire la dlgation Kerberos pour les comptes dadministration........... 143
4.6 ELVATION DE PRIVILGE AVEC LA TECHNIQUE NTLM PASS THE HASH...... 145
4.6.1 Comprendre une attaque NTLM Pass The Hash........................................... 145
4.6.2 La procdure pour une attaque NTLM Pass The Hash................................. 147
4.6.3 Se protger contre les attaques NTLM Pass The Hash................................ 147

5 LE GESTION DES ACCES AVEC ACTIVE DIRECTORY............................ 148

5.1 LES SID............................................................................................................... 148


5.2 LES PERMISSIONS.............................................................................................. 151
5.3 LES PRIVILEGES................................................................................................. 152
5.4 LES PROCESSUS................................................................................................. 155
5.5 LES SERVICES..................................................................................................... 155
5.6 LES JETONS DACCES (ACCESS TOKEN).......................................................... 160
5.7 ELEVATION DE PRIVILEGE AVEC LE VOL DUN JETON DACCES.................... 162
5.7.1 Prsentation de loutil INGOGNITO............................................................. 162
5.7.2 Procdure dutilisation de loutil INCOGNITO............................................. 163
5.7.3 Comment bloquer loutil INCOGNITO ?....................................................... 164

6..INDUSTRIALISER ET SECURISER LE DEPLOIEMENT DES CONTROLEURS


DE DOMAINE............................................................................................ 165

6.1 DEPLOYER UNIQUEMENT UNE VERSION SUPPORTEE DE WINDOWS SERVER...


.................................................................................................................................. 165
6.2 HEBERGER LES CONTROLEURS DE DOMAINE DANS UN EMPLACEMENT SECU-
RISE.......................................................................................................................... 166
6.2.1.. Quels sont les risques si un attaquant a un accs physique un contrleur de
domaine ?.............................................................................................................. 166
6.2.2 Comment empcher un attaquant daccder au fichier NTDS.DIT ?............ 169
6.3 DEPLOYER LES CORRECTIFS DE SECURITES SUR LES CONTROLEURS DE DO-
MAINE...................................................................................................................... 170
6.3.1 Pourquoi est-il ncessaire de dployer les correctifs de scurit ?.............. 170
6.3.2 Installation des correctifs de scurit sur les contrleurs de domaine....... 173
6.4 REDUIRE LA SURFACE DATTAQUE DES CONTROLEURS DE DOMAINE......... 174
6.5 NE JAMAIS ARRETER LE SERVICE WINDOWS FIREWALL................................ 176
6.6 CONFIGURER LUAC.......................................................................................... 179
6.7 DESACTIVER LA MISE EN CACHE HORS CONNEXION DES SESSIONS........... 182
6.8 RENFORCER LA SECURITE DU BUREAU A DISTANCE...................................... 184
6.8.1 Utiliser des stations de travail dadministration........................................... 184
6.8.2 Configurer le service Bureau distance....................................................... 185
6.8.3 Autoriser uniquement les outils dadministration........................................ 187
6.8.4 Configurer le client Bureau distance.......................................................... 188
6.8.5 Utiliser la fonctionnalit restrictedAdmin ............................................... 189
6.9..RESTREINDRE LACCES A INTERNET DEPUIS LES CONTROLEURS DE DOMAINE
.................................................................................................................................. 189
6.10 CONFIGURER LE MOT DE PASSE DSRM......................................................... 191
6.11.. DEPLOYER UNE CONFIGURATION STANDARD SUR TOUS LES CONTROLEURS
DE DOMAINE........................................................................................................... 191
6.11.1 Configurer IPV6.......................................................................................... 191
6.11.2 Dployer un antivirus jour et configurer les exclusions........................... 192
6.11.3 Utiliser lassistant de configuration de la scurit...................................... 192
6.11.4 Tester votre image dans un environnement de qualification...................... 195
6.11.5 Quelques retours dexpriences sur le dploiement de Windows 2012 R2.....
............................................................................................................................... 191

7 METTRE EN PLACE UNE POLITIQUE DE PREVENTION DES RISQUES.......


.................................................................................................................. 199

7.1.AUDITER LES CHANGEMENTS EFFECTUES SUR LANNUAIRE ET LES TENTATIVES


DACCES................................................................................................................... 199
7.1.1 Configurer le journal Security....................................................................... 199
7.1.2 Configurer les lments auditer................................................................ 199
7.1.3.Collecter le journal Security des contrleurs de domaine et gnrer un rapport
quotidien............................................................................................................... 200
7.2 AUDITER LA SECURITE DE VOTRE ANNUAIRE................................................. 205
7.3 SUPERVISER VOTRE ANNUAIRE ACTIVE DIRECTORY...................................... 206
7.3.1 Prsentation de loutil DCDIAG.................................................................... 206
7.3.2 Dploiement de la solution.......................................................................... 206
7.4 DISPOSER DUN PLAN DE REPRISE INFORMATIQUE (PRI) ACTIVE DIRECTORY...
.................................................................................................................................. 209
7.5 PROTEGER VOS SAUVEGARDES ACTIVE DIRECTORY ET LES FICHIERS IFM
(INSTALL FROM MEDIA)........................................................................................... 209

8 ANNEXES............................................................................................... 211

8.1 PROCEDURE DE DEPLOIEMENT DUNE AUTORITE DE CERTIFICATION MICRO-


SOFT......................................................................................................................... 211
8.2 PROCEDURE DACTIVATION DE BITLOCKER SUR UN CONTROLEUR DE DO-
MAINE...................................................................................................................... 214
8.2.1 Prsentation de la solution pour chiffrer les disques durs des contrleurs de
domaine................................................................................................................. 214
8.2.2 Mise en uvre de BitLocker sur des contrleurs de domaine Windows 2012
R2.......................................................................................................................... 215
8.3 BIBLIOGRAPHIE :................................................................................................ 222
8.3.1 Livre recommand........................................................................................ 222
8.3.2 Microsoft Active Directory Technical Specification...................................... 222
8.3.3 Pour comprendre les protocole NTLM et Kerberos avec Active Directory.. 222
8.3.4 Les Recommandations sur la scurit Active Directory de lANSII.............. 223
8.3.5 Recommandation Microsoft sur la scurit de lannuaire Active Directory.. 223
8.3.6 Recommandation sur la configuration du service Terminal Server............... 223
8.3.7 Autres liens................................................................................................... 223

INTRODUCTION

En cette fin danne 2014, de nombreuses tudes montrent que les DSI
ont 2 grandes priorits :

1. La migration vers des services Cloud comme Office 365,


Windows Azure pour renforcer la fiabilit et/ou diminuer le cot des
services proposs par les DSI.

2. Le renforcement de la scurit de leur infrastructure in-
formatique. Lanne 2013 a t marque par les rvlations dEdward
SNOWDEN sur les pratiques de la NSA. Lanne 2014 restera mar-
que par le piratage de Sony Picture et la fuite de donnes confiden-
tielles.
Ces 2 sujets touchent directement linfrastructure de domaine Active
Directory. Les projets CLOUD ncessitent la mise en uvre dune in-
frastructure permettant aux utilisateurs de sauthentifier avec leur login
/ mot de passe Active Directory pour accder aux services hbergs
en ligne. Le renforcement de la scurit des infrastructures informa-
tiques passent par le renforcement de la scurit de lannuaire Active
Directory. Il est ncessaire de rappeler quun administrateur du do-
maine Active Directory est par dfaut administrateur local de toutes les
machines du domaine (serveurs et stations de travail).

Dans ce document, nous verrons comment :

- Concevoir un annuaire Active Directory scuris et qui rpond aux


besoins de lentreprise.
- Dlguer ladministration de son annuaire Active Directory
- Dfinir une politique de mots de passe dentreprises
- Renforcer la scurit des protocoles dauthentification Active
Directory.
- Grer les permissions daccs avec Active Directory.
- Industrialiser et scuriser le dploiement des contrleurs de
domaine.
- Mettre en placeune politique de prvention des risques.

7
1 CONCEVOIR UN ANNUAIRE SECURISE ET
QUI REPOND AUX BESOINS DE LENTREPRISE

1.1 LES NOTIONS FONDAMENTALES

Microsoft organise son annuaire Active Directory autour de 4 types


dobjets, les forts, les domaines, les units organisationnelles et les
relations dapprobation.

Une fort est un ensemble de domaines partageant la mme configu-


ration, le mme schma et le mme catalogue global. Dans une fort
chaque domaine approuve directement ou indirectement les autres do-
maines de la fort. Ces relations dapprobations ne peuvent pas tre
supprimes. La fort est la limite de scurit dun annuaire Active
Directory. Pour garantir que les utilisateurs dune entit ne disposent
pas daccs dans lannuaire dune autre entit, deux forts distinctes
doivent tre cres.

Un domaine est une partition dans une fort Active Directory. Le pro-
pritaire administratif par dfaut dun domaine est le groupe Domain
Admins de ce domaine. Le groupe Enterprise Admins qui dispose de
permissions sur tous les objets de tous les domaines de la fort se
trouve dans le domaine racine. Un administrateur du domaine racine
de la fort peut donc disposer de tous les droits sur tous les domaines
de la fort. Cest en gnral pour cette raison que le domaine racine
nest pas utilis dans les structures disposant dune fort avec plusieurs
domaines.

Une unit organisationnelle (OU) est un conteneur dans un domaine.


Une OU peut contenir des comptes utilisateurs, des groupes, des
comptes ordinateurs et dautres OU (entre autres). Les OU permettent
donc dorganiser lannuaire. Il est possible de dlguer ladministra-
tion du contenu dune OU un groupe et/ou utilisateur spcifique et
dappliquer des stratgies de groupes aux utilisateurs et ordinateurs
dans cette OU.

Une relation dapprobation est un lien de confiance tabli entre deux


domaines Active Directory (ou entre un domaine Active Directory et
un domaine Windows NT4 ou entre un domaine Active Directory et un
domaine Kerberos non-Windows).
Quand le domaine A approuve le domaine B , les administrateurs
du domaine A peuvent dfinir des permissions sur une machine du

8
domaine A pour des utilisateurs / groupes / ordinateurs du domaine
B . Les utilisateurs du domaine B peuvent donc accder des
ressources du domaine A. Les relations dapprobation permettent entre
autres dtendre aux deux domaines la porte du groupe Authenticated
users. Ce groupe dispose par dfaut du droit douvrir une session sur
une station de travail Windows et de nombreuses permissions sur le
systme de fichiers.
Dans les forts en mode natif 2003, il est possible de crer des rela-
tions dapprobation de type Authentification slective. Avec ce type
dapprobation, la porte du groupe Authenticated users nest pas ten-
due. Pour permettre un utilisateur du domaine B daccder au ser-
veur SRV2012B du domaine A , ladministrateur du domaine A
doit donner le droit Allowed to authenticate au compte utilisateur du
domaine B au niveau du compte ordinateur SRV2012B dans le
domaine A

Lorsquune relation dapprobation est cre, un objet TDO (Trusted


Domain Object) est cr dans le conteneur System de chacun des 2 do-
maines. Un compte utilisateur spcial dans le conteneur Users est aussi
cr pour la compatibilit avec les domaines NT4. Pour plus dinfor-
mations sur les relations dapprobation je vous invite lire le chapitre
6 Relations interdomaines du document suivant :
http://www.ssi.gouv.fr/IMG/pdf/Aurelien_Bordes_-_Secrets_d_
authentification_episode_II_Kerberos_contre-attaque.pdf

9
1.2 ANALYSER LE BESOIN DE VOTRE ENTREPRISE

La topologie de votre annuaire Active Directory (fort, domaine, uni-


ts dorganisation) doit correspondre aux besoins de votre socit.
Avant mme de concevoir votre architecture dannuaire vous devez
analyser le fonctionnement de votre entreprise.

Comment votre entreprise est-elle organise ?


Votre entreprise est-elle dcoupe en plusieurs entits / filiales ?
Les utilisateurs de chaque entit ont-ils besoin de travailler avec les uti-
lisateurs des autres entits ? Plusieurs entits dune entreprise peuvent
partager la mme architecture dannuaire mais peuvent cependant de-
voir demeurer indpendantes du reste de la socit.
Disposez-vous dune direction informatique centralise ou dcentrali-
se (une DSI par entit au niveau de votre socit) ?

Quelles sont les contraintes techniques de votre socit ?


Disposez-vous dapplications qui modifient le schma Active Directo-
ry comme Exchange, Lync, SCCM ou qui stockent leur configuration
dans lannuaire Active Directory (gnralement dans la partition de
configuration) ?
Hbergez-vous des serveurs, applications et des donnes pour vos
clients ?
Publiez-vous des applications sur Internet (extranet, messagerie, ap-
plications mtiers) ?
Devez-vous fournir des accs votre systme dinformations pour des
prestataires, des partenaires ? Ces prestataires, partenaires peuvent-ils
devenir / tre aussi des concurrents potentiels ? Quel est le risque de
vol de donnes ?

Quelles sont les contraintes juridiques de votre socit ?


Certaines entits sont soumises des contraintes juridiques qui leur
imposent de disposer de leur propre systme dinformation qui doit
tre isol de celui des autres entits de la socit.
Cest particulirement vrai si pour une entit travaillant dans le secteur
de la finance, de la dfense ou des institutions gouvernementales.

Quelles donnes dois-je stocker dans mon annuaire Active Directory ?


Active Directory est un annuaire LDAP. Il sert principalement au-
thentifier les utilisateurs mais peut aussi hberger des informations
au niveau des comptes utilisateurs comme le numro de tlphone,
ladresse email, le numro demploy, le type du compte utilisateur
(prestataire, employ, compte de service).

10
1.3 CHOISIR UNE TOPOLOGIE ACTIVE DIRECTORY

Plus vous ajoutez de domaines / forts dans une architecture Active


Directory, plus ladministration devient complexe. Pour cette raison,
larchitecture Active Directory privilgier est un domaine dans une
fort (mono-domaine) avec quelques exceptions / cas particuliers.

1.3.1 EXCEPTION 1 : UNE SOCIETE AVEC DES ENTITES INDEPEN-


DANTES

Crer une fort avec un domaine pour chaque entit de la socit si ces
2 conditions sont remplies :
La direction de lentreprise souhaite pouvoir revendre cette entit
prochainement.
Les changes entre les utilisateurs de cette entit et ceux des autres
entits de la socit sont rduits (uniquement la direction).

1.3.2 EXCEPTION 2 : DES APPLICATIONS QUI MODIFIENT LE SCHE-


MA ACTIVE DIRECTORY

Crer une fort avec un domaine pour hberger les applications qui
modifient le schma Active Directory. Cette rgle sapplique surtout
pour des applications dveloppes en interne qui ncessitent de crer
des attributs / classes dobjets spcifiques. Il nest en effet pas possible
de supprimer un attribut / classe dobjet ajout dans le schma Active
Directory. Elle sapplique partiellement pour les applications comme
Microsoft Exchange, Microsoft Lync. Microsoft teste la compatibilit
des extensions de schma entre ces diffrentes applications. On notera
cependant deux problmes connus :

OCS 2007 R2 (ancien nom commercial de Lync) ne fonctionne


plus correctement aprs la mise jour du schma Active Directory
pour le dploiement de contrleur de domaine Windows 2008 R2. La
solution est de rappliquer lextension de schma pour OCS 2007 R2
aprs lextension de schma pour les contrleurs de domaine Win-
dows 2008 R2 :http://support.microsoft.com/kb/982020/en-us

Il nest pas possible de lancer lextension de schma pour OCS


2007 R2 aprs avoir mis jour le schma pour Lync 2010. Cela
peut poser des problmes dans le cadre de scnario de migration
de LCS 2005 vers Lync 2010 (en passant par OCS 2007 R2). Ce
problme est trs grave car la seule solution est alors de restaurer
compltement la fort (Forest Recovery). Je vous invite donc lire
attentivement cet article http://blogs.technet.com/b/askpfeplat/
11
archive/2012/02/20/2008-r2-active-directory-schema-updates-
lcs-ocs-and-lync.aspx

Dans tous les cas, une mise jour du schma doit tre teste sur un
environnement de qualification copie conforme de lenvironnement de
production. Un pas pas complet pour crer ce type denvironnement
est fourni ladresse suivante : http://msreport.free.fr/?p=154.

1.3.3 EXCEPTION 3 : LES HEBERGEURS

Si vous tes un hbergeur, je vous invite dployer une fort spcifique


pour authentifier les utilisateurs de votre socit et une seconde fort
pour authentifier vos clients (voir une fort par client). Vous pourrez
dfinir une relation dapprobation avec authentification slective pour
permettre aux quipes informatiques de votre socit dadministrer la
ou les forts ddies vos clients.

1.3.4 EXCEPTION 4 : CONTRAINTES LEGALES

Si lactivit dune de vos entits ou dun de vos services exige une


isolation complte, vous devez crer une fort avec un domaine pour
cette entit / service et mettre en place une relation dapprobation avec
authentification slective (si vous avez besoin de partager des res-
sources entre entits).

1.3.5 EXCEPTION 5 : TRAVAILLER AVEC LES CONCURRENTS

Plusieurs solutions sont possibles si vous devez fournir un accs une


de vos applications mtiers aux employs dune autre socit qui est
un partenaire sur un dossier / projet et aussi un concurrent sur dautres
dossiers / projets.

Solution 1 : crer des comptes utilisateurs Active Directory pour


ces utilisateurs dans votre domaine.
Solution 2 : crer un autre domaine dans votre fort pour ces utili-
sateurs.
Solution 3 : crer les comptes des utilisateurs externes dans une
seconde fort et crer une relation dapprobation avec authentification
slective.
Solution 4 : crer des comptes locaux sur les stations de travail et
les serveurs sur lequel le partenaire doit travailler.
Solution 5 : utiliser une solution de fdration didentit (ADFS,
PING Identity ou autres). Votre partenaire peut sauthentifier avec les
comptes utilisateurs de son annuaire pour accder votre application.
12
Votre application doit alors tre compatible avec des protocoles de
fdration didentit comme SAML.

1.3.5.1 Solution 1 : utiliser le domaine de production

Tous les utilisateurs du domaine sont membres du groupe Authenti-


cated users et du groupe Domain users. Les utilisateurs externes ont
donc par dfaut de nombreux accs sur toutes les machines du do-
maine. Pour restreindre ces accs, il faut appliquer la procdure sui-
vante :
Crer le groupe GG_EXTERNAL_USERS.
Ajouter les utilisateurs externes aux groupes GG_EXTERNAL_
USERS.
Configurer le compte utilisateur externe afin que ce dernier ne puisse
ouvrir des sessions que sur certaines machines. Pour cela, aller dans
les proprits du compte utilisateur, onglet Account puis cliquer sur
le bouton Log on To et cocher la case The following computers.
Entrer la liste des machines sur lesquelles lutilisateur peut ouvrir sa
session. Lattribut sous-jacent gre jusqu 1024 valeurs. Cette m-
thode empche louverture de session en local mais lutilisateur peut
toujours accder des machines non autorises via le rseau (accs
aux partages).
Une alternative cette mthode est de configurer le paramtre de GPO
Deny logon locally au groupe GG_EXTERNAL_USERS et appliquer
cette GPO sur toutes les machines du domaine sauf celles auxquelles
les utilisateurs externes ont le droit de se connecter.
Configurer le paramtre de GPO Deny Access to this computer from
the network au groupe GG_EXTERNAL_USERS et appliquer cette
GPO sur les machines Windows rserves aux utilisateurs internes.
Ce paramtre va empcher les utilisateurs externes daccder aux res-
sources internes.

1.3.5.2 Solution 2 : crer un nouveau domaine dans la fort

Cette solution na aucun intrt au niveau scurit. De plus, les envi-


ronnements Active Directory avec des forts contenant plusieurs do-
maines sont plus complexes grer (configuration DNS, augmentation
du nombre de contrleurs de domaine requis). Par dfaut, Active Di-
rectory cre des relations dapprobations entre domaines dune mme
fort qui ne peuvent pas tre supprimes et sur lesquelles on ne peut
pas activer lauthentification slective. Un utilisateur du domaine A
sera donc Authenticated Users dans le domaine B et inversement. On
se retrouve avec les limites de scurit du scnario 1.

13
1.3.5.3 Solution 3 : crer un domaine dans une nouvelle fort

Cest le scnario qui offre le meilleur niveau de scurisation. Le principe


est de :

1 Crer un domaine dans une fort spare.


2 Crer une relation dapprobation bidirectionnelle (voir monodirection-
nelle selon le besoin) entre ces deux forts (relation dapprobation inter-fo-
rts).
3 Activer lauthentification slective au niveau de la relation dapproba-
tion.
4 Configurer les accs dans les domaines. Pour donner accs une ressource
Y1 membre du domaine Y (de la fort Y) un utilisateur du domaine X (de
fort X), vous devez donner le droit Allowed to authenticate sur le compte
ordinateur de la machine Y1 lutilisateur du domaine X (de la fort X).

Dans le cas contraire si lutilisateur essaie daccder la ressource, il a


le message derreur suivant :
Logon Failure. The machine you are logging onto is protected by an
authentication firewall. The specified account is not allowed to authen-
ticate to the machine .

La solution est trs scurise par dfaut mais a les inconvnients


suivants :

Vous avez deux annuaires Active Directory grer.


Il faut configurer les permissions au niveau des comptes ordinateurs
des serveurs de ressources (la permission Allowed to authenticate).
Certaines applications ne peuvent pas sauthentifier avec des comptes
dans 2 forts spares.
Il faut obligatoirement activer lauthentification slective au niveau de
la relation dapprobation sinon on a les mmes contraintes que le sc-
nario 1 et 2.

1.3.5.4 Solution 4 : crer des comptes locaux

Cette solution peut fonctionner si les utilisateurs locaux ne disposent


pas du droit administrateur sur les stations locales. Dans la mesure du
possible, les machines (serveurs / stations de travail) doivent alors tre
en groupe de travail. Nous verrons dans les paragraphes suivants quun
administrateur local qui dispose du privilge Debug programs pour
faire des lvations de privilge en ralisant une attaque de type Pass
the NTLM HASH ou Pass the Kerberos Ticket.

14
1.3.6 EXCEPTIONS 6 : APPLICATIONS HEBERGEES DANS LE
CLOUD

En gnral, les applications hberges dans le Cloud proposent deux


modes dauthentification :

Une authentification avec lannuaire local de lapplication :


ce mode permet aux utilisateurs daccder aux services sans configu-
ration de base mais ncessite que lutilisateur mmorise un nouveau
login / mot de passe. Nous verrons quil est ncessaire de rduire au
maximum le nombre de logins / mots de passe que lutilisateur doit
retenir pour renforcer la scurit de lannuaire Active Directory.

Authentification avec lannuaire Active Directory / LDAP de


lentreprise :
ces applications le permettent en gnral via la prise en charge des
protocoles de fdrations didentit comme SAML (Security Asser-
tion Markup Language).

Les protocoles de fdration didentit sappuient sur 4 lments :

Le Principal : cest le compte utilisateur qui souhaite accder


lapplication dans le Cloud.
Le fournisseur didentit (ou IDP) : cest lannuaire Active Direc-
tory (ou un autre annuaire LDAP).
Le fournisseur de service (SP) : cest lapplication dans le Cloud
(SalesForce, Office 365)
La solution de fdration didentit : elle permet de crer une re-
lation de confiance entre lIDP (lannuaire Active Directory) et le SP
(lapplication Cloud). Le but est de permettre aux utilisateurs dac-
cder / sauthentifier lapplication Cloud (SalesForce, Office 365)
avec leur compte utilisateur Active Directory sans donner un accs
direct lannuaire lapplication Cloud. Ping Identity ou Microsoft
ADFS sont des solutions de fdration didentit.

Comment cela fonctionne (exemple avec un scnario de type SP


Initiated) ?
Le Principal va demander laccs aux services du fournisseur de ser-
vice. Le fournisseur de service va alors demander un jeton (SAML
par exemple) pour ce Principal auprs de la solution de fdration
didentit (serveurs Ping Identity, Microsoft ADFS). La solution de
fdration didentit va construire le jeton partir des informations
changes avec le fournisseur didentit (lannuaire Active Directory,

15
ou un annuaire LDAP) et le renvoyer au Principal. Le Principal va
fournir ce jeton au fournisseur de service (lapplication Cloud). Lap-
plication Cloud va gnrer un cookie ou un ticket pour donner accs
lutilisateur de lapplication.
Lavantage de cette solution est que lhbergeur de lapplication na
pas un accs direct lannuaire. Lapplication a uniquement un accs
au serveur de fdration didentit.
La relation de confiance sapplique uniquement pour une application
spcifique. Le primtre de cette relation de confiance est donc plus
restreint que celui tabli avec une relation dapprobation.
Je vous invite lire la documentation de la solution Ping Fderate pour
mieux comprendre le fonctionnement des protocoles de fdration
didentit (exemple dimplmentation avec Office 365) :
http://documentation.pingidentity.com/display/PF66/
PDF+Downloads
http://documentation.pingidentity.com/pages/viewpage.ac-
tion?pageId=10518544
Il existe aussi une solution Open Source appele Shibboleth (https://
shibboleth.net/about).
Exemple dimplmentation avec Office 365 : http://technet.micro-
soft.com/fr-fr/library/jj205456.aspx

Si vous ne souhaitez pas mettre en uvre une solution de fdration


didentit, vous devez obligatoirement crer une relation dapproba-
tion avec authentification slective entre votre fort (contenant les
comptes de vos utilisateurs) et la fort contenant les ressources utili-
ses par lapplication hberge dans le Cloud. Cette solution rduit le
niveau de scurit de votre annuaire.

Il est dconseill de crer un compte utilisateur standard et douvrir un


accs en LDAP / LDAPS. Avec ce compte, le prestataire de lapplica-
tion Cloud disposerait dun accs en lecture seule presque toutes les
donnes de lannuaire (y compris la configuration de cet annuaire).

1.4 UTILISER ACTIVE DIRECTORY COMME


ANNUAIRE DENTREPRISE

Active Directory est un annuaire LDAP standard qui peut tre utilis
pour hberger les donnes (coordonnes, information RH) de vos uti-
lisateurs comme le numro de tlphone, ladresse email, le numro
demploy, le type du compte utilisateur (prestataire, employ, compte
de service), le service, lentit ou la fonction.
Les applications qui sappuient sur lannuaire Active Directory comme

16
Exchange, Lync, SharePoint disposeront dun accs ces donnes. Un
utilisateur A pourra ainsi trouver via son client de messagerie (Out-
look, OWA) les coordonnes (tlphone, adresse) dun autre
utilisateur. Hberger les donnes RH de lentreprise dans lannuaire
Active Directory pose cependant les questions suivantes :
Comment rpliquer les donnes depuis les bases RH vers Active
Directory ?
Comment hberger lensemble des donnes au niveau de lannuaire
Active Directory ?
Comment et qui doit administrer ces attributs ?
Comment protger les attributs contenant des donnes sensibles ?
Comment faire pour quun utilisateur standard ne puisse pas visuali-
ser la valeur de certains attributs (avec des donnes confidentielles) ?
Comment synchroniser son annuaire Active Directory avec dautres
annuaires ?

1.4.1 SYNCHRONISER LANNUAIRE AVEC DAUTRES SOURCES DE


DONNEES (BASES RH)

Des solutions de synchronisation entre diffrentes sources de donnes


(SQL Server, annuaire LDAP) comme Forefront Identity Manager
(FIM) ou Talend Open Studio for Data Integration existent mais leur
cot de mise en uvre est important (licences, prestations).
Une solution alternative plus simple est de gnrer un export des bases
RH au format CSV et dutiliser un script PowerShell pour mettre jour
les attributs des comptes utilisateurs. Le script PowerShell dimporta-
tion pourra tre excut tous les jours ou toutes les heures.
Le script PowerShell ci-dessous permet par exemple de crer des
comptes utilisateurs dans lannuaire Active Directory laide dun fi-
chier CSV. Le fichier CSV doit utiliser point-virgule comme sparateur
et doit contenir les colonnes prenom , nom , tel et login
compltes pour chaque utilisateur crer.

Import-Module ActiveDirectory
$base = Import-Csv -Path C:\adm\base.csv -UseCulture
foreach ($line in $base)
{
New-ADUser -GivenName $($line.prenom) -Name $($line.
nom) -OfficePhone $($line.tel) -SamAccountName $($line.
login)
$passwd2 = ConvertTo-SecureString -String $($line.mdp)
-AsPlainText -force
Set-ADAccountPassword -Identity $($line.login)
-NewPassword $passwd2
Enable-ADAccount -Identity $($line.login)
}

17
1.4.2 SYNCHRONISER AZURE ACTIVE DIRECTORY AVEC ACTIVE
DIRECTORY

Prenons lexemple dune socit qui souhaite migrer vers Office 365
Entreprise Plan E3. Cette solution est en fait base sur les 6 produits
suivants qui sappuient tous sur un annuaire appel Azure Active Di-
rectory, (un mlange entre un annuaire Active Directory standard et un
annuaire Active Directory Lightweight Services)

Exchange Online : les utilisateurs disposent dune bote aux lettres


de 50 Go avec toutes les fonctionnalits collaboratives dExchange
2013 Server. Avec la licence Office 365 Plan E3, les utilisateurs dis-
posent dun archivage email illimit. Les utilisateurs peuvent chiffrer
/ signer leur email avec S/MIME ou sappuyer sur la solution Azure
Active Directory Rights Management pour scuriser les changes
emails.

Lync Online : les utilisateurs disposent des fonctionnalits de pr-


sence, messagerie instantane, daudioconfrence et de vidoconf-
rence de Lync 2013 Server.

SharePoint Online : les utilisateurs disposent dun espace de stoc-


kage en ligne de 1 To quils peuvent synchroniser sur leur station de
travail avec le client OneDrive for Business (anciennement Share-
Point Workspace puis SkyDrive Pro).
Les utilisateurs peuvent aussi disposer de tous les types de sites web
SharePoint 2013 (Intranet collaboratifs, sites web dquipes). Office
365 permet de scuriser toutes les donnes SharePoint avec Azure
Active Directory Right (bas sur Right Management Services).

Azure Active Directory Rights Management : Office 365 Plan E3


intgre les fonctionnalits dActive Directory Right Management Ser-
vices. Cette solution vous permet de chiffrer / signer vos documents,
dempcher le transfert des documents hors de votre entreprise, de
bloquer des fonctionnalits comme le copier / coller, limpression,
la modification de vos documents. Pour plus dinformations, consul-
ter larticle suivant : http://technet.microsoft.com/fr-fr/library/
jj585026.aspx

Yammer Enterprise : Microsoft a rcemment fait lachat dune


solution de rseau social dentreprise. Vous pouvez voir Yammer
comme une sorte de Facebook dentreprise (cration dvne-
ments, partages de liens, sondages, cration de groupes, partages
de fichiers, conversations, articles). Pour plus dinformations, voir
18
http://www.zdnet.com/yammer-enterprise-in-office-365-enter-
prise-first-take-deeper-integration-7000023229.

Office 365 ProPlus : il sagit dune version spciale dOffice 2013


Professionnel. Cette version ncessite un compte Office 365 pour
sactiver (activation priodique tous les 30 jours) et dispose dun nou-
veau systme de dploiement acclr en streaming appel Click to
Run. Pour plus dinformations, voir http://technet.microsoft.com/
en-us/library/jj219423(v=office.15).aspx

Des applications pour les terminaux mobiles / tablettes : Mi-


crosoft permet de disposer de tous les outils de la suite Office 365
(Outlook Web App, Lync, Word, Excel) sur les terminaux mobiles
et les tablettes. Les utilisateurs sous Office 365 peuvent tlcharger
Office 365 ProPlus sur leur IPAD / IPHONE.

Les administrateurs souhaitent en gnral :

Que les informations de lannuaire Active Directory comme le nu-


mro de tlphone des utilisateurs, ladresse email soient rpliques
dans lannuaire Azure Active Directory. Ils peuvent ainsi accder
toutes ces informations depuis les clients comme Outlook, Lync.
Dfinir quelles ressources (comptes utilisateurs / groupes) r-
pliquent avec Azure Active Directory.
Empcher des informations (attributs confidentiels) de rpliquer
dans lannuaire Azure Active Directory.
Que lutilisateur se connecte aux services Office 365 avec son login
/ mot de passe Active Directory.
Pouvoir visualiser toutes les ressources de son annuaire dans les
interfaces dadministration Office 365 (portail Office 365 ou modules
PowerShell Office 365).

Ces actions sont possibles avec des outils de synchronisation comme


Azure Active Directory Sync (AD-SYNC, http://www.microsoft.
com/en-us/download/detailsaspx?id=44225).

Cet outil est en fait bas sur le moteur de Forefront Identity Manager
2010 Il va permettre :

De dfinir les ressources de lannuaire qui vont rpliquer en slec-


tionnant les OU autorises rpliquer.
De dfinir les objets utilisateurs qui vont rpliquer en se basant sur
la valeur dun ou plusieurs attributs.

19
De rpliquer ventuellement le mot de passe des utilisateurs dans
lannuaire Azure Active Directory. Cette solution permet en partie
dviter lutilisation dun protocole de fdration didentit mais co-
pie un driv du Hash du mot de passe de lutilisateur dans lannuaire
Azure Active Directory. Cela pourrait poser des problmes de scurit
mme si Microsoft sengage sur le fait quaucune fonction math-
matique ne permet de retrouver le Hash du mot de passe du compte
utilisateur Active Directory partir de la version copi du Hash du
mot de passe dans Azure Active Directory.

1.4.3 HEBERGER LES DONNEES DE LENTREPRISE DANS LAN-


NUAIRE ACTIVE DIRECTORY

De base, Active Directory dispose de nombreux attributs pour hber-


ger les donnes des utilisateurs. Je vous invite lire larticle http://
msdn.microsoft.com/en-us/library/ms683980(v=vs.85).aspx qui
dtaille les champs disponibles dans le schma Active Directory de
base (aprs dploiement du premier contrleur de domaine). Si vous
avez besoin de plus attributs, vous pouvez prparer le schma Active
Directory pour Exchange 2013 (ne ncessite pas lachat de licences
Exchange 2013).

Cette extension de schma vous permettra dutiliser les attributs


ci-dessous pour hberger vos donnes au niveau des objets comptes
utilisateurs :

extensionAttribute1
extensionAttribute2

extensionAttribute15
msExchExtensionCustomAttribute1

msExchExtensionCustomAttribute5

Les attributs extensionAttribute sont de type chane de caractres. Le


LDAPDisplayName de cet attribut commence par extensionAttribute
(exemple : extensionAttribute1 mais leur adminDisplayName com-
mence par ms-Exch-Extension-Attribute- (exemple : ms-Exch-Exten-
sion-Attribute-1).

Les attributs msExchExtensionCustomAttribute sont des tableaux qui


autorisent jusqu 1300 entres de type chane de caractres.
Dautres attributs semblent disponibles comme msDS-cloudExtensio-
20
nAttribute1 msDS-cloudExtensionAttribute20 et msExchExtensio-
nAttribute16 msExchExtensionAttribute45. Microsoft dconseille
cependant de les utiliser car ils sont rservs pour de futurs usages.

Pour dployer lextension de schma Exchange 2013 :

1 Valider le bon fonctionnement de vos sauvegardes Active Direc-


tory.

2 Dsactiver lantivirus temps rel sur le contrleur de domaine


avec le rle de matre de schma.

3 Ouvrir une session avec un utilisateur membre du groupe


Schema admins et Enterprise admins . Tlcharger lins-
tallation dExchange 2013 cette adresse : http://technet.
microsoft.com/fr-fr/evalcenter/hh973395.aspx. Double cli-
quer sur le fichier et extraire les sources dinstallation dans
C:\_adm\sources\Exchange2013 sur le contrleur de do-
maine avec le rle de matre de schma Active Directory.

4 Dsactiver la rplication entrante / sortante sur ce contr-


leur de domaine avec les commandes suivantes (dans
lexemple ci-dessous SRV2012R2 est le nom du contr-
leur de domaine avec le rle de matre de schma):
repadmin /options SRV2012R2 +DISABLE_OUTBOUND_REPL
repadmin /options SRV2012R2 +DISABLE_INBOUND_REPL

5 Lancer linvite de commande PowerShell en tant quadministrateur et


lancer la commande suivante :
C:\_adm\sources\Exchange2013\Setup.exe /PrepareSchema
/IAcceptExchangeServerLicenseTerms

6 Une fois que la mise jour du schma est termine, valider le


bon fonctionnement du contrleur de domaine. Ractiver la r-
plication entrante / sortante sur le contrleur de domaine avec le
rle de matre de schma en tapant les commandes suivantes :
repadmin /options SRV2012R2 -DISABLE_OUTBOUND_REPL
repadmin /options SRV2012R2 -DISABLE_INBOUND_REPL

Cette procdure doit tre teste et valide sur un environnement de


maquette copie conforme de lenvironnement de production avant
toute application en production.

21
1.4.4 COMMENT ET QUI DOIT ADMINISTRER CES ATTRIBUTS ?

Les consoles dadministration comme Active Directory Users and


Computers naffichent pas les valeurs de tous les attributs disponibles.
Il nest pas possible de modifier ce fonctionnement.
Depuis Windows 2008 R2, vous disposez de longlet Attribute Edi-
tor dans la console Active Directory Administration Center et dans la
console Active Directory Users and Computers (en mode daffichage
Advanced features).

Vous disposez aussi dun module PowerShell avec les contrleurs de


domaine Windows 2008 R2 pour administrer le contenu de votre an-
nuaire Active Directory. Si vous disposez de contrleur de domaine
antrieur Windows 2008 R2, je vous invite utiliser le module
PowerShell

Dell ActiveRoles Management Shell 1.6 (gratuit) tlchargeable


ladresse suivante : http://software.dell.com/fr-fr/trials/#a. Il sera
ncessaire de dployer .Net Framework 3.5 sur la machine dadmi-
nistration.

Vous pouvez aussi utiliser des fichiers HTA. Ces fichiers permettent de
disposer dune interface au format HTML que vous couplez avec du
code VBSCRIPT.
Le site web http://bbil.developpez.com/tutoriel/vbs/inter-
face-hta/ permet de disposer des bases pour dvelopper son script
HTA.

Exemple dInterface Self-Service (permettant aux utilisateurs de


mettre jour leur information) : http://community.spiceworks.
com/scripts/show/626-active-directory-user-editor-hta

22
Exemple dinterface dadministration pour les administrateurs
Active Directory :http://community.spiceworks.com/scripts/
show/573-aduc-update-utility

23
24
Exemple dinterface pour les quipes en charge de la rinitialisa-
tion des mots de passe :
http://www.bestintexas.com/Scripting/

25
Tous ces outils permettent donc de dlguer si besoin ladministration
des donnes de lannuaire des quipes non informatiques. Nous ver-
rons plus loin dans ce document comment dlguer les droits dadmi-
nistration ces utilisateurs.

1.4.5 PROTEGER LES ATTRIBUTS QUI CONTIENNENT DES


DONNEES SENSIBLES

Par dfaut le groupe Authenticated users dispose dun accs en lecture


seule tous les attributs non systme dun compte utilisateur. Com-
ment permettre seulement certains utilisateurs / groupes de lire la
valeur dun attribut contenant des donnes confidentielles ?

Microsoft permet de dfinir quun attribut est confidentiel en ajoutant


la valeur dcimale 128 lattribut searchFlags au niveau de lobjet
attribut dans la partition de schma Active Directory.
On notera que dans la partition de schma Active Directory, les attri-
buts Active Directory (comme lattribut GivenName qui correspond au
champ prnom) sont des objets qui disposent eux-mme dattributs. Je
vous invite lire cet article de la base de connaissance Microsoft qui
prsente cette fonctionnalit :
http://support.microsoft.com/kb/922836/en-us

Cette action ne peut pas tre effectue sur les attributs de base (avec
lattribut systemsFlags 0x10).
http://windowsitpro.com/active-directory/using-confidentia-
lity-bit-hide-data-active-directory

Nous allons dans lexemple ci-dessous configurer les attributs Exten-


sionAttribute1 et EmployeeNumber comme attributs confidentiels.

26
Vrifier que lattribut systemFlags est bien dfini sur 0x0 puis ajouter
la valeur 128 lattribut searchFlags. Avec ADSIEDIT.MSC on rentre
la valeur en dcimal (128) et elle saffiche ensuite en hexadcimal dans
linterface graphique dADSIEDIT.MSC.

Si on essaie avec un attribut de base, cela choue alors (avec lattribut


systemsFlags 0x10).

Lancer la console Active Directory Schema et configurer lattri-


but EmployeeNumber pour tre index (optimisation des recherches
qui se basent sur cet attribut). On peut constater alors que lattribut
SearchFlags est mis jour tout en conservant la personnalisation (Pas-
sage de 0x80 0x81).

Pour lancer la console Active Directory Schema, entrer la commande


regsvr32 schmmgmt.dll, crer une console MMC vierge et ajouter le
composant logiciel enfichable Active Directory Schema.

Lattribut extensionAttribute1 est affich avec son adminDisplay-


Name. Vous le trouverez donc ms-Exch-Extension-Attribute-1 dans
la console ADSIEDT.MSC.

Lattribut systemFlags de ms-Exch-Extension-Attribute-1 (extensionAt-


tribute1) na pas de valeur. Ce nest donc pas un attribut de base. Par
contre lattribut searchFlags a la valeur 17 (en dcimal). Pour que cet at-
tribut soit toujours index et copi quand un Helpdesk utilise la fonction
Copie dun compte utilisateur, vous devez ajouter la valeur 128 (en d-
cimal) la valeur existante 17 (dcimal) soit 145 (dcimal). On obtient
alors le rsultat ci-dessous (capture de droite ci-dessous).
27
Si on donne la valeur 1234 dans lEmployeeNumber du compte me-
lanie.mathieu, un utilisateur standard ne voit plus cette valeur, alors
quun administrateur du domaine voit cette valeur.

28
1.4.6 PERMETTRE A UN UTILISATEUR DE VISUALISER LA VALEUR
DUN ATTRIBUT PROTEGE

Maintenant que lattribut ExtensioAttribute1 est configur comme at-


tribut confidentiel, nous voulons que le compte utilisateur tigrou.ma-
thieu (utilisateur standard) puisse le lire ainsi que les administrateurs
du domaine. Les autres comptes ne doivent pas pouvoir lire la valeur
de cet attribut.
Il faut utiliser loutil LDP.EXE et se connecter lannuaire.

1. Aller au niveau de lOU Techdays, faire un clic droit puis slectionner


Advanced | Security descriptor. Cliquer sur Add ACE.
2. Taper tigrou.mathieu dans le champ Trustee.
3. Cocher les cases Control Access et Inherit.
4. Slectionner extensionAttribute1 - attribute dans le champ Object type.
5. Slectionner User dans le champ Inherited object type.
Le compte tigrou.mathieu doit tre membre du groupe GDL_ViewExtensio-
nAttribute1.

Ouvrir une session avec le compte tigrou.mathieu et vrifier si ce der-


nier a maintenant la possibilit de voir ExtensionAttribute1 au niveau
du compte melanie.mathieu (qui se trouve dans lOU Techdays).

Remarque :
Pour les attributs qui stockent le mot de passe Active Directory, cest
encore une autre type de protection.

1.5 RENFORCER LA SECURITE DU SERVICE DNS

1.5.1 QUEL EST LE LIEN ENTRE ACTIVE DIRECTORY ET LE DNS ?

Le protocole DNS (Domain Name Services) a t cr pour permettre


de base de rsoudre des noms complets DNS (FQN) en IP (et des IP en
FQDN, et des FQDN en dautres FQDN). Il est en effet plus simple de
mmoriser un nom quune adresse IP.
Active Directory exporte la configuration de lannuaire sous forme
dentres DNS. Les stations de travail peuvent ainsi localiser les
contrleurs de domaine en effectuant des requtes DNS.

Exemple avec la machine SRV2012C (192.168.1.112) et un do-


maine Active Directory msreport.be qui dispose de 2 sites Active
Directory appels Maillot et Meudon :
Lorsque la machine srv2012c est jointe dans le domaine Active Di-
rectory msreport.be, elle ne connat pas encore son site Active Direc-

29
tory. Elle va donc se connecter un des contrleurs du domaine sans
tenir compte de son emplacement rseau en rsolvant lentre DNS
_ldap._tcp.msreport.be. Dans notre cas notre domaine dispose de 2
contrleurs de domaine srv2012a.msreport.be et srv2012b.msreport.
be. Le serveur DNS dispose dune fonctionnalit appele Round Robin
(dans les proprits du serveur DNS) qui lui permet de slectionner
une entre DNS de manire alatoire quand plusieurs entres existent.

Une fois que la machine srv2012c a trouv un contrleur de domaine,


elle va chercher son site Active Directory de rattachement. Pour cela,
elle va faire calculer son adresse de sous rseau et envoyer cette infor-
mation au contrleur de domaine. Le contrleur de domaine va dter-
miner le site Active Directory de rattachement de la station de travail
laide de la configuration de sites Active Directory (Maillot dans cet
exemple) et renvoyer le nom du site Active Directory la machine.
Srv2012c va alors rsoudre lentre DNS _ldap._tcp.Maillot.msreport.
be (utilisation de la fonctionnalit Round robin du DNS) car cest le
site Maillot qui est rattach au sous rseau IP 192.168.1.0/24.
SRV2012C va stocker le nom du site Active Directory dans lentre
DynamicSiteName de la base de registre sous HKEY_LOCAL_MA-
CHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parame-
ters. Pour plus dinformations, voir http://blogs.technet.com/b/
arnaud_jumelet/archive/2010/07/11/domain-controller-loca-
tor-in-depth.aspx.

30
Les contrleurs de domaine utilisent une entre CNAME dans _msdcs.
msreport.be pour localiser les autres contrleurs de domaine. Chacune
de ces entres correspond en fait au GUID du contrleur de domaine.
Lentre DNS CNAME permet au contrleur de domaine de rsoudre
GUID._msdc.msreport.be en le FQDN du contrleur de domaine. Ce
FQDN est ensuite rsolu en une adresse IP ce qui permet au contrleur
de domaine srv2012a.msreport.be de rpliquer avec le contrleur de
domaine srv2012b.msreport.be.

1.5.2 LA MISE A JOUR DNS DYNAMIQUE

1.5.2.1 Le principe de fonctionnement

Toutes ces entres DNS sont mises jour dynamiquement par les
contrleurs de domaine laide de la fonctionnalit de mise jour dy-
namique DNS. Le service NETLOGON de chaque contrleur de do-
maine va enregistrer les entres DNS du fichier c:\windows\system32\
config\netlogon.dns.

Chaque contrleur de domaine va aussi enregistrer son nom de ma-


chine dans la zone DNS correspond son suffixe DNS principal (le
nom du domaine par dfaut) toutes les 5 minutes. Il est possible de for-
cer manuellement cet enregistrement en tapant la commande ipconfig
/registerdns.

En pratique toutes les machines Windows vont essayer de crer /


mettre jour une entre DNS qui correspond au nom de la machine et
leur suffixe DNS principal.
Le suffixe DNS principal de la machine correspond par dfaut au nom
31
DNS du domaine Active Directory.
Ne pas dcocher la case Change primary DNS suffix when domain
membership changes. Cela aurait pour consquence de gnrer de trs
gros problmes. En effet quand vous tapez ping srv2012c, le systme
va en ralit faire un ping srv2012c.msreport.be (il ajoute le suffixe
DNS principal).

Les machines enregistrent par dfaut leur nom concatn leur suffixe
DNS car la case Register the connections address in DNS est coche
par dfaut au niveau des proprits TCP / IP avances de la carte rseau
(onglet DNS).

32
Pour information, Microsoft bloque lenregistrement DNS dynamique
quand le suffixe DNS correspond la zone racine ou un domaine de
premier niveau (comme .fr.). Cela permet dviter que les stations de
travail en groupe de travail essaient deffectuer une mise jour DNS
dynamique dans ce type de zones DNS.

1.5.2.2 Retour dexprience sur la mise jour dynamique DNS

Un client avait des problmes avec les valeurs de ces entres DNS de
type A (FQDN rsolue en une IP). Les imprimantes et les stations de
travail chez ce client taient en DHCP. Chaque tage dans les locaux
du client disposait dun VLAN (plage IP ddie).
Description du problme :
Certaines entres DNS correspondant des imprimantes ou des sta-
tions de travail taient rsolues avec lancienne adresse IP de la ma-
chine. Ce problme se posait si :
Cas 1 : le compte ordinateur Active Directory dune station de
travail Windows tait supprim puis recr.
Cas 2 : on dplaait une imprimante / machine non Windows entre
VLANS (mme serveur DHCP)
Cas 3 : si on dplaait une imprimante / machine non Windows
entre deux sites gographiques (changement de serveurs DHCP).
Cas 4 : si une personne de linformatique avait cr manuellement
lentre DNS dune station de travail / imprimante.
Cas 5 : si on avait rcemment chang de serveur DHCP (migration
de Windows 2003 vers Windows 2012 R2).

La zone DNS msreport.be tait intgre lannuaire et configure pour


autoriser les mises jour dynamiques DNS scurises uniquement (Se-
cure Only).

33
Do venait le problme ?
Il sagit tout simplement dun problme de permissions au niveau des
entres DNS !
Quand on intgre une zone DNS dans lannuaire Active Directory, les
entres DNS deviennent des objets (comme les comptes utilisateurs)
de type DNSNODE.
Ces objets ont des permissions. Or, pour pouvoir mettre jour ladresse
IP dune entre DNS de type A (type Hte, nom rsolu en IP), il faut
avoir le droit Ecrire sur lentre DNS (lobjet de type DNSNODE).

Qui a le droit de mettre jour une entre DNS ?


Quand on cre manuellement une entre DNS, cest le compte utilisa-
teur qui a cr lentre qui a le droit dcrire.
Pour les machines qui rcuprent une adresse IP via un serveur DHCP,
cela dpend de la configuration du serveur DHCP. Selon le cas, cest
le compte ordinateur du serveur DHCP, le compte ordinateur du client
DHCP ou un compte utilisateur spcifique qui a le droit de modifier
lentre DNS (que lon configure au niveau du serveur DHCP).

Comment dterminer qui a le droit de modifier une entre DNS ?


Ouvrir la console DNS. Cliquer dans le menu View puis slectionner
Advanced.
Quand on double clic sur une entre DNS, on voit maintenant la date
de cration de lenregistrement (si cest une entre DNS cre dynami-
quement) et longlet Security (permission sur lobjet).

34
Comment configurer qui peut modifier une entre DNS cre
dynamiquement ?
Pour effectuer cette configuration, ouvrir la console DHCP et aller
dans les proprits du serveur DHCP.
Aller dans longlet DNS.

1. Si vous slectionnez, Dynamically update DNS records


only of requested by the DHCP clients les machines Windows en DHCP
crent elles-mmes lentre DNS. Cest donc le compte ordinateur de
la machine Windows qui a le droit de modifier lentre DNS. Pour les
autres machines (qui ne savent pas faire des mises jour dynamiques
DNS scurises), cest le compte ordinateur du serveur DHCP ou un
compte utilisateur spcial. Dans notre exemple, le serveur DHCP a t
configur pour activer la mise jour dynamique DNS laide dun
compte appel Dhcp_update. Cette configuration se fait dans longlet
DNS des proprits IPV4 et IPV6 du serveur DHCP.

2. Si vous slectionnez Always update DNS records, cest le


compte ordinateur du serveur DHCP ou un compte utilisateur spcial
qui a le droit de modifier les entres DNS.
Le fait dutiliser un compte utilisateur pour les mises jour DNS dyna-
miques effectues par le serveur DHCP se configure dans longlet Ad-
vanced dans les proprits du serveur DHCP. Cliquer sur Credentials.
Voir article Microsoft
http://support.microsoft.com/kb/282001/en-us

35
Prconisation de configuration :

Tous les serveurs DHCP doivent avoir la mme configuration (DHCP


Microsoft).
Configurer le serveur DHCP sur Dynamically update DNS records
only of requested by the DHCP clients.
Ne jamais supprimer les comptes ordinateurs des stations de travail
(les rinitialiser si besoin).
Configurer le serveur DHCP pour effectuer les mises jour dyna-
miques DNS laide dun compte de service. Voir article Microsoft :
http://support.microsoft.com/kb/282001/en-us.
Au niveau du serveur DNS, donner au niveau de la zone DNS msre-
port.be le droit de Read et Modify toutes les entres DNS ce compte
spcial (DHCP_Update). Cliquer sur longlet Advanced. Il est en effet
ncessaire de configurer la permission pour quelle sapplique sur This
objects and all descendants objects.
36
Pour les entres DNS posant problmes, il sera ncessaire de les sup-
primer puis de les recrer laide de la commande ipconfig /regis-
terdns.

Complment dinformations sur les services DHCP Client et DNS


Client :
Le service DHCP client ne doit jamais tre arrt mme si la machine
est en IP FIXE !
Ce service permet en effet de rcuprer une adresse via un serveur
DHCP mais il permet aussi de mettre jour les entres DNS dynami-
quement. Si vous dsactivez le service DHCP Client sur un contrleur
de domaine, le service NETLOGON ne pourra plus crer / modifier les
entres SRV comme _ldap._tcp.msreport.be. Lorsque le service DHCP
Client est arrt, on a le message Error: The system cannot find the file
specified quand on fait un ipconfig /registerdns. Le service DNS client
gre uniquement la fonctionnalit de cache DNS. Pour plus dinfor-
mations :
http://support.microsoft.com/kb/264539/en-us
http://support.microsoft.com/kb/306602/en-us
http://support.microsoft.com/kb/318803/en-us

37
1.5.3 QUELLES SONT LES ATTAQUES POSSIBLES AVEC LE SERVICE
DNS

Un attaquant peut perturber le fonctionnement de lannuaire (la r-


plication) en altrant les entres DNS qui permettent aux stations de
travail de localiser leur contrleur de domaine, les serveurs de lentre-
prise et qui permettent chaque contrleur de domaine de rpliquer
avec les autres contrleurs de domaine.

Exemple dune attaque base sur le DNS :


Lentreprise Msreport dispose dun serveur web sous Apache appel
https://www.msreport.be. Les utilisateurs accdent un site web de
lentreprise avec Internet Explorer en sauthentifiant avec leur login /
mot de passe. Comme le site web est configur pour faire de lauthen-
tification de base sous HTTPS, le login / mot de passe ne circule pas
en clair.
Si lattaquant arrive modifier lentre DNS www.msreport.be dans la
zone DNS, il pourra ventuellement rcuprer le login / mot de passe
de lutilisateur. La seule limite de cette attaque est que le certificat ne
sera pas valide. Lutilisateur aura donc un message davertissement
dans Internet Explorer.

Des attaques plus sophistiques permettent un attaquant de polluer


le cache DNS dun serveur DNS ou du client DNS. En effet, quand
une machine fait une rsolution de noms, elle met le rsultat en cache.
Le cache peut tre affich avec la commande ipconfig /displaydns et
purger avec la commande ipconfig /flushdns.
Le serveur DNS dispose lui aussi dun cache o il stocke les rponses
DNS renvoys par les autres serveurs DNS (entres DNS sur lesquels
il ne fait pas autorit).
Pour supprimer le cache dun serveur DNS, ouvrir la console DNS,
aller dans les proprits du serveur DNS et slectionner Clear Cache.
Si un attaquant arrive insrer une entre DNS dans le cache DNS
du serveur, il peut rediriger un utilisateur sur une machine quil gre.

38
1.5.4 SECURISER VOS SERVEURS DNS

Il est recommand de dployer le service DNS sur tous les contrleurs


de domaine Active Directory car comme vu prcdemment Active
Directory sappuie sur le service DNS pour permettre aux clients de
dtecter un contrleur de domaine. Pour scuriser un serveur DNS, les
actions suivantes doivent tre effectues :
Intgrer toutes les zones DNS dans lannuaire Active Directory et
configurer la mise jour dynamique DNS sur le paramtre Secure
Only.
Ne pas autoriser le transfert de zone vers tous les serveurs et confi-
gurer le transfert de zone laide du protocole IPSEC.
Protger le cache contre la pollution.
Activer DNS SEC sur toutes les zones DNS.

1.5.4.1 Intgrer les zones DNS dans Active Directory et activer la mise
jour dynamique DNS scurise

Toutes les zones DNS doivent tre intgres dans lannuaire Active
Directory. Les zones DNS seront alors un objet DnsZone et les entres
DNS deviendront des objets DnsNode qui rpliqueront sur tous les
contrleurs de domaine. Si vous disposez de plusieurs domaines dans
la fort Active Directory, il est conseill de stocker les zones DNS dans
la ForestDnsZones (Choose how you want zone data to be replicated
: To all DNS servers running on domain controllers in this Forest :ms-
report.be)

39
Les zones hberges dans la partition dannuaire ForestDnsZones r-
pliquent sur tous les contrleurs de domaine de la fort qui disposent
du service DNS. Dans cette configuration, tous les serveurs DNS dis-
poseront dun accs en lecture / criture sur les zones DNS.

40
Il est recommand dautoriser uniquement la mise jour dynamique
scurise ou de dsactiver la mise jour dynamique DNS. Cette confi-
guration permet de dfinir des permissions sur la zone et les entres
DNS et permet de garantir quun attaquant ne pourra pas modifier les
entres DNS.

1.5.4.2 Scuriser le transfert des zones DNS

Le transfert de zone est le mcanisme natif du DNS qui permet aux ser-
veur(s) DNS qui hbergent la zone en lecture seule (zone secondaire)
de rpliquer avec le serveur qui hberge la zone en lecture / criture
(zone principale). Il est recommand de protger le trafic de rplication
entre ces serveurs en activant IPSEC (configuration au niveau du pare-
feu Windows ou via stratgie de groupe).
Le transfert dune zone DNS ne doit aussi tre autoris que depuis
certains serveurs (ceux qui hbergent une zone secondaire). Si vous
voulez viter que les zones DNS expirent (cela gnre souvent des
problmes de production), noubliez pas de configurer la notification.
Lorsquun changement est effectu dans la zone DNS, le serveur DNS
qui a la zone en lecture / criture notifie alors les serveurs DNS qui ont
la zone en lecture seule du changement. Ces derniers peuvent alors
rpliquer le changement.

La procdure pour activer IPSEC entre 2 serveurs DNS est explique


en dtail dans cet article :
http://technet.microsoft.com/fr-fr/library/ee649192(v=ws.10).
aspx
Elle ncessite de crer une rgle au niveau du pare-feu Windows.

41
1.5.4.3 Protger le cache du serveur DNS contre la pollution

Comment peut-on polluer le cache dun serveur DNS ?


Quand un serveur DNS ne dispose pas de la zone DNS correspon-
dant lentre DNS quil doit rsoudre, il utilise un redirecteur DNS.
Par dfaut, le serveur DNS Microsoft va interroger les serveurs DNS
racines. Il est cependant possible de configurer des redirecteurs spci-
fiques pour un domaine DNS prcis (redirecteur conditionnel) ou un
redirecteur pour tous les domaines que le serveur DNS ne gre pas.
Dans lexemple ci-dessous, jai configur mon serveur DNS sur mes
serveurs pour utiliser ma LiveBox comme serveur DNS de redirection.

42
Un attaquant peut arriver insrer une information incorrecte (exemple le
FQDN www.microsoft.com est rsolu en lIP 192.168.0.1 au lieu de
lIP 2.19.95.132) dans le cache dun serveur DNS. On parle alors de
pollution du cache DNS.

Pour effectuer ce type dattaque, lattaquant va envoyer des requtes


au serveur DNS pour obtenir ladresse IP de www.microsoft.com et
va envoyer en mme temps des rponses au serveur DNS avec une IP
incorrecte de www.microsoft.com (192.168.0.1).
Le serveur DNS va faire une requte DNS son serveur DNS de redi-
rection pour obtenir lIP de www.microsoft.com.
Le serveur DNS va prendre en compte les diffrentes rponses (la
bonne et les mauvaises) et va alors en slectionner une et lajouter
dans son cache. Avec un peu de chance, il slectionnera la mauvaise.
Si un autre utilisateur demande rsoudre le FQDN www.microsoft.
com, le serveur DNS va consulter son cache et renvoyer la mauvaise
information cet autre client.

Des outils comme ARPWNER ou ETTERCAP permettent de polluer


le cache dun serveur DNS.
http://www.darknet.org.uk/2013/02/arpwner-arp-dns-poiso-
ning-attack-tool/
http://www.thegeekstuff.com/2012/05/ettercap-tutorial/

Comment protger le cache dun serveur DNS Windows ?

1. La rponse DNS reue par le serveur doit disposer du


mme identifiant de 16 bits que la requte DNS gnre par le serveur
DNS. Cette protection est native dans le protocole DNS.

2. Le port cible et ladresse IP cible de la rponse DNS


doivent correspondre au port source et ladresse IP source de la re-
qute DNS du serveur DNS. Cette option correspond au paramtre
SocketPoolSize qui est activ par dfaut sur tous les serveurs DNS
Windows depuis la dcouverte de la vulnrabilit MS08-037 (https://
technet.microsoft.com/library/security/ms08-037).
La commande Dnscmd /Info /SocketPoolSize permet dafficher le
nombre de ports sources diffrents que le serveur DNS peut utiliser :

La commande dnscmd /Config /SocketPoolSize 3000 permet de dfinit


un pool de 3000 ports sources diffrents.

43
Pour plus dinformations sur ce rglage :
http://technet.microsoft.com/fr-fr/library/ee649174(v=ws.10).
aspx
3. Loption Secure cache against pollution permet aussi de
limiter le risque de pollution du cache DNS et se configure (active
par dfaut) au niveau des proprits du serveur DNS. Je vous invite
lire larticle http://support.microsoft.com/kb/316786 pour plus din-
formations sur cette option.

4. Les serveurs DNS Windows Server 2008 R2 (et versions


ultrieures) permettent de bloquer le changement pour une entre DNS
dans le cache pendant une priode de temps qui correspond un pour-
centage de la dure de vie de lentre DNS (Time to Live ou TTL).
Dans lexemple ci-dessous la dure de vie de lentre DNS CXCIRSE-
VEN-PC.msreport.be est de 20 minutes.

44
Cette option correspond au paramtre Cache Locking. Une procdure
de configuration est disponible cette adresse http://technet.micro-
soft.com/fr-fr/library/ee649148(v=ws.10).aspx.

1.5.4.4 Activer DNS SEC sur toutes les zones DNS.

Le principal dfaut du service DNS est quil ne permet pas dauthen-


tifier le client et le serveur DNS. Le service DNS est donc vulnrable
des attaques comme la pollution du cache DNS mme si les mca-
nismes prsents dans les parties prcdentes sont implments. Une
nouvelle extension du protocole DNS appel DNSEC a donc t mise
en uvre et permet de rellement scuriser le service DNS. Elle est
disponible dans les services DNS de Windows 2008 R2 (et versions
ultrieures).
DNSEC sactive au niveau du serveur DNS et de chaque zone DNS.
Les zones DNS protges apparaissent avec un cadenas. Microsoft
propose un guide pour implmenter DNSEC :
http://technet.microsoft.com/fr-fr/library/hh831411.aspx

45
On obtient le rsultat ci-dessous :

Pour plus dinformations sur DNSSEC :


http://technet.microsoft.com/fr-fr/libra -
ryee649205%28v=ws.10%29.aspx
http://blogs.msmvps.com/vista/2012/11/22/windows-server-
2012-signer-vos-zones-avec-dnssec/
http://technet.microsoft.com/fr-fr/library/hh831411.aspx
http://www.labo-microsoft.org/articles/DNSSECPRES/2/De-
fault.asp#_Toc277269110

46
1.6 ELEVATION DE PRIVILEGE AVEC LUTILISATION DU
SID HISTORY

1.6.1 PROCEDURE POUR FAIRE UNE AUGMENTATION DE PRIVILEGE


AVEC LE SID HISTORY

Dans cet exemple nous disposons de 2 forts :

TPO.NET : la fort dispose dun domaine et est configure en mode


natif 2008 R2
MSREPORT.BE : la fort dispose dun domaine et est configure en
mode natif 2008 R2

Notre objectif est de migrer le SID de lutilisateur TPO\melanie.


mathieu vers lattribut SID History de lutilisateur msreport\ti-
grou.mathieu. Tigrou MATHIEU disposera ainsi de tous les accs de
lutilisateur Mlanie MATHIEU (lvation de privilge).
Lattribut SIDHistory est protg par le systme dexploitation. Un
membre du groupe Domain Admins na pas le droit dajouter ou sup-
primer un SID History (voir message derreur ci-dessous).
Lattribut SIDHistory est un tableau qui peut contenir plusieurs SID.

Pour ajouter un SID dans lattribut SID History, nous allons utiliser le
script SIDCloner disponible cette adresse :
https://code.msdn.microsoft.com/windowsdesktop/SIDClo-
ner-add-sIDHistory-831ae24b

47
1.6.1.1 Configurer la rsolution de nom DNS

Crer une premire zone STUB pour la zone msreport.be. Intgrer


cette zone au niveau de la ForestDNSZones (rplique sur tous les
contrleurs de domaine de la fort TPO.NET).
Crer une seconde zone stub pour la zone _msdcs.msreport.be (mme
configuration que pour la zone msreport.be). Un pas pas est dispo-
nible cette adresse http://support.microsoft.com/kb/308201.
Vrifier que tous les serveurs DNS du domaine TPO.NET
(contrleurs de domaine) peuvent maintenant rsoudre les en-
tres DNS de la zone DNS msreport.be et _msdcs.msre-
port.be. Vous pouvez pour cela utiliser loutil NSLOOKUP

Configurer le service DNS pour que les contrleurs du domaine msre-


port.be rsolvent les entres DNS tpo.net
Le principe est le mme qu ltape prcdente. Vous devez crer
deux zones STUB tpo.net et _msdcs.tpo.net que vous intgrez dans
lannuaire au niveau de la partition ForestDnsZones.

1.6.1.2 Crer de la relation dapprobation inter-forts

Dans cet exemple, nous crerons une relation dapprobation inter-fo-


rts sans authentification slective. Se connecter sur le PDC Emulator
du domaine msreport.be et lancer la console Active Directory Domain
and Trust.
Faire un clic droit sur le nom du domaine (msreport.be) dans cet
exemple et cliquer sur New Trust.
Entrer le nom du domaine approuver (tpo.net).
Choisir un Forest Trust.
Slectionner ensuite Two-Way pour que la relation dapprobation soit
cre sur les 2 domaines.
48
Il faut sauthentifier dans le domaine approuv.
Dans notre cas, on ne va pas activer lauthentification slective. Il faut
donc slectionner Forest-wide authentication.
Les utilisateurs de la fort tpo.net seront donc membres du groupe Au-
thenticated users dans la fort msreport.be et inversement.

49
Active Directory dtecte les suffixes UPN du domaine approuv. Les
suffixes UPN sont des noms de domaine alternatifs. Il est ainsi possible
davoir un UserPrincipalName (login) qui correspond son adresse
email. Les utilisateurs peuvent alors ouvrir leur session avec leur
adresse email comme login et leur mot de passe.
Confirmer ensuite la relation dapprobation (entrante et sortante).

1.6.1.3 Dsactiver le filtrage des SID et activer le SID History

Il est maintenant ncessaire de dsactiver le filtrage des SID et dac-


tiver le SID History au niveau de la relation dapprobation. Microsoft
a mis en place le filtrage des SID (activ par dfaut) pour lutter contre
les lvations de privilges avec le SID History (ce que lon est en
train de faire).

Quand le filtrage des SID est activ, les SID contenus dans lattribut
SID History sont ignors.
La dsactivation du filtrage des SID History abaisse donc fortement le
niveau de scurit de votre annuaire Active Directory. Cette option est
cependant ncessaire dans le cadre des projets de fusion de 2 domaines
Active Directory avec des outils comme Microsoft ADMT ou Dell Mi-
gration Manager for Active Directory.
Exemple : vous souhaitez migrer les ressources du domaine tpo.net
(comptes utilisateurs, comptes ordinateurs, groupes, stations de travail
et serveurs membres du domaine) dans le domaine msreport.be.

Pour dsactiver le filtrage des SID History, et activer le SID


History :
Taper les commandes suivantes sur le contrleur de domaine PDC
Emulator du domaine tpo.net :
netdom trust msreport.be /domain:tpo.net /quarantine:No /
usero:administrator /passwordo:XXXXX
netdom trust msreport.be /domain:tpo.net /EnableSidHisto-
ry:Yes /usero:administrator /passwordo:XXXXX

Taper les commandes suivantes sur le contrleur de domaine PDC


Emulator du domaine msreport.be :
netdom trust tpo.net /domain:msreport.be /quarantine:No /
usero:administrator /passwordo:XXXXX
netdom trust tpo.net /domain:msreport.be /EnableSidHisto-
ry:Yes /usero:administrator /passwordo:XXXXX

On notera que si vous disposez de contrleurs de domaine installs en


franais, il y a une erreur de traduction dans la commande. Vous devez
50
taper les commandes :
netdom trust msreport.be /domain:tpo.net /quarantine:Non /
usero:administrator /passwordo:XXXXX
netdom trust msreport.be /domain:tpo.net /EnableSidHisto-
ry:Oui /usero:administrator /passwordo:XXXXX

1.6.1.4 Configurer les contrleurs de domaine

Comme les contrleurs des domaines tpo.net et msreport.be sont sous


Windows 2008 R2 et Windows 2012 R2, il nest pas ncessaire de
crer lentre de registre TCPIpClientSupport comme indiqu dans la
documentation dADMT.
If you are migrating from a domain with domain controllers that run
Windows Server 2003 or later to another domain with domain control-
lers that run Windows Server 2003 or later, the TcpipClientSupport
registry entry does not have to be modified.

Le groupe de domaine local TPO$$$ a t cr dans le conteneur Users


du domaine tpo.net.
Configurer la Default Domain Controller Policy dans les domaines
msreport.be et tpo.net avec les paramtres daudit suivant comme de-
mand dans la documentation dADMT.
Audit account management: cocher les cases Success et Failure.
Audit directory service access: cocher la case Success.
Sur les contrleurs de domaine Windows 2012, il faut aussi le faire au
niveau des GPO locales du serveur (gpedit.msc). Dans le cas contraire
le script PowerShell SIDCLONER choue avec lerreur The operation
requires that destination domain auditing be enabled. ADMT dtecte
le problme et propose de le corriger lors de la migration dun utili-
sateur.

51
1.6.1.5 Crer un compte service-admt dans le domaine tpo.net

Crer le compte service-admt dans le domaine source (tpo.net). Cet


utilisateur doit tre membre du groupe Domain Admins dans le do-
maine source et doit tre configur pour que son mot de passe nexpire
jamais. Au niveau du domaine cible (msreport.be), ajoutez lutilisateur
tpo\service-admt dans le groupe msreport\Administrators.

1.6.1.6 Utiliser SIDCLONER pour ajouter un SID History

Copier le SID de TPO\melanie.mathieu vers lutilisateur msreport\ti-


grou.mathieu.
Ouvrir une session avec le compte service-admt@tpo.net (tpo\ser-
vice-admt) sur le contrleur de domaine avec le rle PDC Emulator du
domaine msreport.be.

Tlcharger et installer Visual C++ Redistributable for Visual Studio


2012 Update 4 :
https://www.microsoft.com/en-us/download/details.as-
px?id=30679
Crer le dossier C:\_adm.
Copier le fichier SIDCloner.dll (SIDCloner_binaries.zip) depuis le site
web ci-dessous et le mettre dans le dossier C:\_adm. Prendre la version
X64.
https://code.msdn.microsoft.com/windowsdesktop/SIDClo-
ner-add-sIDHistory-831ae24b
Crer le fichier c:\_adm\identities.csv et lditer avec Notepad. Ce fi-
chier doit tre spar par des virgules et tre au format suivant :
sourceDomain,sourceSAMAccountName,targetSAMAccount-
Name
tpo.net,melanie.mathieu,tigrou.mathieu
Crer le fichier vide c:\_adm\CloneFailed.csv
Cliquer le bouton Unblock au niveau des proprits du fichier SIDClo-
ner.dll.

Le site web https://code.msdn.microsoft.com/windowsdesktop/


SIDCloner-add-sIDHistory-831ae24b propose un exemple de script.
Le code a t simplifi.

Crer le fichier C:\_adm\script.ps1 et lditer avec Notepad. Taper


le code suivant :

52
param(
[parameter(Mandatory = $false)]
[String]$inFile
)
$errorPreference=Continue
#constants
$targetDomain=msreport.be
[System.Reflection.Assembly]::LoadFile(c:\_adm\SIDClo-
ner.dll) | Out-Null
#process parameters
#customize file/folder names
if([String]::IsNullOrEmpty($inFile)) { $inFile = c:\_adm\iden-
tities.csv }
#clear the log file
if([System.IO.File]::Exists(c:\_adm\CloneFailed.csv)) {
Remove-Item -path .\Log\CloneFailed.csv
}
$data=import-csv $inFile
## authenticate using implicit credentials
$i=-1
foreach($record in $data) {
try {
$i++
#uses credentials of logged-on user (or credentials
stored in Credentials Manager); works against PDC in both
domains
[wintools.sidcloner]::CloneSid(
$record.sourceSAMAccountName,
$record.sourceDomain,
$record.targetSAMAccountName,
$targetDomain
)
Write-Host Account $($record.sourceDomain)\$($re-
cord.sourceSAMAccountName) cloned
}
catch {
Write-Warning -message:Account $($record.source-
Domain)\$($record.sourceSAMAccountName) failed to
clone`n`tError:$($($_.Exception).Message) $($record.
sourceSAMAccountName),$($record.sourceDomain),$($re-
cord.targetSAMAccountName) >> c:\_adm\CloneFailed.
csv
}

53
Vous devez obtenir le rsultat suivant :

Lancer PowerShell en tant quadministrateur et excuter le script c:\_


adm\script.ps1.
Le compte de tigrou.mathieu doit maintenant avoir comme SID Histo-
ry le SID de lutilisateur tpo\melanie.mathieu.

54
1.6.2 POUR SUPPRIMER LE SID HISTORY

Tlcharger les outils ADFIND et ADMOD et les installer dans le dos-


sier c:\_adm sur le serveur ADMT.
http://www.joeware.net/freetools/tools/adfind/
http://www.joeware.net/freetools/tools/admod/

Lancer la commande suivante pour supprimer le SID History pour


lutilisateur tigrou.mathieu.
C:\_adm\adfind.exe -b CN=Tirgrou Mathieu,OU=Tec-
hdays,DC=msreport,DC=be sidhistory -adcsv | c:\_adm\Ad-
Mod.exe -sc csh unsafe

55
2 LES BONNES PRATIQUES POUR DELEGUER
LADMINISTRATION DE SON ANNUAIRE

2.1 LES PRINCIPES FONDAMENTAUX DE LA DELEGA-


TION DADMINISTRATION

2.1.1 LES DIFFERENTS TYPES DADMINISTRATION ACTIVE DIREC-


TORY

Il existe de 2 grandes familles dadministrateurs Active Directory :

Les administrateurs du service Active Directory :


Ces personnes sont en charge du fonctionnement de lannuaire Active
Directory et de son volution. Ils soccupent de ladministration des
contrleurs de domaine, de la supervision de lannuaire (validation
du fonctionnement des contrleurs), de la sauvegarde de lannuaire et
des projets dvolutions fonctionnelles de cet annuaire (migration des
contrleurs de domaine vers Windows 2012 R2).
Ils ne grent pas le contenu de lannuaire (pas de gestion des comptes
utilisateurs, groupes, comptes ordinateurs, objets de stratgie de
groupe). Seuls les administrateurs du service Active Directory
doivent disposer des privilges importants sur lannuaire. Un admi-
nistrateur du service Active Directory dispose en gnral dun compte
dadministration nominatif membre de groupes comme Domain Ad-
mins et dun compte utilisateur standard (pour accder Internet et aux
applications de lentreprise).

Les administrateurs du contenu de lannuaire Active Directory :


Ces personnes sont en charge de ladministration des donnes de lan-
nuaire Active Directory (comptes utilisateurs, groupes, comptes ordi-
nateurs, objets de stratgie de groupes). Ils doivent disposer des droits
les plus limits possibles sur lannuaire Active Directory. Un adminis-
trateur du contenu de lannuaire Active Directory dispose en gnral
dun compte dadministration nominatif avec des privilges restreints
sur certaines OU et dun compte utilisateur standard (pour accder
Internet et aux applications de lentreprise).

56
2.1.2 LES GROUPES AVEC DES PRIVILEGES DADMINISTRATION

Par dfaut, lorsquun domaine est cr, les utilisateurs et groupes dad-
ministration prsents dans le tableau ci-dessous sont crs.

Ces groupes disposent de permissions trs importantes sur lannuaire.


Seuls les comptes des administrateurs du service Active Directory
doivent tre membres de ces groupes.
Il est aussi important de noter que les applications comme Exchange,
SCCM et Lync crent leurs propres groupes de scurit qui disposent
aussi de droits trs importants sur lannuaire. Les membres de ces
groupes sont donc aussi superviser.

57
Le script suivant permet de lister les membres directs et indirects des
principaux groupes dadministration Active Directory.
# For non US domain controller, please change the content
of $GroupsToManage
# Import Active Directory module
Import-Module ActiveDirectory
# Variables
$Users = @()
$ResultFile = c:\scripts\admins_accounts.txt
# List of groups managed by the solution
$Groups = @(Account Operators,Administrators,-
Backup Operators,Domain Admins,Domain Control-
lers,Enterprise Admins,Print Operators,Read-only
Domain Controllers,Schema Admins)
# List al users members of $Groups
ForEach ($Group in $Groups)
{
$Users += (Get-ADGroupMember -Identity $Group -Recur-
sive)
}
$Users = $Users | Sort-Object -Unique | Select-Object Sa-
mAccountName,ObjectClass,Sid
# Generate results files

$Resu = @{}
echo $Resu | Out-File $ResultFile
Foreach ($user in $Users)
{
foreach ($Group in $groups)
{
if (Get-ADPrincipalGroupMembership $($user.SamAc-
countName) | Where {$_.Name -eq $Group})
{
$Resu[$Group]= $True
}
else
{
$Resu[$Group]= $False
}

$Resu[User]= $($User.SamAccountName)
echo $Resu | Out-File -Append $ResultFile
}

58
2.1.3 COMMENT AUTORISER UN UTILISATEUR STANDARD A GERER
CERTAINS OBJETS DANS LANNUAIRE ACTIVE DIRECTORY

Le but est de ne pas ajouter cet utilisateur standard dans des groupes
avec des privilges dadministration important. Les objets dans Ac-
tive Directory disposent de permissions. Il est possible de visualiser
ces permissions dans longlet Security dun objet. Il faut configurer la
console Active Directory Users and Computers en mode daffichage
Advanced features pour cela.

Pour visualiser les permissions sur un objet, aller dans les proprits de
cet objet, puis dans longlet Security. Cliquer sur le bouton Advanced.
Chaque objet Active Directory dispose de permissions.
Il est possible de dlguer pour chaque classe dobjet (utilisateur,
groupe, units dorganisation, objets de stratgie de groupe, entre
DNS, zone DNS) le droit de Lire ou Ecrire sur chaque attribut de
cette classe dobjets. Cette dlgation dadministration peut tre effec-
tue au niveau du domaine, dune unit dorganisation ou directement
sur un objet (compte utilisateur, groupe).
59
Il est par exemple possible avec Active Directory de dlguer lquipe
RH le droit de mettre jour uniquement les attributs EmployeeID, Em-
ployeeType au niveau dune OU spcifique.
Prenons maintenant un cas un peu plus complexe :
Vous souhaitez dlguer des administrateurs du contenu de lan-
nuaire le droit de crer, modifier, supprimer et grer toutes les pro-
prits (tous les attributs) des comptes utilisateurs au niveau dune OU
appele Techdays.
Pour effectuer cette action, vous devez donc :

Crer un groupe appel GG_Helpdesk_Techdays.


Dlguer le droit de crer, supprimer des objets enfants pour la
classe organizationalUnit (objet unit dorganisation).
Dlguer le droit Contrle total pour la classe User (objets compte
utilisateur).

60
Dans lexemple ci-dessus This objects and all descendants objets cor-
respond lunit dorganisation (OU) Techdays et toutes les OU dans
cette OU.
Descendant User objets correspond tous les comptes utilisateurs
dans lOU Techdays.
On voit dans les captures ci-dessous que le groupe GG_Helpdesk_Tec-
hdays a uniquement le droit de crer et supprimer des comptes utilisa-
teurs dans lOU Techdays (et dans toutes ses sous OU).

On voit dans les captures ci-dessous que le groupe GG_Helpdesk_Tec-


hdays a aussi tous les droits sur les attributs de la classe User.

61
Microsoft fournit lassistant Delegation of Control pour simplifier
la mise en uvre de la dlgation de contrle. Les captures dcran
ci-dessous montrent la procdure appliquer.

62
63
2.1.3.1 Les WellKnown Security Principals

Il existe de nombreux groups / comptes spciaux appels WellKnown


Security Principals ou en franais Entits de scurits connus. Ces en-
tits disposent dun SID standard et spcifique.
http://support.microsoft.com/kb/243330/en-us
http://technet.microsoft.com/en-us/library/cc779144(v=ws.10).
aspx
Le groupe prdfini Authenticated users dispose du SID S-1-5-11. Les
appartenances ce groupe sont gres par le systme et ne peuvent
pas tre modifies manuellement. Ce groupe contient tous les utilisa-
teurs et ordinateurs qui ont ouvert une session au niveau de tous les
domaines dune fort Active Directory et qui ont ouvert une session
avec un compte utilisateur de la base SAM (base locale) lexception
du compte Invit (Guest).
Il est possible dassigner des permissions NTFS ce groupe ou de
lajouter dans un groupe de la base SAM locale dune machine.
Il nest pas possible dajouter Authenticated users en tant que membre
dun groupe local, global ou universel cre par un administrateur.

Authenticated Users dispose dun trs grand nombre de privilges sur


les stations de travail Windows. Par dfaut, il permet douvrir une ses-
sion localement sur toutes les machines membres du domaine et des
domaines approuvs car il est membre du groupe Users de la base

64
SAM. Hors ce groupe Users a le droit douvrir une session sur les
machines membres du domaine.

Par dfaut Authenticated Users dispose aussi de droits trs importants


sur le systme de fichiers dune machine Windows 7.

Si vous crez un nouveau dossier C:\Msreport, Authenticated


users a le droit Modify sur ce dossier : http://searchwindowsser-
ver.techtarget.com/news/1195097/Foreign-security-princi-
pals-and-the-Active-Direcory-architecture

Le groupe Authenticated Users se trouve dans le conteneur WellKnow


Security Principal de la partition de configuration (qui est rplique
sur tous les domaines de la fort). Ce groupe est donc commun tous
les domaines de la mme fort.

65
Il se trouve aussi dans le conteneur ForeignSecurityPrincipal. Cet objet
permet dtendre le contenu du groupe Authenticated users tous les
comptes utilisateurs et ordinateurs qui ont ouvert une session sur un
domaine approuv (sans authentification slective).

Cest entre autre cause du groupe Authenticated Users que Mi-


crosoft dfinit maintenant la fort comme seule limite de scurit.

Les relations dapprobation avec authentication slective permettent


de ne pas tendre les membres du groupe Authenticated users aux
utilisateurs dun domaine approuv. Pour cela, les 2 forts qui sap-
prouvent doivent tre en mode natif 2003.

2.2 DELEGUER LADMINISTRATION AVEC LES UNITES


DORGANISATION

Afin de dlguer ladministration aux diffrentes quipes dadminis-


trateurs du contenu Active Directory, il est ncessaire de concevoir une
topologie dunits dorganisation (OU) qui soit le reflet de lorganisa-
tion de la socit.
Si vous disposez dune quipe informatique autonome sur chaque site
de la socit, vous pouvez crer une OU pour chaque site de votre so-
cit et dlguer des droits sur chaque OU lquipe informatique en
charge de cette OU (de ce site).
Si vous souhaitez dlguer ladministration de certains comptes /
groupes des responsables de services, vous pouvez crer une OU
pour chaque service.

2.3 CREER DES COMPTES NOMINATIFS ET DEDIES


POUR LADMINISTRATION

Il est fondamental de crer des comptes utilisateurs ddis ladmi-


nistration de lannuaire. Ces comptes doivent tre nominatifs pour
pouvoir tracer les changements effectus par chaque administrateur.
Louverture de session avec un compte dadministration ne devrait tre
possible que sur des machines scurises et ddies ladministra-
tion de lannuaire. Si possible, louverture de session locale avec un
compte dadministration doit tre bloque sur les autres machines de
lentreprise.

66
Pour cette raison, les quipes dadministration disposent en gnral de
deux comptes :
Un compte pour se connecter sur les machines dadministration. Les
outils dadministration de lannuaire Active Directory doivent tre
installs sur ces machines.
Un compte standard sans aucun privilge dadministration sur lan-
nuaire pour accder la messagerie, Internet et autres applications de
lentreprise.

Pour restreindre les machines sur lesquels les utilisateurs peuvent


ouvrir une session avec leur compte dadministration, il est pos-
sible dutiliser les solutions suivantes :

Aller dans les proprits du compte utilisateur dadministration au


niveau de longlet Account puis cliquer sur le bouton Log on To et
cocher la case The following computers. Entrer la liste des machines
o lutilisateur peut ouvrir sa session (jusqu 1024 machines). Cette
mthode empche louverture de session en locale mais lutilisateur
peut toujours accder des machines non autorises via le rseau (ac-
cs aux partages).
Une alternative cette mthode est de configurer le paramtre de GPO
Deny logon locally un groupe dutilisateurs reprsentant tous les
comptes dadministration et dappliquer cette GPO sur toutes les ma-
chines du domaine sauf les machines dadministration.
Cette mesure est ncessaire car les attaques NTLM Pass The Hash et
Vol de jeton daccs (avec INCOGNITO) peuvent permettre un at-
taquant de rcuprer les accs de tous les comptes utilisateurs qui ont
ouvert une session sur une machine (do le besoin de scuriser les
machines dadministration).

2.4 DELEGUER UNIQUEMENT LES PERMISSIONS RE-


QUISES

Comme indiqu prcdemment, vous devez dlguer le minimum de


droits aux quipes en charge de ladministration du contenu de lan-
nuaire.
Plus vous dlguez de droits, plus vous augmenter le risque quun at-
taquant augmente ces privilges en compromettant une station dadmi-
nistration et en utilisant des attaques comme NTLM Pass The Hash et
Vol de jeton daccs (avec INCOGNITO).

67
2.5 DESACTIVER LE COMPTE INVITE ET RENOMMER
LE COMPTE ADMINISTRATOR

Le compte invit doit tre dsactiv. Les bonnes pratiques de scurit


recommandent de renommer voir de dsactiver le compte administra-
teur par dfaut. Le renommer un impact faible car ce compte dispose
dun SID spcifique (termine par 500) et savre donc facile retrou-
ver.

Dsactiver le compte administrateur peut savrer une erreur sur-


tout si vous activez le verrouillage des comptes. En effet, le compte
administrateur (cr par le systme) est le seul ne pas pouvoir tre
verrouill.

2.6 AUDITER LES PERMISSIONS SUR LES OBJETS AC-


TIVES DIRECTORY

Il est possible dauditer les permissions sur lannuaire Active Direc-


tory avec la console Active Directory Users and Computers, Active
Directory Administrative Center, avec loutil DSACLS.EXE ou avec
la commande PowerShell Get-ACL. Je vous invite lire ces deux ar-
ticles si vous souhaitez crer des scripts pour auditer les permissions
de votre annuaire :
http://blogs.technet.com/b/heyscriptingguy/ar-
chive/2012/03/12/use-powershell-to-explore-active-directo-
ry-security.aspx
http://windowsitpro.com/active-directory/view-remove-ad-de-
legated-permissions

68
LANSI propose aussi une rponse cette problmatique avec son ou-
til AD-Permissions :
http://www.ssi.gouv.fr/IMG/pdf/Audit_des_permissions_en_en-
vironnement_Active_Directory_article.pdf
Les sources dinstallation de loutil AD-Permission sont dispo-
nibles cette adresse :
https://github.com/ANSSI-FR/AD-permissions

2.7 AUDITER LES PERMISSIONS DE LOBJET


ADMINSDHOLDER

Active Directory dispose dun mcanisme appel AdminSDHolder


pour protger les permissions dfinies sur les groupes sensibles : Ac-
count Operators, Administrator, Administrators, Backup Operators,
Domain Admins, Domain Controllers, Enterprise Admins, Krbtgt,
Print Operators, Read-only Domain Controllers, Replicator , Schema
Admins et Server Operators.

Le principe ?
Quand un objet est dfini comme protg, lattribut AdminCount est
dfini 1 au niveau de cet objet.
Lhritage des permissions des objets parents dans lannuaire Active
Directory est alors dsactiv. Une tche planifie appele SDPROP
va recopier toutes les 60 minutes (intervalle configurable) les permis-
sions dfinies sur un objet modle appel AdminSDHolder au niveau
de chaque objet protg (comme le groupe Domain Admins).
Lobjet AdminSDHolder se trouve dans le conteneur SYSTEM la
racine de chaque domaine Active Directory.

69
Si on ajoute un utilisateur dans le groupe protg comme Domain
Admins, ce dernier est alors protg aussi. SDPROP va rinitialiser
les permissions de cet objet. On constate dans lexemple ci-dessous
que lobjet guillaume.mathieu (membre du groupe Domain Admins)
ne dispose daucune permission hrite et que ce dernier a les mmes
permissions que lobjet AdminSDHolder. Lobjet guillaume.mathieu a
aussi lattribut AdminCount la valeur 1.

70
Il est possible de dfinir quel intervalle de temps sexcute la tche
SDPROP en modifiant lentre de registre suivante :
HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters.\Ad-
minSDProtectFrequency
Microsoft fournit aussi une procdure pour lancer SDPROP manuel-
lement :
http://support.microsoft.com/kb/251343/en-us
Il est noter que lorsquun compte nest plus membre dun groupe
protg, lattribut AdminCount reste 1 et lhritage des permissions
nest pas rappliqu. Il faut alors ractiver lhritage manuellement au
niveau des permissions de lobjet. Ce problme est dcrit dans larticle
Microsoft suivant :
http://support2.microsoft.com/kb/817433/en-us

Il est possible de configurer AdminSDHolder pour ne pas protger


certains groupes. Pour cela, il faut modifier lattribut dSHeuristics de
lobjet AdminSDHolder. Pour plus dinformations :
http://support2.microsoft.com/kb/817433/en-us

Pour plus dinformations sur AdminSDHolder et SDPROP :


http://technet.microsoft.com/fr-fr/magazine/2009.09.sdadmin-
holder.aspx

71
2.8 ACTIVER LA VEILLE ECRAN AVEC MOT DE PASSE

Il est recommand dactiver la veille cran automatique avec mots de


passe au bout de 5 10 minutes dinactivit. Il nest pas rare quun
administrateur oublie de verrouiller sa session. Il est possible de confi-
gurer lcran de veille sur les machines du domaine laide dun pa-
ramtre de GPO dans User Configuration | Policies | Administrative
Templates | Control Panel | Personalization.

Vous devez obtenir le rsultat ci-dessous.

2.9 DESACTIVER LES COMPTES INACTIFS

Il est ncessaire de dsactiver les comptes utilisateurs inactifs. En g-


nral, les plus longues absences durent 6 mois soit 180 jours. Cette
opration est normalement la charge des quipes dadministrateur du
contenu de lannuaire. Cependant chez de nombreux clients, la gestion
des dparts pour les prestataires est une tche trs complexe. Souvent
les comptes de prestataires ne sont pas dsactivs. Pour cette raison,
lquipe en charge de ladministration du service Active Directory doit
effectuer un contrle sur les comptes actifs mais non utiliss.

La solution propose ci-dessous permet de dsactiver automatique-


ment les comptes utilisateurs et permet de gnrer un fichier de sor-
tie. Elle fonctionne avec des contrleurs de domaine Windows 2003
et versions ultrieures. Elle sappuie sur le module PowerShell Quest
ActiveRoles Management Shell. Je vous invite utiliser le plugin en
version 1.5 ou 1.6 pour les gros annuaires car il y a une problmatique
de fuite mmoire avec la version 1.7 quand vous devez charger un
annuaire avec plus de 10000 entres.

72
Procdure de dploiement :
Installer sur une machine membre du domaine le module PowerShell
Quest ActiveRoles Management Shell. Ce module peut tre tlcharg
ladresse suivante : http://software.dell.com/fr-fr/trials/#a
Crer le fichier c:\_adm\scripts\DisableUnusedAccount-180days.
ps1 sur un serveur.
Lancer PowerShell ISE et copier le code ci-dessous.
Configurer la variable $datelimit et crer une tche planifie pour lan-
cer ce script.

# Ce script dsactive les comptes utilisateurs si :


# 1. Le compte utilisateur ne sest pas connect depuis plus
de 180 jours (bas sur lattribut LastLogonTimeStamp), si
lattribut LastLogonTimeStamp nest pas vide.
# 2. LastLogonTimeStamp est vide mais le compte a t
cr depuis plus de 180 jours (attribut WhenCreated)
# 3. Ne dsactive pas les compte qui ont comme valeur
dans le champ Description Compte de service ****
# Ajoute les commandes PowerShell Quest
Add-PSSnapin Quest.ActiveRoles.ADManagement
# Connexion sur le contrleur de domaine MSREPORTDC1
Connect-QADService MSREPORTDC1
# Configure Powershell pour afficher au maximum 100000
rsultats
Set-QADPSSnapinSettings -DefaultSizeLimit 100000
# ================ VARIABLES
===========================
$date = Get-Date
$datelimit = $date.AddDays(-180)
$SCOPESEARCH = OU=utilisateurs,DC=msreport,DC=in-
tra
# ======================================
================
# Gnre la liste des comptes dsactiver:
$DATABASE = Get-QADuser -enable -SearchRoot
$SCOPESEARCH | Where-Object {($_.LastLogonTimestamp
-le $datelimit -AND $_.LastLogonTimestamp -ne $null) -OR
($_.whenCreated -le $datelimit -AND $_.LastLogonTimes-
tamp-eq $null)} | Select-Object DN,Description,Name,Dis-
playName,Email,SamAccountName,LastlogonTimeStam-
p,whencreated
# Gnre un fichier rsultat en se basant sur la date du jour.
$fileresult = C:\_adm\Disable-account\Comptes-desac-
tives\Comptesdesactives- + $((get-date).tostring(dd-MM-
yyyy))+.csv
#echo $fileresult

73
# Create headears of the report file
Echo DN;Name;DisplayName;SamAccountName;E-
mail;LastLogonTimeStamp (Format FR);WhenCreated
(Format FR) | Out-file -FilePath $fileresult -Encoding ASCII
# Generate report, update description field and disable
account
foreach ($user in $DATABASE)
{
$newdescription =
# Analyse et mise jour du champ description
if ($($user.description) -notlike *Compte de service*)
{
# Ajoute une nouvelle ligne au fichier rsultat
if ($user.LastlogonTimeStamp -ne $null)
{
$UserLastLogonTimeStamp = ($($user.LastlogonTimeS-
tamp).tostring(dd-MM-yyyy))
}
$UserWhenCreated = ($($user.whencreated).tostring(dd-
MM-yyyy))
echo $($user.DN);$($user.Name);$($user.Display-
Name);$($user.SamAccountName);$($user.Email);$UserLast-
LogonTimeStamp;$UserWhenCreated | Out-File -FilePath
$fileresult -append
# Dsactive le compte utilisateur
Disable-QADUser -Identity $($user.SamAccountName)
if (($($user.description)).length -lt 1024)
{
$newdescription = Ce compte a t dsactiv le +
$((get-date).tostring(DD-MM-yyyy)) + par votre adminis-
trateur - + $($user.description)
# Modification de la valeur du champ description
Set-QAduser -Identity $($user.SamAccountName) -Des-
cription $newdescription
}
else
{
$newdescription = Ce compte a t dsactiv le +
$((get-date).tostring(MM-dd-yyyy)) + par votre adminis-
trateur.
# Modification de la valeur du champ description
Set-QAduser -Identity $($user.SamAccountName) -Des-
cription $newdescription
}
}
}

74
2.10 LES OUTILS TIERS QUI PERMETTENT DE SIMPLI-
FIER LA DELEGATION DE LADMINISTRATION

Active Directory permet nativement de dlguer des permissions sur


lannuaire de manire trs fine. Il existe de nombreux outils comme les
consoles dadministration, PowerShell, les scripts HTA pour pouvoir
dlguer ladministration de lannuaire des utilisateurs non informa-
ticiens. Ces outils ne permettent cependant pas :

De disposer dun suivi des changements effectus sur les objets


(compte utilisateur, groupe, OU).
De grer lappartenance des groupes de scurit en fonction de
lemplacement de lutilisateur dans lOU.
De disposer dune console web pour administrer Active Directory.
Dimposer un formalisme dans la saisie des champs (champs obli-
gatoires, format de saisi du numro de tlphone).
Dexcuter des scripts pour excuter des tches complmentaires.
Lorsquun utilisateur supprime un compte, il nest pas possible de
supprimer automatiquement son rpertoire personnel, sa bote aux
lettres par exemple. Ces actions doivent tre effectues manuelle-
ment.
De ncessiter lapprobation dun tiers pour effectuer un changement
sur un objet Active Directory.

Loutil Dell ActiveRoles Server 6.9 (ARS 6.9) intgre les fonction-
nalits suivantes pour rpondre ces besoins :

Les groupes dynamiques : ajout dune ressource dans un groupe


selon la valeur dun attribut ou selon lemplacement de lutilisateur
(chemin LDAP). Cette fonctionnalit permet par exemple de donner
un accs lintranet pour tous les utilisateurs internes de la socit
(en se basant sur la valeur de lattribut EmployeeType).

Les groupes temporaires : ajout dun objet un groupe pour une


dure de temps limite. Cela peut permettre de donner des accs
temporaires un prestataire.

Les flux dapprobation (workflows) : une ou plusieurs personnes


peut valider ou non certaines actions effectues sur lannuaire par
dautres personnes. Une action effectue sur un compte utilisateur
peut par exemple dclencher lenvoi dun mail cet utilisateur.

75
Une console web personnalisable : loutil est livr avec une
console MMC (trs difficilement personnalisable) et avec une console
web. Cette dernire peut tre totalement personnalise (modifica-
tions des formulaires de gestion des objets, ajout de commandes).
Prenons le cas dune entreprise qui utiliserait lattribut ExtensionAt-
tribute2 pour stocker les informations de licence Office 365. Cet
attribut nest pas prsent pas dfaut dans les proprits dun compte
utilisateur dans la console Active Directory Users and Computers.

Lhistorique des actions effectues sur un objet et lhistorique


des actions effectues par un compte dadministration : les
responsables seront ravis de pouvoir retrouver la personne qui a ef-
fectu une action spcifique sur lannuaire. Attention pour cela, il est
important de dlguer les droits dadministration de lannuaire quau
travers de Dell ActiveRoles Server (ARS). Les personnes en charge
de ladministration de lannuaire doivent avoir aucun accs via les
outils natifs Microsoft (ne pas rpliquer les permissions ARS dans
lannuaire Active Directory).

76
Les policies (stratgies) : quel DSI na pas rv davoir un an-
nuaire jour avec des informations fiables et respectueuses du forma-
lisme valid. Avec les policies ARS, vous pouvez obliger les quipes
en charge de la gestion de lannuaire saisir certains champs avec un
formalisme particulier (numro de tlphone au format international,
nom de famille en majuscule, champ socit et adresse complts).
ActiveRoles Server permet via le module Script Policies dexcuter
des scripts VBS / PowerShell avant ou aprs la saisie (entre autres)
dun formulaire. Rien ne vous empche de configurer automati-
quement les accs aux applications lors de la cration dun compte
utilisateur (provisionning).

77
Le deprovisionning : ActiveRoles Server dispose aussi de la fonc-
tion de deprovisionning qui va nous permettre de dfinir un certains
nombres de tches effectuer automatiquement quand on veut
supprimer des accs une personne (le compte peut tre dsactiv,
excution dun script qui va supprimer des accs aux niveaux dune
application).

La cration dattribut virtuel : ActiveRoles Server permet de crer


des attributs virtuels. Ces derniers nexistent pas dans lannuaire
Active Directory mais peuvent tre utiliss par les scripts ARS. Vous
pouvez par exemple crer un attribut virtuel Site. Un script Policy
ARS permettra ensuite de complter automatiquement les champs
adresse, ville et pays du compte utilisateur en fonction de la valeur de
ce champ Site.

La dlgation dadministration : cest de loin la fonctionnalit


la plus importante de loutil ActiveRoles Server. Il est possible de
dlguer uniquement des droits aux administrateurs dans loutil Ac-
tiveRoles Server. Ces administrateurs ne disposent pas de droits dans
lannuaire Active Directory. Ils sont donc obligs dutiliser loutil
ActiveRoles Server pour effectuer les tches dadministration. Cette
fonctionnalit permet de garantir que toutes les actions dadminis-
tration seront traces dans loutil. Cela permet aussi de dlguer
des droits de manire trs prcise sans impacter les logiciels qui
sappuient sur lannuaire Active Directory. Vous pouvez par exemple
empcher les utilisateurs HELPDESK de voir les units dorganisa-
tion quils nont pas le droit de grer sans perturber le fonctionnement
dun autre logiciel qui sappuierait sur lannuaire.
Le produit permet de trs nombreuses actions mais prsente les limites
suivantes :

Pour les besoins avancs, il sera ncessaire de crer des scripts


policy ARS. Un SDK explique comment dvelopper ces scripts. Le
dveloppement de ces scripts peut tre long.

Penser sparer la base de donnes de lhistorique, de la base de


donnes de configuration. Cest une case cocher lors de linstalla-
tion.

Des connaissances en SQL sont recommandes surtout si vous sou-


haitez dployer 2 serveurs qui rpliquent les mmes bases de donnes
de configuration et dhistorique

78
3 DEFINIR UNE POLITIQUE DE MOTS DE
PASSE DENTREPRISE

Il ne suffit pas de forcer les utilisateurs utiliser un mot de passe de 24


caractres, avec des caractres spciaux et de les obliger le changer
tous les 30 jours pour disposer dune politique de mots de passe scu-
rise. Avec ce type de politique, les utilisateurs vont tout simplement
crire leur mot de passe en dessous de leur clavier, sur un papier ou
dans leur tlphone portable. Le remde est alors pire que le mal. La
scurisation des mots de passe des comptes utilisateurs est une tche
beaucoup plus complexe qui ncessite :

De lister les besoins et les contraintes de lentreprise au niveau des


mots de passe.

De dterminer comment rduire le nombre de mots de passe que


doivent retenir les utilisateurs.

De comprendre comment et o sont stocks les mots de passe dans


lannuaire Active Directory. Nous verrons comme un administrateur
du domaine peut rcuprer les mots de passe si ces derniers sont
stocks au format LMHASH (cela fonctionne parfois mme avec le
NTHASH).

De connatre les outils de gestion de mots de passe intgrs dans


lannuaire Active Directory.

De connatre les outils tiers qui permettent dtendre les fonctionna-


lits de gestion des mots de passe.

De rduire le nombre de comptes utilisateurs avec loption


Password never expires.

De remplacer les comptes de services (qui disposent de loption


Password Never expires par des Managed Services Account (MSA)
ou des Group Managed Services Account (gMSA).

De lister tous les comptes qui nont pas chang de mots de passe
depuis plusieurs annes.
Comment, pourquoi et o sont stocks les mots de passe sur les
machines du domaine (autres que les contrleurs de domaine).
De dfinir enfin partir de tous ces lments une stratgie de mots
79
de passe cible en coordination avec la direction de lentreprise, les
quipes Helpdesk (en charge de la rinitialisation des mots de passe)
et les reprsentants du personnels.

3.1 ANALYSER LES BESOINS DE LENTREPRISE POUR


LA POLITIQUE DE MOTS DE PASSE

La premire tape fondamentale est de dfinir le besoin de lentreprise


au niveau des mots de passe. Pour cela vous devez vous poser les ques-
tions suivantes :

Les utilisateurs accepteront-ils de disposer dun mot de passe de 10


caractres qui changent tous les 90 ou 120 jours (niveau de scurit
correcte) ? Un accompagnement au changement est-il ncessaire ?
Quels sont les comptes utilisateurs qui disposent de privilges dad-
ministration important sur votre systme dinformation ? Ces comptes
devraient disposer dun mot de passe de 16 caractres au minimum
(24 caractres au minimum pour les comptes de services).
Quel est le niveau de scurit requis par lentreprise ? Lentreprise
a-t-elle des exigences lgales (contrat avec le ministre de la Dfense,
organisation financire) ? Le niveau de scurit est-il homogne pour
tous les services / utilisateurs de lentreprise ?
La complexit des mots de passe sous Active Directory ncessite
un mot de passe de 6 caractres avec un minimum de 3 familles de
caractres parmi les 5 existantes (minuscule, majuscule, chiffre et
caractre spcial, caractre Unicode). Le mot de passe P@ssword
est donc considr comme un mot de passe complexe par Active
Directory. Ce type de mots de passe est-il suffisamment scuris pour
votre entreprise ?
Disposez-vous dune quipe en charge de la rinitialisation des mots
de passe (si lutilisateur a oubli son mot de passe ? Sont-ils dispo-
nibles en 24/7 ?
Comment valider que lutilisateur qui appelle pour rinitialiser son
mot de passe est bien celui quil prtend tre ?
Comment rinitialiser le mot de passe dun utilisateur quand ce
dernier nest pas connect au rseau dentreprise ?
Combien de login / mots de passe diffrents les utilisateurs doivent-
ils retenir ?

Nous verrons dans le paragraphe suivant les outils intgrs Active


Directory, les solutions tierces et les actions mettre en uvre pour
rpondre lensemble des besoins de lentreprise

80
3.2 REDUIRE LE NOMBRE DE LOGIN / MOTS DE PASSE
DIFFERENTS

3.2.1 LIMITER LE NOMBRE DE LOGIN / MOT DE PASSE A RETENIR

Les utilisateurs standards peuvent en moyenne mmoriser un


maximum de 3 login / mots de passe diffrents. Au-del de ce
nombre, on observe les 4 phnomnes suivants :

1. Si les mots de passe expirent tous les 90 / 120 jours et que


la complexit Active Directory est active, les utilisateurs confondent
les diffrents mots de passe. Le taux dappel au support informatique
pour des demandes de rinitialisation de mots de passe augmente for-
tement.
2. Si le verrouillage des comptes utilisateurs est activ, le
taux dappel au support informatique pour dverrouiller les comptes
augmente trs fortement car les utilisateurs saisissent de manire in-
correcte leur mot de passe plusieurs fois.
3. Les utilisateurs crivent leurs diffrents logins / mots
passe sur un papier, un fichier texte ou derrire leur clavier.
4. Les utilisateurs essaient daligner les mots de passe des
diffrents comptes et changent uniquement un caractre lors des chan-
gements de mots de passe.
Tout cela pnalise la productivit de lentreprise et rduit le niveau de
scurit de lentreprise.
Il est donc ncessaire de rduire le nombre de login / mot de passe
quun utilisateur doit retenir.

3.2.2 CONFIGURER VOS APPLICATIONS POUR SAUTHENTIFIER


AVEC ACTIVE DIRECTORY

Les applications mtiers permettent en gnral deffectuer une authen-


tification LDAP sous SSL. Souvent, elles permettent aussi une authen-
tification avec des protocoles comme NTLM ou Kerberos. Nous allons
voir ci-dessous comment permettre serveur Apache sous Linux de
sauthentifier en Kerberos avec des contrleurs de domaine Active
Directory.

81
Sur un contrleur de domaine Active Directory :
Gnrer un fichier Keytab avec la commande suivante :
ktpass /out msreporthttp.keytab /princ HTTP/apache.msreport.
be@MSREPORT.BE /mapuser msreporthttp@MSREPORT.BE
/ptype KRB5_NT_PRINCIPAL /crypto RC4-HMAC-NT /pass
msreporthttppass
Cela va automatiquement crer un ServicePrincipalName (SPN) au ni-
veau du compte utilisateur msreporthttp et gnrer le fichier msrepor-
thttp.keytab requis pour mettre en uvre lauthentification Kerberos.
Nous verrons plus loin dans ce document ce quest un ServicePrinci-
palName.

Sur le serveur Linux / Apache :


Tlcharger et configurer le client Kerberos
Tlcharger et configurer le module Kerberos pour Apache.
Configurer le client NTP pour se synchroniser sur un contrleur de
domaine.
Configurer le serveur Apache pour demander lauthentification et sap-
puyer sur le fichier msreporthttp.keytab gnr sur le contrleur de
domaine.
Pour plus de dtail sur la procdure, je vous invite lire larticle sui-
vant :
https://www.johnthedeveloper.co.uk/single-sign-on-active-di-
rectory-php-ubuntu

3.2.3 UTILISER LE COFFRE-FORT WINDOWS

Si vous disposez dapplication dont le login / mot de passe nexpire


jamais ou rarement (ce nest pas une bonne pratique), vous pouvez
enregistrer le mot de passe dans le coffre-fort de Windows. Lutilisa-
teur ne devra plus saisir le login / mot de passe car il sera enregistr au
niveau du profil de lutilisateur. Le coffre-fort de Windows (Credential
Manager) est accessible depuis le panneau de configuration.

82
3.2.4 UTILISER LES PROTOCOLES DE FEDERATION DIDENTITE

Les DSI sont de plus en plus nombreuses basculer sur des applica-
tions hberges dans le Cloud comme Microsoft Office 365 ou Sales-
Force. Ces solutions prsentent de nombreux avantages mais contri-
buent multiplier le nombre de logins / mots de passe que lutilisateur
doit mmoriser.

Les solutions de fdration didentit (comme Microsoft ADFS ou


Ping Identity) permettent de rpondre cette problmatique en tablis-
sant une relation de configuration entre un annuaire Active Directory
(Identity Provider ou IDP) et une application hberge dans le CLOUD
(Service Provider ou SP). Lavantage de cette solution est que le p-
rimtre de cette relation de confiance est beaucoup plus restreint que
celui dune relation dapprobation entre 2 domaines.

83
3.3 LES OUTILS DE GESTION DE MOTS DE PASSE
MICROSOFT

La stratgie de mots de passe des comptes utilisateurs se configure


plusieurs emplacements :
Au niveau du composant Password Policy de stratgie de groupe
Domain Policy.
Au niveau du container PSO (Password Policy Object).
Au niveau des comptes utilisateurs Active Directory.

Il est ncessaire de comprendre la diffrence entre un changement de


mots de passe et une rinitialisation de mots de passe. Un change-
ment de mots de passe est effectu par un utilisateur. Ce dernier doit
connatre son ancien mot de passe pour effectuer la procdure. Une
rinitialisation du mot de passe est effectue par un administrateur
Active Directory. Ladministrateur na pas besoin de connatre lan-
cien mot de passe de lutilisateur. Le paramtre dhistorique de mot
de passe (voir ci-dessous) est ignor lors dune rinitialisation de mots
de passe.

3.3.1 LES STRATEGIES DE MOTS DE PASSE DE LA DEFAULT DO-


MAIN POLICY

Avec les contrleurs de domaine Active Directory (toutes versions),


les administrateurs peuvent configurer leur stratgie de mots de passe
au niveau de la Default Domain Policy dans Computer Configuration
| Policies | Security Settings | Account Policies | Password Policy. Mi-
crosoft permet de dfinir les critres suivants :

Dure de vie maximum dun mot de passe :


Active Directory dtermine si un mot de passe a expir en fonction
de la valeur de lattribut pwdLastSet (date du dernier changement /
rinitialisation du mot de passe) de la date du jour et de la dure de vie
maximum du mot de passe. Il est noter que lattribut pwdLastSet est
un compteur qui sincrmente depuis le 1 janvier 1601.

84
Lhistorique des mots de passe :
Active Directory va mmoriser un certain nombre danciens mots de
passe dans lattribut ntPwdHistory du compte utilisateur (et lmPwd-
History si le stockage des mots de passe au format LMHASH est ac-
tiv). Lhistorique des mots de passe va empcher un utilisateur de
changer son mot de passe avec un mot passe prsent dans lhistorique.
Un administrateur pourra cependant rinitialiser le mot de passe avec
une valeur prsente dans lhistorique des mots de passe.

Dure de vie minimum des mots de passe :


Active Directory permet dempcher un utilisateur de changer son mot
de passe pendant la dure dfinie. Le but est dempcher lutilisateur
de changer son mot de passe X fois afin de contourner lhistorique
des mots de passe. Cette fonctionnalit nempche cependant pas un
utilisateur de changer son mot de passe si loption User must change
password at next logon a t dfinie au niveau du compte utilisateur
par un administrateur (aprs rinitialisation du mot de passe de lutili-
sateur par exemple).

La taille minimale du mot de passe :


Une taille minimale de 10 caractres est recommande pour les utili-
sateurs standards, 16 caractres pour les utilisateurs sensibles (VIP et
comptes avec des privilges dadministration) et 24 caractres pour
les comptes de services. Cette taille permet de se protger contre les
Rainbow Table qui permettent de retrouver un mot de passe partir du
NTHASH (valeur de lattribut UnicodePwd).

La complexit des mots de passe :


Le mot de passe doit disposer dau moins de 6 caractres, ne pas conte-
nir plus de 2 caractres conscutifs du nom de compte et du nom com-
plet du compte, contenir 3 familles de caractres parmi les 5 existantes
(majuscules, minuscules, chiffres et caractres spciaux comme @,
autres caractres Unicode comme les caractres japonais). La com-
plexit des mots de passe est applique uniquement lorsquun utilisa-
teur change son mot de passe ou lorsquun administrateur le rinitia-
lise. La complexit des mots de passe ne garantit donc pas que tous
les comptes utilisateurs de lannuaire aient un mot de passe complexe.
85
Un mot de passe comme Password1 est considr comme complexe.
Nous verrons quil existe des outils tiers comme Hitachi ID Password
Manager qui permettent dtendre les critres de complexit des mots
de passe (blocage mot du dictionnaire).

Lactivation du stockage des mots de passe au format rversible :


Cette option sert uniquement pour permettre lauthentification avec le
protocole DIGEST. Elle ne doit pas tre active pour des raisons de
scurit car les mots de passe sont alors dchiffrables trs facilement.

Les stratgies de mots de passe dfinies au niveau de la Default-


DomainPolicy sappliquent pour les comptes utilisateurs de lan-
nuaire Active Directory mais aussi pour les comptes utilisateurs
de la base SAM sur les machines membres du domaine.

Il est important de noter que les stratgies de mots de passe ne peuvent


tre dfinies quun niveau de la stratgie de groupe Default Domain
Policy bien que linterface graphique de Windows laisse penser que
lon puisse les dfinir au niveau de tout type de GPO lie une OU.
En fait les stratgies de mots de passe dfinies au niveau dune OU
sappliquent uniquement aux comptes utilisateurs de la base SAM sur
les machines membres du domaine.

3.3.2 LES OBJETS PSO (FINE-GRAINED PASSWORD)

Ils permettent de dfinir les mmes paramtres de stratgie de mots de


passe que ceux de la Default Domain Policy mais des utilisateurs et
des groupes particuliers. Les objets PSO (aussi appels fine-grained
password) sont apparus avec le mode natif 2008. Sous Windows 2008
R2, les objets PSO devaient tre crs manuellement avec ADSIEDIT.
MSC. Depuis Windows 2012 R1, un assistant pour la cration des ob-
jets PSO est disponible dans la console Active Directory Administra-
tive Center (ADAC). Il faut pour cela aller dans le conteneur System |
Password Settings Container. Dans la fentre Tasks, cliquer sur New
| Password Settings.

86
Dans lexemple ci-dessous, on cre une stratgie de mots de passe pour
tous les utilisateurs membres du groupe GG_Administrative_Accounts.

Mieux vaut dfinir une stratgie de mots passe granulaire qui reprend
au minimum les paramtres de scurit de la Default Domain Policy.
Cest en effet le cumul le plus restrictif des deux qui sappliquent
lutilisateur. Dans lexemple ci-dessous, la Default Domain Policy
exige un mot de passe de 8 caractres. Lobjet PSO exige 15 caractres.
Lutilisateur membre du groupe GG_Administrative_Accounts devra
disposer dun mot de passe de 15 caractres.

Autres avantages des objets PSO (fine-grained password)


Ils ne sappliquent quaux comptes utilisateurs du domaine contrai-
rement la Default Domain Policy qui sapplique aux comptes uti-
lisateurs du domaine Active Directory et aux comptes utilisateur de
la base SAM locale. Pour plus dinformations voir le lien Microsoft
ci-dessous :
http://technet.microsoft.com/en-us/library/cc770842(v=ws.10).
aspx

87
3.4 LES OUTILS TIERS DE GESTION DES MOTS DE
PASSE

Les outils natifs de Microsoft ont de nombreuses limitations :


En cas doubli de son mot de passe, lutilisateur ne peut pas rini
tialiser lui-mme son mot de passe.
Les outils natifs Microsoft ne permettent pas de garantir lidentit
de lutilisateur qui demande une rinitialisation de mots de passe.
Il nest pas possible de configurer la complexit des mots de
passe pour interdire certains mots du dictionnaire.

3.4.1 REINITIALISER SON MOT DE PASSE SANS CONTACTER


LEQUIPE INFORMATIQUE

Loutil PWM (open source et gratuit) permet de disposer dune inter-


face web pour rinitialiser son mot de passe. Lutilisateur se connecte
cette interface et doit rpondre des questions secrtes et personnelles
comme son groupe de musique favori, le surnom de son conjoint ou de
son animal de compagnie. Des outils payants comme Hitachi Password
Manager ou Microsoft Forefront Identity Manager permettent aussi de
disposer de ce type de fonction.
Le principe de ces outils est relativement simple cependant leur mise
en uvre est complexe. Les donnes personnelles que vous stockerez
dans ces outils obligent de faire une dclaration la CNIL et de consul-
ter les syndicats. Le choix des questions peut savrer aussi hautement
politique et sensible.
Pour tlcharger PWM : http://code.google.com/p/pwm/
Pour tlcharger une version dvaluation dHitachi Id
Password Manager : http://hitachi-id.com/password-manager/

3.4.2 GARANTIR LIDENTITE DE LUTILISATEUR

La mise en uvre dun outil de rinitialisation de mots de passe base


de questions secrtes permettra aussi de garantir lidentit de lutilisa-
teur appelant et de protger lentreprise contre un lattaquant qui se fait
passer pour un salari de la socit afin dobtenir des accs.

3.4.3 CONFIGURER LA COMPLEXITE DES MOTS DE PASSE

La complexit des mots de passe est gre par la DLL Microsoft Win-
dows Passfilt.dll. Il est possible de dvelopper une DLL additionnelle
pour imposer lutilisation de mots de passe plus complexes et de
configurer Windows pour grer cette seconde DLL. Pour simplifier,
les deux DLL vont analyser le mot de passe fourni par lutilisateur. Si
88
les deux renvoient True alors le mot de passe est accept. Dans le cas
contraire, un message derreur apparat et le changement / rinitialisa-
tion du mot de passe est refus. Lensemble des informations fournies
par Microsoft pour dvelopper une DLL personnalise est disponible
cette adresse :
http://msdn.microsoft.com/en-us/library/ms721766.aspx
http://msdn.microsoft.com/en-us/library/ms721849.as-
px#password_filter_functions
http://msdn.microsoft.com/en-us/library/ms721884.aspx
http://msdn.microsoft.com/en-us/library/ms722458.aspx

Il existe un exemple dimplmentation (non test / recommand)


disponible cette adresse :
https://thangletoan.wordpress.com/2012/08/06/
http://www.devx.com/security/Article/21522/0/page/3
https://mendel129.wordpress.com/2014/05/27/passwordfil-
ters-in-windows/

Cette DLL tant trs critique, il est recommand dinvestir dans


une solution payante comme Hitachi ID Password Manager.

3.5 TROUVER LE MOT DE PASSE DUN UTILISATEUR


VIA LE RESEAU

Pour rcuprer le mot de passe dun utilisateur au travers du rseau,


un attaquant a besoin de beaucoup de temps. Il ne faut pas dpasser un
certain seuil au risque de dclencher le verrouillage du compte utili-
sateur ou dtre dtect par des IDS. La bonne cadence serait de tester
1 mot de passe par minute. En admettant que le mot de passe expire
au bout de 60 jours, un attaquant pourrait tester 86400 mots de passe
pendant cette priode.
Le script ci-dessous permet de tester tous les mots de passe conte-
nus dans le fichier c:\password.txt (un mot de passe par ligne) pour le
compte guillaume sur la machine 192.168.1.15.
Si la commande russit, un lecteur V mappe sur le partage C$ de la
machine.
For /F %i IN (c:\password.txt) do @net use V: \\192.168.1.15\c$
%i /u:guillaume

Comment se protger avec le verrouillage des comptes et laudit


des checs de connexions
Les utilisateurs devraient disposer de mots de passe avec un minimum
de 10 caractres avec complexit activ. Cela permettra en gnral de

89
garantir quun attaquant narrivera pas trouver le mot de passe en
moins de 86400 tentatives.
Activer le verrouillage de compte sur des seuils trs bas (trs checs
de mots de passe) va surtout bloquer les utilisateurs maladroits ou qui
ne se rappellent plus de leur mot de passe. Mieux vaut configurer le
verrouillage de comptes sur des seuils importants et comptabiliser ces
checs dauthentification sur une priode de temps plus longue. Mi-
crosoft bloque le seuil 999 tentatives. La dure de prise en compte
avec rinitialisation du compteur dchec de mots de passe va aussi
dfinir la dure du verrouillage des comptes (contrainte de la solution
Microsoft).

Si le verrouillage des comptes est activ, un attaquant peut volontai-


rement spcifier de mauvais mots de passe pour gnrer un immense
dni de service. Cest principalement pour cette raison que le verrouil-
lage des comptes devrait tre dsactiv mon sens.

Une alternative au verrouillage des comptes (mthode conseille) est


danalyser le journal Security de tous les contrleurs de domaine
la recherche des checs dauthentification et de gnrer une alerte en
cas de dtection. Cette mthodologie permettrait aussi de dtecter des
tentatives de connexions avec des seuils bas (test dun mot de passe par
minute) en comptabilisant le nombre dchec dauthentification sur le
long terme. Un exemple de script est fourni plus loin dans ce document
(partie audit).

3.6 UTILISER DES OBJETS MSA ET GMSA POUR LES


SERVICES ET LES TACHES PLANIFIEES

Chez de nombreux clients, les comptes utilisateurs sont utiliss pour


excuter des services et des tches planifies. Ces comptes disposent
en gnral de privilges trs importants (parfois Domain Admins), ont
un mot de passe qui nexpire jamais et ne sont pas restreints dans leur
utilisation. Ils peuvent par exemple ouvrir des sessions sur toutes les

90
machines du domaine. En cas de compromission dun service avec
un outil comme METASPLOIT, un attaquant peut rcuprer les accs
correspondant au compte utilisateur qui excute ce service (dans notre
exemple, un compte membre du groupe Domain Admins). Il peut aussi
rcuprer le mot de passe du compte de service en analysant la m-
moire du processus LSASS.EXE de la machine avec un outil comme
CAIN (pour plus dinformations, voir plus loin dans ce document).

Microsoft a commenc proposer une solution avec Windows 2008


R2 et les MSA (Management Services Accounts). Un objet MSA est
nouveau type dobjet (classe msDS-ManagedServiceAccount).
Un MSA, tout comme un compte ordinateur change automatiquement
de mots de passe tous les 30 jours (au mme moment que le mot de
passe du compte ordinateur). Un MSA napplique pas les stratgies de
mots de passe de la Default Domain Policy et napplique pas non plus
les paramtres des objets PSO. Un Managed Service Account (MSA) a
cependant quelques limites :

Il nest pas possible dutiliser le mme MSA sur plusieurs machines.


Il est li un compte ordinateur spcifique. Il nest donc pas possible
dutiliser des MSA avec un FailOver cluster Microsoft ou un cluster
NLB (plus dauthentification Kerberos).
De nombreuses applications ne supportent pas les MSA. Il est donc
ncessaire de valider le support des MSA pour chaque application.
Microsoft SQL Server 2012 supporte lutilisation dun MSA si SQL
Server est dploy en mode autonome (pas en cluster).

Pour plus dinformations :


http://blogs.msdn.com/b/sqlosteam/archive/2014/02/19/msa-
accounts-used-with-sql.aspx
Je vous invite lire les articles Microsoft suivants pour plus dinfor-
mations sur les MSA :
http://blogs.technet.com/b/askds/archive/2009/09/10/
managed-service-accounts-understanding-implemen-
ting-best-practices-and-troubleshooting.aspx
http://technet.microsoft.com/fr-fr/library/dd548356(v=ws.10).
aspx

Microsoft a amlior les MSA avec Windows 2012 R2 et a cr un nou-


veau type dobjet (classe msDSGroupManagedServiceAccount) appel
Group Managed Service Account (gMSA).
Contrairement au MSA, un gMSA nest plus li au compte ordinateur
de la machine. Cest le service Kerberos Key Distribution Center

91
(KDC) qui modifie le mot de passe dun gMSA.
Le mme objet gMSA peut donc tre utilis sur diffrentes machines.
Le service FailOver cluster ne doit pas sexcuter avec un gMSA mais
les services hbergs par le cluster peuvent sexcuter avec un gMSA.
Cette fonctionnalit ntait pas possible avec un objet MSA. On no-
tera que les gMSA ne sont pas encore supports avec Microsoft SQL
Server 2012 (contrairement au MSA). Je vous invite lire les articles
Microsoft suivant sur les gMSA :
http://blogs.technet.com/b/askpfeplat/archive/2012/12/17/
windows-server-2012-group-managed-service-accounts.aspx
http://technet.microsoft.com/en-us/library/jj128431 (US)
http://technet.microsoft.com/fr-fr/library/hh831782.aspx (FR)
Les MSA et les gMSA sont stocks dans le conteneur Managed Ser-
vice Account la racine du domaine.

Procdure pour configurer le service VMware Tools sur la ma-


chine SRV2012C avec un MSA :
Installer le module Active Directory pour PowerShell sur SRV2012C
dans le Server Manager.

Taper ensuite la commande suivante pour crer lobjet MSA.

New-ADServiceAccount Browser VmwareTools -RestrictTo-


SingleComputer
Par dfaut sous Windows 2012, la commande New-ADServiceAccount
cre un gMSA. Le paramtre RestrictToSingleComputer permet de
crer un MSA.
Associer le MSA avec le compte ordinateur.
Add-ADComputerServiceAccount -Identity SRV2012C -Servi-
ceAccount VmwareTools
Installer le MSA sur SRV2012C
92
Install-AdServiceAccount VmwareTools
Valider le fonctionnement du MSA en tapant la commande suivante :
Test-ADServiceAccount VmwareTools
Vrifier que lobjet cr est un MSA et non un gMSA.
Ajouter le MSA un groupe Administrators de la base SAM locale de
la machine.Configurer le service VmwareTools pour utiliser le MSA.

3.7 LISTER TOUS LES COMPTES QUI NONT PAS


CHANGE DE MOTS DE PASSE DEPUIS PLUSIEURS
ANNEES

Il est ncessaire didentifier les comptes qui nont pas chang de mots
de passe depuis plus de 5 10 annes (configurs avec un mot de passe
qui nexpire jamais). Il sagit gnralement danciens comptes de ser-
vices gnriques, non nominatifs, connus de toute lquipe informa-
tique et de salaris / prestataires qui ne font plus partie de la socit,
dont lusage est mal connu (plusieurs applications utilisent le mme
compte de service).
Lapproche :

1. Vous devez identifier les applications qui utilisent ces


comptes de services laide de la fonctionnalit daudit des connexions
Active Directory (voir plus loin dans ce document).

2. Vous devez identifier le risque en termes de scurit de


chacun de ces comptes. Le mot de passe de ce type de compte est-il
complexe ? Le mot de passe est-il connu par des anciens salaris /
prestataires ? Quel est le niveau de privilge de ce compte ?

3. Vous devez planifier des campagnes de changement des


mots de passe des comptes de services.
Dans la mesure du possible, dfinir des mots de passe de 24 caractres
au minimum pour les comptes de services. Cela garantit que le mot de
passe nest pas stock au format LMHASH dans lannuaire (14 carac-
tres au maximum).
Si ce nest pas possible de changer le mot de passe dun compte de

93
services, vous devez le rinitialiser avec sa valeur actuelle un nombre
de fois qui correspond la valeur de lhistorique des mots de passe
+ 1 aprs avoir dsactiv le stockage des mots de passe au format
LMHASH (voir plus loin dans ce document). Si lhistorique des mots
de passe est de 15 mots de passe, vous devez rinitialiser 16 fois le
mot de passe.
Si le mot de passe ne respecte pas les exigences de complexit, il sera
ncessaire de modifier temporairement la Default Domain Policy pour
pouvoir redfinir ce mot de passe lidentique (pour les cas vraiment
bloquants).
Vous devez faire cette action mme si vous avez dsactiv le chiffre-
ment au format LMHASH. Le LMHASH nest supprim au niveau
dun compte existant de lattribut dBCSPwd que lorsque lon change
le mot de passe du compte utilisateur.
Quelques astuces techniques :
La commande PowerShell suivante permet de lister les comptes dont
le mot de passe na pas t chang depuis 365 jours. Elle ncessite
le dploiement du module PowerShell Dell ActiveRoles Management
Shell 1.6 et fonctionne avec des contrleurs de domaine Windows
2003 et versions ultrieures (tlchargeable gratuitement sur
http://software.dell.com/fr-fr/trials/#a).
Add-PSSnapin Quest.ActiveRoles.ADManagement
Get-QADUser PasswordNotChangedFor 365

3.8 REINITIALISER LE MOT DE PASSE DES UTILISA-


TEURS AVEC DES CARTES A PUCES

Lors dune ouverture de session interactive (en locale ou via le Bu-


reau Distance), les utilisateurs peuvent sauthentifier avec leur carte
puce (au lieu dun login / mot de passe). Cependant laccs aux res-
sources rseaux se fait de manire transparente par le systme laide
du NTHASH (HASH du mot de passe). Ce NTHASH est stock en
mmoire aprs louverture de session interactive par le processus lsass.
exe. De plus, quand la case Smart Card required for interactive logon
est coche, le mot de passe est gnr automatiquement par le systme
mais configur pour ne pas changer.

94
Pour cette raison, il est conseill de rinitialiser priodiquement le mot
de passe de ces comptes (une fois tous les 6 mois). Cette action doit
tre effectue quand lutilisateur ne travaille pas.

3.9 RESTREINDRE LUTILISATION DE LOPTION


PASSWORD NEVER EXPIRES

Aucun compte utilisateur ne doit disposer de cette option lexception


des comptes de services. La commande PowerShell suivante permet de
lister les comptes dont le mot de passe nexpire jamais. Elle ncessite
le dploiement du module PowerShell Dell ActiveRoles Management
Shell 1.6 et fonctionne avec des contrleurs de domaine Windows
2003 et versions ultrieures (tlchargeable gratuitement sur
http://software.dell.com/fr-fr/trials/#a).

Lancer PowerShell et taper les commandes suivantes :


Add-PSSnapin Quest.ActiveRoles.ADManagement
Get-QADUser -PasswordNeverExpires

95
3.10 LE STOCKAGE DES MOTS DE PASSE AVEC AC-
TIVE DIRECTORY

3.10.1 QUEST-CE QUUNE EMPREINTE (OU HASH) ?

Le mot de passe dun compte utilisateur (ou dun compte ordinateur)


ne doit pas tre stock en clair dans un annuaire LDAP pour des rai-
sons de scurit. Pour cette raison, Active Directory stocke le mot de
passe de tous les comptes ordinateurs et de tous les comptes utilisa-
teurs sous forme dune empreinte (appele aussi HASH). Deux mots
de passe diffrents ne gnrent pas la mme empreinte car la fonction
mathmatique de gnration de lempreinte (ou Hash) est unidirection-
nelle. Il nest pas possible de retrouver le mot de passe dorigine
partir son lempreinte.
Les rainbow tables permettent de contourner cette limite en calculant
une empreinte pour chaque mot de passe possible dans une base de
donnes. Un attaquant peut alors chercher le mot de passe correspon-
dant lempreinte dont il dispose. Je vous invite consulter le site
ci-dessous :
http://fr.wikipedia.org/wiki/Rainbow_table.
Certains algorithmes de gnration dempreinte permettent dutiliser
un sel (aussi appel graine). Le sel est une valeur que lon concatne
(ajoute) au mot de passe initial. Cela permet de renforcer la scurit
des mots de passe avec un faible nombre de caractres. Avec lutili-
sation dun sel, deux mots de passe identiques ne produisent pas la
mme empreinte.
Active Directory peut gnrer deux types dempreinte pour un mot de
passe de compte utilisateur / ordinateur :
Le LMASH : niveau de scurit trs faible ( dsactiver obligatoi-
rement).
Le NTHASH : niveau de scurit variable (selon la complexit du
mot de passe).
La fonction de gnration du LMHASH et du NTHASH nutilise
pas de sel.

3.10.2 LE LMHASH (LAN MANAGER HASH)

Le LMHASH est stock au niveau de lattribut dBCSPwd. Lhistorique


des mots de passe est stock au niveau de lattribut lmPwdHistory. Ces
2 attributs sont protgs par le systme dexploitation contre les accs
en lecture (y compris pour un utilisateur membre du groupe Domain
Admins). Dans lexemple ci-dessous, lannuaire Active Directory a t
configur pour stocker le mot de passe au format LMHASH.

96
Aprs changement du mot de passe du compte guillaume.mathieu, lat-
tribut dBCSPwd reste toujours inaccessible (affich Not set).

Nous verrons plus loin de ce document quil est possible de rcuprer


le contenu des attributs dBCSPwd et lmPwdHistory laide des outils
LIBESEDB / NTDSXtract et dutiliser un site web comme Objectif s-
curit (https://www.objectif-securite.ch/) qui hberge en ligne des
rainbow table pour retrouver le mot de passe dun utilisateur.

Pour gnrer le LMHASH, le contrleur de domaine effectue les ac-
tions suivantes :

1. Le mot de passe en clair est au format DOS CHARSET


(14 caractres maximum).
2. Le mot de passe est converti en majuscule.
3. Le mot de passe est complt avec des caractres Null si ce dernier
fait moins de 14 caractres (soit 14 octets ou 112 bits).
4. Le rsultat de ce traitement est dcoup en deux blocs de 7 octets
(soit 56 bits). Pour chaque bloc de 7 octets (56 bits), on ajoute tous les

97
7 bits, un bit 0 afin dobtenir une valeur sur 64 bits (8 octets) qui sera
utilis comme une cl de chiffrement DES.
5. Chacune des 2 cls DES est utilise pour chiffrer la chane de carac-
tre KGS!@#$% . Le rsultat (64 bits) des 2 oprations est conca-
tn pour obtenir une valeur de 16 octets (128 bits). Cette valeur est
le LMHASH.

Pour rsumer :
LM = DES(Password[0..6], KGS!@#$%) | DES(Password[7..13],
KGS!@#$%)

Le LMHASH est trs faiblement scuris car il ne gre pas la casse


(majuscule / minuscule), prend en charge que les mots de passe de
moins de 15 caractres, nintgre pas de sel et utilise des cls de chif-
frement DES de 64 bits (dont 8 bits 0). Si le mot de passe fait moins
de 8 caractres, comme tous les bits de la seconde cls DES sont
0, on obtient une valeur de Hash connu (0xAAD3B435B51404EE).
Ces 5 faiblesses permettent de gnrer une table arc-en-ciel (Rainbow
Table) de 17 Go (au lieu de 310 To grce lalgorithme de M. Philippe
OECHSLIN) contenant pour chaque mot de passe possible la valeur
du LMHASH correspondant. Depuis Windows 2008 R1, les contr-
leurs de domaine ne gnrent plus par dfaut une empreinte au format
LMHASH lorsque le mot de passe est mis jour.

Beaucoup dannuaire sous Windows 2012 R2 disposent encore


dempreinte LMHASH dans la base de donnes car le mot de
passe de certains comptes de services na jamais t chang de-
puis parfois 10 ans ou plus !

3.10.3 LE NTHASH (NT LAN MANAGER HASH)

Le NTHASH est stock au niveau de lattribut UnicodePwd. Lhisto-


rique des mots de passe est stock au niveau de lattribut ntPwdHis-
tory. Ces 2 attributs sont protgs par le systme dexploitation contre
les accs en lecture (y compris pour un utilisateur membre du groupe
Domain Admins).
Le NTHASH est une empreinte / Hash du mot de passe qui sappuie
sur la fonction de Hash MD4 (sans sel). Pour obtenir le NTHASH, le
systme effectue ces actions :
Le mot de passe est cod au format Unicode et peut contenir jusqu
255 caractres.
Le protocole MD4 est appliqu pour obtenir le NTHASH
Pour rsum : NTLM HASH (NTHASH) = MD4 (Password Uni-
code)
98
Nous verrons dans le paragraphe suivant quil est possible de rcup-
rer le contenu des attributs UnicodePwd et ntPwdHistory laide des
outils LIBESEDB / NTDSXtract et donc de rcuprer le mot de passe
en clair laide de Rainbow Table (selon la complexit des mots de
passe).
Le NTHASH ne souffre pas des mmes dfauts de conception que
le LMHASH. Bien que lalgorithme de HASH nintgre pas de sel /
graine, les rainbow table pour le NTHASH ne permettent en gnral
que de rcuprer des mots de passe jusqu 16 caractres sous condi-
tion (mot du dictionnaire) et 8 caractres sans condition.

On peut donc dire que dun mot de passe stock sous forme de NTHASH
est relativement scuris sil respecte toutes les conditions suivantes :

Le mot de passe est compos de diffrents types de caractres (mi-


nuscule, majuscule, caractres spciaux, chiffres).
Le mot de passe ne sappuie pas uniquement sur un mot de passe du
dictionnaire et/ou une suite de chiffres. Le mot de passe Vachette1 est
dans toutes les rainbow tables MD4 / NTHASH.
Le mot de passe doit disposer de 10 caractres pour les utilisateurs
standards, 16 pour les VIP et 24 pour les comptes de services.

Pour plus dinformations :


https://www.sstic.org/media/SSTIC2007/SSTIC-actes/Se-
crets_d_authentification_sous_Windows/SSTIC2007-Article-Se-
crets_d_authentification_sous_Windows-bordes.pdf

3.11 RECUPERER LE MOT DE PASSE DUN UTILISATEUR AVEC LE


LMHASH

3.11.1 LA PROCEDURE

Nous allons voir dans la partie suivante comment crer une copie de
lannuaire et de la monter comme une simple base LDAP avec loutil
LIBESEDB. Loutil NTDSXtract permettra dextraire la valeur des
attributs UnicodePwd, ntPwdHistory, dBCSPwd et lmPwdHistory.

99
3.11.1.1 Rcuprer le fichier NTDS.DIT et SYSTEM

Pour utiliser lOutil LIBESEDB, nous devons rcuprer le fichier


NTDS.DIT (la base de donnes Active Directory) et le fichier SYS-
TEM (fichier de la ruche qui contient les entres de registre dans
HKEY_LOCAL_MACHINE\SYSTEM). Pour cela vous pouvez crer
un IFM (promotion dun contrleur de domaine avec un mdia), une
snapshot de lannuaire Active Directory ou utiliser une sauvegarde de
lEtat du systme (restaurer vers un emplacement diffrent).
Pour gnrer un IFM :
Vous devez disposer dun contrleur de domaine sous Windows 2008
R1 (ou versions ultrieures).
Ouvrir une session avec un compte utilisateur membre du groupe Ad-
mins du domaine et taper les commandes suivantes :
Ntdsutil
Activate instance ntds
Ifm
Create full c:\ifm

Pour sauvegarder lEtats du systme :


Vous pouvez utiliser NTBACKUP avec les contrleurs de domaine
Windows 2003 ou Windows Server Backup avec Windows 2008 (et
versions ultrieures).

3.11.1.2 Installer une machine sous Linux

Installer une machine virtuelle sous Kali (https://www.kali.org) sous


VMware Workstation 10 (dans cet exemple) connecte au rseau den-
treprise. Vous pouvez aussi utiliser VMware ESXi, Hyper-V ou Vir-
tualBox.
Installer ensuite les VMware Tools. Il faut installer les Linux Headers
et Autoconf.
apt-get install autoconf
apt-get install linux-headers-$(uname -r)
Dans le menu VM cliquer sur Install VMware Tools. Cela va charger
lISO des VMware Tools dans le lecteur de DVD de la machine vir-
tuelle.
Copier le fichier VMTools dans un rpertoire de travail
cp /media/cdrom/VMwareTools-9.6.1-1378637.tar.gz /root/
VMwareTools-9.6.1-1378637.tar.gz
Se positionner dans le rpertoire
cd /root/
Dcompresser le fichier VMTools
tar xzf /root/VMwareTools-9.6.1-1378637.tar.gz
100
Se positionner dans le rpertoire des VMware Tools.
cd /root/vmware-tools-distrib
Lancer le script :
./vmware-install.pl
Rpondre par dfaut aux questions (touche Entre du clavier).
Les VMware Tools doivent sinstaller et le lecteur DVD virtuel se d-
monte automatiquement.
Redmarrer.
Il nest pas ncessaire dinstaller GCC car ce dernier est dj install
sur Kali.

3.11.1.3 Tlcharger et installer LIBESEDB

LIBESEDB permet de monter une base de donnes ESE (Extensible


Storage Engine). Pour rappel, Active Directory est une base ESE.
Tlcharger LIBESEDB cette adresse : https://github.com/libyal/
libesedb/releases
Dans le cadre de cet article, nous tlchargeons le fichier libesedb-ex-
perimental-20141110
Ouvrir une session sur le serveur Kali. Aller dans Applications | Ac-
cessoires puis Terminal Administrateur. Aller dans le rpertoire avec le
fichier TAR et lextraire avec la commande suivante :
tar -xvf libesedb-experimental-20141110.tar.gz
Aller dans le rpertoire LIBESEDB (/root/libesedb-20141110). Lancer
la configuration des sources.
./configure
Compiler ensuite le programme en tapant la commande suivante :
Make
Une fois la compilation termine, taper la commande suivante pour
installer lapplication :
Make install
Il est ncessaire denregistrer la librairie libesedb.so.1. Dans le cas
contraire, le message derreur ci-dessous apparat.
esedbexport: error while loading shared libraries: libesedb.so.1:
cannot open shared object file: No such file or directory
Pour enregistrer la DLL, taper la commande :
ldconfig

Pour plus dinformations : https://github.com/libyal/libesedb/wiki/


Building

101
3.11.1.4 Tlcharger et installer NTDSXtract

Tlcharger NTDSXtract ladresse suivante :


http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_
v1_0.zip
Extraire NTDSXTRACT dans /root/NTDSXtract 1.0 avec la com-
mande suivante :
unzip /root/ntdsxtract_v1_0.zip
mv /root/NTDSXtract\ 1.0/ /root/NTDSXTRACT

3.11.1.5 Rcupration du LMHASH

Copier le dossier c:\ifm dans /root/NTDSXtract. Aller dans le rper-


toire de LIBESEDB.
cd /root/libesedb-20141110/
./esedbexport /root/libesedb-20141110/ntds.dit

La commande doit renvoyer ce rsultat :


Opening file.
Exporting table 1 (MSysObjects) out of 11.
Exporting table 2 (MSysObjectsShadow) out of 11.
Exporting table 3 (MSysUnicodeFixupVer2) out of 11.
Exporting table 4 (datatable) out of 11.
Exporting table 5 (hiddentable) out of 11.
Exporting table 6 (link_table) out of 11.
Exporting table 7 (quota_rebuild_progress_table) out of 11.
Exporting table 8 (quota_table) out of 11.
Exporting table 9 (sdpropcounttable) out of 11.
Exporting table 10 (sdproptable) out of 11.
Exporting table 11 (sd_table) out of 11.
Export completed.

La commande esedbexport gnre un rpertoire /ntds.dit.export dans


le dossier esedbtools avec les fichiers suivants :
2767300 -rw-r--r-- 1 root root 9616462 janv. 19 17:00 datatable.3
2767301 -rw-r--r-- 1 root root 693 janv. 19 17:00 hiddentable.4
2767302 -rw-r--r-- 1 root root 6563 janv. 19 17:00 link_table.5
2767297 -rw-r--r-- 1 root root 75441 janv. 19 17:00 MSysOb-
jects.0
2767298 -rw-r--r-- 1 root root 75441 janv. 19 17:00 MSysOb-
jectsShadow.1
2767299 -rw-r--r-- 1 root root 103 janv. 19 17:00 MSysUnicode-
FixupVer2.2
2767303 -rw-r--r-- 1 root root 80 janv. 19 17:00 quota_rebuild_
102
progress_table.6
2767304 -rw-r--r-- 1 root root 638 janv. 19 17:00 quota_table.7
2767305 -rw-r--r-- 1 root root 14 janv. 19 17:00 sdpropcount-
table.8
2767306 -rw-r--r-- 1 root root 96 janv. 19 17:00 sdproptable.9
2768102 -rw-r--r-- 1 root root 29626 janv. 19 17:00 sd_table.10

Copier le fichier SYSTEM dans le rpertoire /root/NTDSXTRACT.


On va maintenant utiliser loutil NTDSXtract pour rcuprer le
LMHASH. Taper la commande suivante :

cp /root/libesedb-20141110/ntds.dit.export/datatable.3 /root/
NTDSXTRACT/datatable.3
cp /root/libesedb-20141110/ntds.dit.export/link_table.5 /root/
NTDSXTRACT/link_table.5
cd /root/NTDSXTRACT
python ./dsusers.py datatable.3 link_table.5 --passwordhashes
SYSTEM

La commande renvoie ce rsultat :


Running with options:
Extracting password hashes
Initialising engine
Scanning database 100% -> 3717 records processed
Searching for Schema object 100% -> 12 records processed
Extracting schema information 100% -> 1549 records pro-
cessed
Extracting object links
List of users:
==============
Record ID: 5768
User name: Guillaume Mathieu
User principal name: guillaume.mathieu@tphat.intra
SAM Account name: guillaume.mathieu
SAM Account type: SAM_NORMAL_USER_ACCOUNT
GUID: 1eaee5d6-5f8f-4e8c-a840-31caddad6755
SID: S-1-5-21-2163606747-459301225-4249714960-1121
When created: 2013-08-05 08:12:08
When changed: 2013-08-17 18:20:58
Account expires: Never
Password last set: 2013-08-17 18:20:58.095203
Last logon: 2013-08-15 12:30:01.708144
Last logon timestamp: 2013-08-12 18:41:32.890748

103
Bad password time 2013-08-15 12:29:32.988494
Logon count: 18
Bad password count: 0
User Account Control:
NORMAL_ACCOUNT
PWD Never Expires
Ancestors:
$ROOT_OBJECT$ intra tphat Utilisateurs Guillaume Mathieu
Password hashes:
Guillaume Mathieu:$NT$13b29964cc2480b4ef454c59562e675c:::
Guillaume Mathieu:11cb3f697332ae4c4a3b108f3fa6cb6d:::

Avec la commande suivante on a mme lhistorique des mots de passe


au format LMHASH :
python ./dsusers.py datatable.3 link_table.5 --passwordhashes
SYSTEM --passwordhistory SYSTEM

Le rsultat ci-dessous :
Record ID: 5768
User name: Guillaume Mathieu
User principal name: guillaume.mathieu@tphat.intra
SAM Account name: guillaume.mathieu
SAM Account type: SAM_NORMAL_USER_ACCOUNT
GUID: 1eaee5d6-5f8f-4e8c-a840-31caddad6755
SID: S-1-5-21-2163606747-459301225-4249714960-1121
When created: 2013-08-05 08:12:08
When changed: 2013-08-17 18:20:58
Account expires: Never
Password last set: 2013-08-17 18:20:58.095203
Last logon: 2013-08-15 12:30:01.708144
Last logon timestamp: 2013-08-12 18:41:32.890748
Bad password time 2013-08-15 12:29:32.988494
Logon count: 18
Bad password count: 0
User Account Control:
NORMAL_ACCOUNT
PWD Never Expires
Ancestors:
$ROOT_OBJECT$ intra tphat Utilisateurs Guillaume Mathieu
Password hashes:
Guillaume Mathieu:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Guillaume Mathieu:11cb3f697332ae4c4a3b108f3fa6cb6d:::

104
Password history:
Guillaume Mathieu_nthistory0:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Guillaume Mathieu_nthistory1:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Guillaume Mathieu_nthistory2:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Guillaume Mathieu_nthistory3:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Guillaume Mathieu_lmhistory0:11cb3f697332ae4c4a3b108f-
3fa6cb6d:::
Guillaume Mathieu_lmhistory1:11cb3f697332ae4c4a3b108f-
3fa6cb6d:::
Guillaume Mathieu_lmhistory2:99d1842dae7ba-
d31a5615a0b1741a415:::
Guillaume Mathieu_lmhistory3:ce2f42bb6280e-
bf4b01331c7e77ec962:::

Dans lexemple ci-dessous, on a plusieurs fois le mme mot de passe


car ladministrateur a rinitialis le mot de passe depuis la console
Active Directory Users and Computers.

3.11.1.6 Convertir le LMHASH en mot de passe :

Se connecter sur le site objectif scurit et entrer le LMHASH


(http://www.objectif-securite.ch/ophcrack.php).
Dans le cas du compte guillaume.mathieu, on a deux lignes Password
Hashes :
Password hashes:
GuillaumeMathieu:$NT$13b29964cc2480b4ef454c59562e675c:::
Guillaume Mathieu:11cb3f697332ae4c4a3b108f3fa6cb6d:::
La ligne avec $NT$1 correspond au NTHASH.
La seconde ligne correspond au LMHASH.

Copier le LMHASH sous cette forme (11cb3f697332ae4c4a3b108f-


3fa6cb6d) cette adresse :
http://www.objectif-securite.ch/ophcrack.php

On retrouve le mot de passe en majuscule. Lapplication du site web se


sert du NTHASH pour dterminer les caractres en majuscule.
Loutil Lm2ntcrack.exe permet aussi de rcuprer le mot de passe avec
les majuscules et minuscules. Pour cela taper la commande suivante :
Lm2ntcrack.exe l=UPPERCASE_PASSWORD n=NTHASH
http://www.xmco.fr/lm2ntcrack/lm2ntcrack-current_win32.zip
105
3.11.2 COMMENT DESACTIVER LE LMHASH

Maintenant que lon a compris les dangers du LMHASH, on va voir :


Les prrequis pour dsactiver le LMHASH.
Comment dsactiver le LMHASH.

3.11.2.1 Quels sont les impacts potentiels ?

Avant de dsactiver le LMHASH, vrifier les points suivants :


Vous ne disposez pas de machines sous Windows 95 / 98 ou Win-
dows NT4 (antrieurs au SP3).
Vous ne disposez pas de serveurs SAMBA antrieurs la version 3.
Vous ne disposez pas de cluster sous Windows 2000 ou Windows
2003.
Pas de machine Apple sous Outlook 2001 en mode Exchange.
Pour les clusters Windows 2003 (MSCS) : il existe un correctif (KB
890761).
Pour les clusters Windows 2000 : vous devez tre en SP3 minimum
(KB 272129). La KB 828861 semble indiquer quil faut obligatoire-
ment sous Windows 2000 Server configurer le mot de passe du service
cluster avec au moins 15 caractres si le LMHASH est dsactiv. Je
vous invite lire ces articles :
http://support.microsoft.com/kb/272129/en-us
http://support.microsoft.com/kb/299656/en-us
http://support.microsoft.com/kb/828861/en-us
http://support.microsoft.com/kb/890761/en-us
http://support.microsoft.com/kb/895092/en-us
http://www.markwilson.co.uk/blog/2004/06/problems-with-mi-
crosoft-clusters.htm
http://blogs.technet.com/b/askcore/archive/2011/08/11/win-
dows-2003-server-cluster-and-access-denied-errors.aspx

3.11.2.2 Procdure de dsactivation du LMHASH

Pour dsactiver le LMHASH, vous pouvez appliquer une de ces deux


mthodes :

Mthode 1 : changement de tous les mots de passe


Activer la GPO Network security: Do not store LAN Manager Hash
value on next password change. Lancer la console GPMC.MSC. Editer
la Default Domain Controller Policy.
Aller dans Computer Configuration | Policies | Windows Settings | Se-
curity Settings. Configurer le paramtre Do not store LAN Manager
Hash value on next password change Enabled.

106
Faire la mme action au niveau de la GPO Default Domain Policy.
Changer le mot de passe de tous les comptes utilisateurs et ordinateurs.
Vous pouvez forcer les utilisateurs changer leur mot de passe en co-
chant la case User must change password at next logon.

Vous pouvez rinitialiser avec la mme valeur de mot de passe tous les
comptes de services. Le mot de passe dun compte ordinateur change
tous les 30 jours donc je vous propose dattendre. Ces 2 actions per-
mettront de supprimer la valeur de lattribut dBCSPwd.
Pour supprimer les valeurs de lattribut lmPwdHistory (historique
des mots de passe au format LMHASH), il faudra changer les mots
de passe un nombre de fois correspondant lhistorique des mots de
passe. Cela ne pose pas de problmes avec les comptes de services car
vous pouvez connatre leur mot de passe.
107
Pour les comptes utilisateurs je vous propose lastuce suivante :
Rinitialiser tous les comptes des utilisateurs avec un mot de passe
par dfaut. Communiquer ce nouveau mot de passe aux utilisateurs en
cochant la case User must change password at next logon au niveau du
compte utilisateur. Lutilisateur changera ainsi son mot de passe la
prochaine ouverture de session.

Une mthode moins thique est de retrouver tous les mots de passe
avec la procdure du paragraphe prcdent et de les rinitialiser avec
la mme valeur. Cocher ensuite la case User must change password
at next logon pour perdre la connaissance du mot de passe de tous les
utilisateurs.

Mthode 2 : utiliser des mots de passe de plus de 15 caractres


Activer la GPO Network security: Do not store LAN Manager Hash
value on next password change. Lancer la console GPMC.MSC. Editer
la Default Domain Controller Policy. Aller dans Computer Configu-
ration | Policies | Windows Settings | Security Settings. Configurer le
paramtre Do not store LAN Manager hash value on next password
change Enabled.
Faire la mme action au niveau de la GPO Default Domain Policy.
Dfinir un mot de passe suprieur 15 caractres pour tous les comptes
utilisateurs. Pour les comptes ordinateurs, le systme va les changer au
bout de 30 jours.
Ces 2 actions permettront de supprimer la valeur de lattribut dBCSPwd.
Pour supprimer les valeurs de lattribut lmPwdHistory, il faut changer
le mot de passe un nombre de fois correspondant lhistorique des
mots de passe.

Le LMHASH est dsactiv par dfaut sur les contrleurs de domaine


Windows 2008 (paramtre par dfaut quand la GPO Network security:
Do not store LAN Manager hash value on next password change nest
pas dfini / configur. Cette information a son importance pour les pro-
jets de migration de Windows 2000 / 2003 vers Windows 2008 R1 et
versions ultrieures. Pour plus dinformations :
http://support.microsoft.com/kb/299656/en-us
http://support.microsoft.com/kb/946405/en-us

108
3.12 RECUPERER LE MOT DE PASSE DUN
UTILISATEUR AVEC LE NTHASH

3.12.1 LA PROCEDURE

Le principe est exactement le mme que pour le LMHASH. Il faut uti-


liser les outils LIBESEDB et NTDSXtract pour rcuprer le NTHASH.
Loutil NTDSXtract avait gnr la ligne suivante avec le NTHASH
du compte Guillaume MATHIEU.
Guillaume Mathieu:$NT$13b29964cc2480b4ef-
454c59562e675c:::
Prendre uniquement la chane de caractre aprs $NT$ et supprimer
les 3 caractres : soit :
13b29964cc2480b4ef454c59562e675c
Copier cette valeur sur le site web qui intgre une rainbow table MD4
comme :
https://crackstation.net.
http://www.onlinehashcrack.com/
http://www.onlinehashcrack.com/

109
Le mot de passe saffiche alors en clair : P@ssword.
Vous pouvez aussi utiliser un outil comme OPHCRACK
(http://ophcrack.sourceforge.net) et linstaller sur une ma-
chine qui dispose de 2 To despace disque disponible. Lou-
til sappuie sur un ensemble de tables dont certaines sont
fournies gratuitement et dautres sont payantes. Si vous utilisez uni-
quement les tables gratuites, vous avez besoin de 5,02 Go despace lib

110
111
Une vido de prsentation dOPHCRACK st disponible cette
adresse :
https://www.youtube.com/watch?v=x4WfTdlmwyY
Linstallation est trs simple et tlcharge automatiquement 4 tables
(Vista Free, Vista probabilistic free, XP Free et XP free Small). Il faut
tlcharger manuellement la table Vista num cette adresse
http://ophcrack.sourceforge.net/tables.php. Les tables XP Free et
XP free small permettent de casser le LMHASH. Nous les dsactive-
rons donc.

Nous allons voir maintenant comment tester cet outil.


Se connecter au site web https://defuse.ca/checksums.htm. Entrer
le mot de passe 14127487. Copier la valeur du NTHASH obtenue :
b8895eced52341edfc6a078bb962cb3b.

Aller dans le menu Load | Single hash. Le format de saisie est


LMHASH:NTHASH. On part du principe que LMHASH est dsactiv
(donc que le champ est vide). Entrer donc la valeur suivante :
:b8895eced52341edfc6a078bb962cb3b

Cliquer ensuite sur le bouton Crack. On retrouve le mot de passe en


moins de 5 secondes.
Il existe dautres outils gratuits ou payants comme :
http://project-rainbowcrack.com (1000 dollars).
https://www.freerainbowtables.com (gratuit)

112
113

3.12.2 COMMENT PROTEGER SES MOTS DE PASSE

Le NTHASH est une empreinte MD4 dun mot de passe au format


Unicode sans sel. Bien que cette mthode de HASH soit beaucoup
moins efficace que du SHA1 (ou dautres fonctions plus modernes),
le NTHASH ne souffre pas des mmes dfauts de conception que le
LMHASH. Les rainbow table MD4 disponible sur Internet (gratuite ou
payante) permettent en gnral de rcuprer le mot de passe partir du
NTHASH que pour des mots de passe infrieurs 9 / 10 caractres et
114
jusqu 16 caractres sous condition. Pour garantir la scurit de vos
mots de passe, il est ncessaire dadopter la politique de mots de passe
suivante :

La taille minimale du mot de passe : 10 caractres pour les utili-


sateurs standards, 16 caractres pour les utilisateurs sensibles (VIP
et comptes avec des privilges dadministration) et de 24 caractres
pour les comptes de services.
Complexit des mots de passe : active
Historique des mots de passe : activ (5 mots de passe mmoriss).
Dure de vie maximale du mot de passe : 90 jours

Ladoption dun outil comme Hitachi ID Password Manager peut per-


mettre de bloquer les mots de passe contenant un mot du dictionnaire
comme Vachette1 (qui est disponible dans toutes les rainbow tables).
Une bonne pratique est de tester la solidit du mot de passe des comptes
sensibles en vrifiant quils ne sont pas dans les rainbow tables. G-
nrer pour cela le NTHASH depuis ce site web https://defuse.ca/
checksums.htm et installer OPHCRACK pour essayer de retrouver le
mot de passe partir du NTHASH obtenu.

Vous devez aussi empcher un attaquant dobtenir le fichier NTDS.


DIT et SYSTEM dun de vos contrleurs de domaine (en lecture /
criture). Ces deux fichiers peuvent tre obtenus via une sauvegarde
de lannuaire, un IFM (Install From Media), en volant un contrleur
de domaine physique ou en copiant un contrleur de domaine virtuel
(snaphsot). Vous pouvez chiffrer les disques de vos contrleurs de do-
maine en lecture / criture avec BitLocker. Si le disque est chiffr, un
attaquant ne peut pas visualiser le contenu du disque avec des outils
comme un LiveCD.
Vous pouvez dployer des RODC (contrleur de domaine en lecture
seule) sur les sites ne disposant pas dune salle informatique scurise.
Les RODC ne contiennent pas les mots de passe des comptes utilisa-
teurs / ordinateurs (sauf pour les comptes dfinis en exception).

Vous devez renforcer la scurit de votre annuaire pour viter quun at-
taquant rcupre des privilges dadministration sur lannuaire comme
Administrators, Domain Admins, Enterprise Admins. Il pourrait alors
faire une sauvegarde de lannuaire ou gnrer un IFM.

115
3.13 PROTEGER LES MOTS DE PASSE STOCKES SUR
LES MACHINES WINDOWS

3.13.1 LES SERVICES ET LES TACHES PLANIFIEES

De nombreux mots de passe sont aussi prsents sur les machines


du domaine autres que les contrleurs de domaine. Dans lexemple
ci-dessous le service VMware Tools a t configur avec le compte
guillaume.mathieu du domaine msreport.be. Ce compte est membre
du groupe Domain Admins.
Le mot de passe du compte utilis par un service ou une tche planifie
est stock dans la cl de registre Hkey_Local_Machine\Security\Poli-
cy\Secrets. Il est possible daccder cette cl en se connectant avec un
compte administrateur de la machine et en dfinissant manuellement
des permissions sur Hkey_Local_Machine\Security.

116
Si on dveloppe la cl Secrets, on peut voir quil y a une sous cl
pour le service VMware Tools appele _SC_VMTools. Cette cl
contient son tour 5 cls

CupdTime: la date de dernier changement du mot de passe


CurrVal: la valeur du mot de passe du compte spcifie pour ce
service (comprendre le mot de passe du compte guillaume.mathieu
qui est dans notre cas membre du groupe Domain Admins).
OldVal: lancienne valeur du mot de passe du compte du service
VMware Tools.
OupdTime: la date prcdente o la configuration du service a t
mise jour.
SecDesc: le dtail des permissions

Quand le service dmarre, son mot de passe (NTHASH et LMHASH


si activ) est stock dans la mmoire du processus Lsass.exe (service
Netlogon).

Des outils comme CAIN (http://www.oxid.it/cain.html) ou NIR-


LAUNCHER (http://launcher.nirsoft.net) permettent de rcuprer
les mots de passe en analysant la mmoire du processus Lsass.exe ou
en analysant le contenu des entres de registre dans Hkey_Local_Ma-
chine\Security\Policy\Secrets.
Dans cet exemple, le mot de passe du compte guillaume.mathieu est
P@ssword.

117
3.13.2 LE CACHE DES SESSIONS WINDOWS

Comment pouvez-vous ouvrir une session sur un ordinateur portable


alors que vous ntes pas connect au rseau dentreprise et que les
contrleurs de domaine ne sont donc pas disponibles ? Pourquoi
navez-vous pas le message derreur ci-dessous ?

Vous pouvez vous authentifier le soir sur votre ordinateur portable


avec votre compte utilisateur du domaine car Windows met en cache
votre login / mot de passe sur votre ordinateur portable dans la base
de registre Windows au niveau de la cl HKEY_LOCAL_MACHINE\
SECURITY.
Sous Windows 2003, le mot de passe de lutilisateur en cache (MS-
CASH) est un Hash MD4 du NTHASH de lutilisateur concatn au
login de lutilisateur soit :
MSCASH : MD4(MD4(password) + username)
Cette protection est trs vulnrable comme cest expliqu dans cet ar-
ticle :
http://www.jedge.com/wordpress/windows-password-cache-
mscache-mscash-v2/
Sous Windows 2008, cet algorithme a volu (on parle de format MS-
CASH2).
PKCS#5(MD4(MD4(password) + username))
La protection est beaucoup plus fiable.
118
Je vous invite consulter les articles ci-dessous et dsactiver la mise
en cache des sessions sur les serveurs et les stations de travail fixes.
Cette fonction peut tre active sur les ordinateurs portables sous Win-
dows Vista et versions ultrieures.
http://www.securiteam.com/tools/5JP0I2KFPA.html
http://www.jedge.com/wordpress/windows-password-cache-
mscache-mscash-v2/

3.14 DEFINIR UNE STRATEGIE DE MOTS DE PASSE


CIBLE

Une fois que vous avez valuez votre besoin et que vous avez une
ide des solutions techniques mettre en uvre, vous devez organiser
des runions avec la direction de lentreprise, les quipes en charge de
la rinitialisation des mots de passe et les reprsentants du personnel.
Rien ne pourra tre effectu sans eux ou contre eux.

Pour russir votre projet de scurisation des mots de passe, la direction


doit valider votre dmarche et doit mettre jour si ncessaire la charte
informatique pour dcrire les sanctions potentielles en cas de non-res-
pect des rgles de scurit pour les mots de passe (interdit de lcrire
sur un POST-IT).
Un utilisateur qui crit son mot de passe derrire son clavier doit tre
sensibilis fortement aux risques de scurit. Les reprsentants des
syndicats doivent approuver les solutions techniques mises en uvre,
la charte informatique et les mesures prises contre les salaris qui ne
respecteraient pas les nouvelles rgles de scurit.

Les quipes en charge de la rinitialisation des mots de passe doivent


tre associes la mise en uvre de solutions comme PWM qui permet
un utilisateur de rinitialiser lui-mme son mot de passe (sans linter-
119
vention de lquipe Helpdesk) en rpondant ses questions secrtes.
Cet outil servira en effet aussi aux quipes Helpdesk pour identifier le
demandeur avant de rinitialiser son mot de passe.

Si certains utilisateurs VIP refusent de changer de mots de passe, vous


pouvez envisager de baisser les paramtres de scurit de la Default
Domain Policy (norme minimale) et implmenter des objets PSO pour
les autres utilisateurs (norme standard).
Le niveau de scurit dun systme correspond au niveau de scurit
le plus bas dun de ces lments. Il est cependant prfrable dimpl-
menter une stratgie de mots de passe scurise pour 90 pourcents des
utilisateurs et faible sur 10 pourcents que de nimplmenter aucune
stratgie de mots de passe. Quand 90 pourcents des utilisateurs auront
bascul, vous dmontrerez que la solution est viable et vous pourrez
alors convaincre les 10 pourcents dutilisateurs rcalcitrants appli-
quer les standards de scurit.

Eviter dimplmenter une stratgie de mots de passe trop complexe


avec des outils tiers comme Hitachi ID Password Manager. Les uti-
lisateurs doivent russir changer de mot de passe en 1 tentative en
appliquant des consignes basiques. Interdire tous les mots usuels de
dictionnaire peut savrer trs contreproductif.

Eviter de configurer des comptes avec des privilges dadministration


importants au niveau des services ou des tches planifies sur des ma-
chines non scurises et que lquipe Active Directory ne maitrise pas.

120
4 RENFORCER LA SECURITE DES
PROTOCOLES DAUTHENTIFICATION

4.1LE PROTOCOLE LDAP

Active Directory est un annuaire LDAP. Un utilisateur peut donc uti-


liser un outil comme LDP.EXE pour se connecter un contrleur de
domaine et lancer des commandes LDAP comme Bind (authentifica-
tion de lutilisateur), Search (recherche dobjets), Add (ajouter dun
nouvel objet). Active Directory supporte 2 mthodes pour effectuer
une commande LDAP Bind :
LDAP Simple Bind
LDAP SASL Bind

4.1.1LDAP SIMPLE BIND

Cette mthode consiste envoyer le login et le mot de passe de lutili-


sateur en clair par le rseau pour sauthentifier. Active Directory sup-
porte plusieurs types de login dans une requte LDAP Simple Bind :
La valeur de lattribut distinguishedName (exemple : CN=Guil-
laume Mathieu,OU=IT, DC=msreport, DC=FR)
La valeur de lattribut UserPrincipalName (exemple : guillaume.
mathieu@msreport.fr)
La valeur de lattribut SamAccountName, avec le caractre @ et
avec le nom du domaine DNS (exemple : gmathieu@msreport.fr)
La valeur de lattribut SamAccountName, avec le caractre @ et
avec le suffixe UPN (exemple : gmathieu@msreport.fr)
Le nom du domaine NETBIOS avec le caractre \ et avec la valeur
du SamAccountName (exemple : Msreport\gmathieu)
Le nom canonique de lobjet (exemple : msreport.fr/IT/Guillaume
Mathieu)
La valeur de lattribut ObjectGUID (exemple : 43a1fa2b-9a8e-
4d46-92e5-aca403197f3f)
La valeur de lattribut displayName (exemple : Guillaume MATHIEU)
Une des valeurs de lattribut ServicePrincipalName
La valeur de lattribut ObjectSID (S-1-5-21-2479351881-
651737401-1049745595-1105)
Une des valeurs de lattribut SIDHistory.

Active Directory supporte le chiffrement SSL / TLS (connexion


LDAPs) pour empcher quun attaquant puisse obtenir le mot de passe
de lutilisateur lors dun LDAP Simple Bind.
`
121
4.1.2 LDAP SASL BIND:

SASL est lacronyme de Simple Authentication and Security Layer.


Cette mthode permet dutiliser des protocoles comme Kerberos,
NTLM V2, NTLM, LM ou DIGEST pour sauthentifier sur un serveur
LDAP. Elle permet dviter lenvoi du login / mot de passe en clair
sur le rseau. SASL permet dutiliser 4 protocoles dauthentification
prsents dans le tableau ci-dessous.

Je vous invite lire ces articles avant de poursuivre :


http://fr.wikipedia.org/wiki/Lightweight_Directory_Access_Pro-
tocol
http://blogs.technet.com/b/askds/archive/2009/09/21/unders-
tanding-ldap-security-processing.aspx

4.2 PRESENTATION DU PROTOCOLE NTLM V2

Le protocole dauthentification NTLM V2 est encore utilis et actif


dans les environnements Microsoft Windows bien que le protocole
dauthentification Kerberos soit plus scuris car :
1. Seul NTLM permet de sauthentifier une ressource
quand on y accde via son adresse IP.
2. Si une relation dapprobation externe a t cre entre
deux domaines (dans deux forts spares) et que vos contrleurs de
domaine sont sous Windows 2003, seul le protocole NTLM permet
un utilisateur du domaine A de sauthentifier une ressource du do-
maine B (et inversement). Avec des contrleurs de domaine Windows
2008 R2 (et versions ultrieures) cest maintenant possible de faire du
Kerberos avec une relation dapprobation externe. Pour plus dinfor-
mations, voir
http://jorgequestforknowledge.wordpress.com/2011/09/14/
kerberos-authentication-over-an-external-trust-is-it-pos-
sible-part-6/
3. Seul le protocole NTLM est support quand on sauthen-
tifie avec un compte de la base SAM locale dune machine Windows.
4. Seul le protocole NTLM est pris en charge par certains
systmes (comme Windows NT4) ou certaines applications.
Nous allons voir comment un client C peut accder un serveur

122
S en sauthentifiant avec le protocole NTLM V2. Le client C et le
serveur S sont tous les deux membres du domaine msreport.be.

Il y a 3 acteurs pour permettre lauthentification en NTLM :

Le client C : lutilisateur qui veut accder au service (comme le


partage de fichiers) du serveur S.
Le serveur S : la machine qui hberge le service (comme le partage
de fichiers).
Le contrleur de domaine : il va permettre dauthentifier le client C
et le serveur S.

Le protocole dauthentification NTLM V2 est un mcanisme de stimu-


lation/rponse qui permet des clients de sauthentifier (prouver leur
identit) sans envoyer leur mot de passe en clair par le rseau.
Le protocole NTLM V2 est une volution du protocole LM et NTLM.
On verra dans la suite de ce document que les protocoles LM et NTLM
(NTLM V1) doivent tre dsactivs car ils sont encore moins scuriss
que NTLM V2.
Dans notre exemple, le client ne sest pas encore authentifi auprs du
contrleur de domaine Active Directory. On part du principe que le
LMHASH est dsactiv. Lauthentification NTLM V2 ncessite alors
7 tapes.

1. Le client C ouvre sa session en saisissant son login et mot de passe.


La DLL msgina.dll va transfrer le login et le mot de passe de lutilisa-
teur au processus Lsass.exe (service NETLOGON).
2. Le Windows du client C gnre un hash du mot de passe de luti-
lisateur (NTHASH). Il efface de la mmoire le mot de passe en clair
saisi par lutilisateur. Le processus Lsass.exe conservera le NTHASH
de lutilisateur en mmoire aprs authentification. Le client envoie en
texte clair le login de lutilisateur au serveur S.
3. Le serveur S gnre un chiffre alatoire de 16 octets (appel
challenge ou nonce) et lenvoie au client.
4. Le client chiffre ce challenge avec son mot de passe au format
NTHASH et envoie le rsultat (la rponse) au serveur S.
5. Le serveur S renvoie le login de lutilisateur, le challenge et la r-
ponse (challenge chiffr avec le NTHASH de lutilisateur) au contr-
leur de domaine.
6. Le contrleur de domaine va chercher le NTHASH de lutilisateur
(il est dans lattribut UnicodePwd du compte utilisateur Active Direc-
tory) et chiffre le challenge avec. Le contrleur de domaine compare
alors le rsultat avec la rponse envoye par le serveur S. Si cela cor-
respond, le contrleur de domaine renvoie au serveur S le fait que le
123
client C est authentifi.
7. Le serveur S donne accs au client C.

Pour plus dinformations sur le protocole NTLM V2 :


http://davenport.sourceforge.net/ntlm.html
https://www.sstic.org/media/SSTIC2007/SSTIC-actes/Se-
crets_d_authentification_sous_Windows/SSTIC2007-Article-Se-
crets_d_authentification_sous_Windows-bordes.pdf
http://blogs.msdn.com/b/chiranth/archive/2013/09/21/ntlm-
want-to-know-how-it-works.aspx

4.3 PRESENTATION DU PROTOCOLE KERBEROS V5

Dans ce paragraphe, nous allons voir comment un client C peut accder


aux serveurs S en sauthentifiant avec le protocole Kerberos. Le client
C et le serveur S sont tous les deux membres du domaine msreport.be.

Le protocole Kerberos est le protocole le plus scuris pour authen-


tifier un utilisateur (ou un ordinateur) qui souhaite accder une res-
source (partage de fichiers) sur un serveur membre dun domaine Ac-
tive Directory. Dans un scnario type, il y a 3 acteurs :
Le client C (lutilisateur dans notre cas) qui souhaite sauthentifier
auprs dun serveur S.
Le serveur S (le serveur de fichiers, soit le compte ordinateur du
serveur S) qui doit sassurer de lauthenticit de C.
Le tiers de confiance, le KDC (le contrleur de domaine Active
Directory).

Chaque contrleur de domaine dispose du service Kerberos Key Dis-


tribution center (KDC).
Pour accder au serveur de fichiers S, le client C doit utiliser un nom
de domaine NETBIOS ou DNS. Ce nom doit tre ajout au niveau du
compte ordinateur du serveur de fichiers S dans lattribut ServicePrin-
cipalName en respectant le format suivant :
<service type >/< nom NETBIOS ou DNS >:< port number >/<
service name >
Exemple : Host/SRV2012C

124
SI vous spcifiez une adresse IP pour vous connecter un partage,
vous ne pourrez pas vous authentifier avec le protocole Kerberos car
lattribut ServicePrincipalName ignore les entres avec des adresses
IP. Vous devez utiliser le protocole dauthentification NTLM V2 pour
ce scnario.

Lauthentification Kerberos va consister en 6 changes rseaux pour


permettre au client C dtre authentifi par le serveur S. Dans lexemple
ci-dessous on part du principe que le client ne sest jamais encore au-
thentifi auprs dun contrleur de domaine. Il doit donc demander un
TGT son contrleur de domaine et une cl de session SCK (entre le
client C et le contrleur de domaine).

Les messages KRB_AS_REQ et KRB_AS_REP


Le client C ouvre sa session en saisissant son login et mot de passe. La
DLL msgina.dll va transfrer le login et le mot de passe de lutilisateur
au processus Lsass.exe (service NETLOGON).
Le client gnre un hash de son mot de passe (NTHASH) et efface de
la mmoire le mot de passe en clair quil a saisi. Le processus Lsass.
exe conservera le NTHASH de lutilisateur en mmoire aprs authen-
tification.
Le client va calculer sa cl secrte KC qui drive de son mot de passe
(au format NTHASH) selon la fonction de chiffrement utilise par
Kerberos (des-cbc-md5, aes128-cts-hmac-sha1, aes256-cts-hmac-
sha1, rc4-hmac-MD5).
La requte KRB_AS_REQ et la rponse KRB_AS_REP vont permettre
au client de demander un TGT au contrleur de domaine et une cl de
session entre le client et le KDC (SCK). Le processus Lsass.exe (service
NERTLOGON) conservera le TGT et les cls en mmoire. La cl KC
va permettre au client de prouver son identit au contrleur de domaine
(pr-authentification) et permettre de chiffrer les donnes confiden-
125
tielles des changes KRB_AS_REQ et KRB_AS_REP. Le contrleur
de domaine dispose aussi de la cl KC du client car cette dernire est
stocke sous diffrentes forme (pour les diffrents algorithmes utili-
ss par Kerberos) au niveau de lattribut supplementalCredentials du
compte utilisateur du client C (voir http://msdn.microsoft.com/en-
us/library/cc245674.aspx).

Les messages KRB_TGS_REQ et KRB_TGS_REP :


Ces 2 requtes vont permettre au client de rcuprer le ticket de service
(TS), pour se connecter sur le serveur de fichiers S) et de ngocier une
cl de session entre le Client C et le serveur S (SCS)
Le client sauthentifie auprs du contrleur de domaine en chiffrant
un authentifiant (contient le nom du client, date / heure, numro de
squence) avec la cl SCK et en transmettant son TGT.

Les messages KRB_AP_REQ et KRB_AP_REP :


Le client C va sauthentifier auprs du serveur S en transmettant le
ticket de service TS et en chiffrant un authentifiant avec la cl SCS.

Le schma ci-dessous synthtise les 6 changes entre le client C, le


serveur S et le contrleur de domaine.

Les changes sont scuriss car le client C, le serveur S et le contr-


leur de domaine disposent de cls secrtes. Le contrleur de domaine
connat les cls KS et KC car les cls sont stockes au niveau de lan-
nuaire Active Directory dans lattribut supplementalCredentials
des comptes utilisateurs et ordinateurs du domaine. Il peut donc
dchiffrer les messages du client C et du serveur S.

126
La cl secrte du client C (KC) est drive du mot de passe du
compte utilisateur en fonction de lalgorithme de chiffrement Kerbe-
ros utilis (des-cbc-md5, aes128-cts-hmac-sha1, aes256-cts-hmac-
sha1, rc4-hmac-MD5)
La cl secrte du serveur S (KS) est drive du mot de passe du
compte ordinateur car le service Server (partage de fichiers) sex-
cute dans le contexte du compte System soit du compte ordinateur
du serveur S en fonction de lalgorithme de chiffrement Kerberos
utilis (des-cbc-md5, aes128-cts-hmac-sha1, aes256-cts-hmac-sha1,
rc4-hmac-MD5)
La cl KKDC est drive du mot de passe du compte utilisateur
KRBTGT en fonction lalgorithme de chiffrement Kerberos utilis
(des-cbc-md5, aes128-cts-hmac-sha1, aes256-cts-hmac-sha1, rc4-
hmac-MD5). Comme ce mot de passe rplique sur tous les contr-
leurs de domaine (comme tout objet), la cl KKDC est la mme sur tous
les contrleurs de domaine.

Le paramtre Network Security configure encryption types allowed


for Kerberos permet de dfinir les algorithmes de chiffrement que Ker-
beros peut utiliser.

127
Les cls KC, KS, KKDC ont une dure de vie importante car :
Par dfaut le mot de passe des comptes ordinateurs change tous les 30
jours.
La dure de vie des mots de passe des comptes utilisateurs est gnra-
lement de plusieurs dizaines de jours (selon les stratgies de mots de
passe).
Le compte KRBTGT na pas loption Password never expires. Lat-
tribut pwdLastSet montre que le mot de passe a t dfini le 10 mars
2014 (lors de la cration du domaine). Le fait que le mot de passe ait
expir (90 jours dans cette configuration) nest pas un problme car ce
compte ne sert pas pour ouvrir une session. Seule la valeur du mot de
passe est importante pour lauthentification Kerberos.

La dure de vie du TGT (10 heures) et de Ticket de session TS (10


heures) se configure au niveau de la stratgie de groupe Default Do-
main Policy.
Lauthentifiant intgre lheure et date du jour. Cela permet Kerberos
dempcher une attaque par rejeu en autorisant par dfaut que 5 mi-
nutes de dcalage horaire entre le client C, le serveur S et le contrleur
de domaine (le KDC).

128
Le protocole dauthentification Kerberos standard permet lauthentifi-
cation mais ne permet pas le contrle des accs. En effet, le modle du
contrle daccs de Windows est bas sur les SID (Security Identifier).
Microsoft a donc dvelopp le protocole PAC qui est une extension
du protocole Kerberos. Le protocole PAC permet de rcuprer depuis
lannuaire le SID de lutilisateur et des groupes auxquels il appartient
(dont SID History) et de les stocker dans le champ Authorization Data
du TGT.
Windows gnrera ensuite partir des informations du TGT un jeton
daccs qui sera utilis pour contrler les accs de chaque processus
lanc par lutilisateur.

Si vous souhaitez comprendre en dtail le protocole Kerberos, je vous


invite lire le document dAurlien BORDES qui est trs complet,
bien fait et qui a servi de base pour la rdaction de ce chapitre sur
Kerberos.

http://www.ssi.gouv.fr/IMG/pdf/Aurelien_Bordes_-_Secrets_d_
authentification_episode_II_Kerberos_contre-attaque.pdf
http://blogs.msdn.com/b/openspecification/ar-
chive/2011/05/31/windows-configurations-for-kerberos-sup-
ported-encryption-type.aspx

129
4.4 LA DELEGATION DAUTHENTIFICATION KERBEROS

La dlgation Kerberos est une fonctionnalit qui permet un serveur


A (qui hberge un site web par exemple) de sauthentifier en prenant
lidentit dun utilisateur B (qui sest au pralable authentifi sur le
serveur A) pour accder une ressource sur le serveur C.
Quand la dlgation Kerberos est active, lutilisateur envoie un TGT
spcial gnr pour lui mais avec lattribut Forwarded au serveur B
(on parle de Forwarded TGT).

La dlgation Kerberos est autorise :

1. Si le compte ordinateur du serveur hbergeant le service est confi-


gur pour la dlgation. Ce nest pas le cas par dfaut. Seul le compte
ordinateur dun contrleur de domaine est activ pour la dlgation
pour tous les services hbergs sur le contrleur de domaine.
2. Si le compte utilisateur autorise la dlgation. Cest le cas par d-
faut. Loption Account is sensitive and cannot be delegated permet de
bloquer la dlgation pour les comptes utilisateurs spcifiques. Elle
doit tre active pour les comptes dadministration.

130
4.5 LES BONNE PRATIQUES POUR RENFORCER LA
SECURITE DE LANNUAIRE ACTIVE DIRECTORY

4.5.1 NE PAS EFFECTUER DE CONNEXIONS LDAP SIMPLE BIND


SANS SSL / TLS

Un LDAP Simple Bind consiste envoyer le login de lutilisateur et le


mot de passe en clair par le rseau. Cette mthode nest pas scurise
car une personne tierce peut intercepter le login et mot de passe de
lutilisateur avec un analyseur rseau comme Wireshark
(https://www.wireshark.org).
La capture ci-dessous montre comment un attaquant potentiel voit une
connexion LDAP Simple Bind sur le rseau.

131
Il est recommand de gnrer un certificat bas sur le modle Domain
Controller sur tous les contrleurs de domaine. Il sera alors possible
deffectuer un LDAP Simple Bind scuris laide dune connexion
SSL / TLS.

4.5.2 ACTIVER LA SIGNATURE DU TRAFIC LDAP

Chez plusieurs de mes clients, le message davertissement suivant ap-


paraissait dans les observateurs dvnements :

Log Name: Directory Service


Source: Microsoft-Windows-ActiveDirectory_DomainService
Date: 12/11/2014 08:42:38
Event ID: 2886
Task Category: LDAP Interface
Level: Warning
Keywords: Classic
User: ANONYMOUS LOGON
Computer: TPODC1.tpo.net
Description:
The security of this directory server can be significantly en-
hanced by configuring the server to reject SASL (Negotiate,
Kerberos, NTLM, or Digest) LDAP binds that do not request
signing (integrity verification) and LDAP simple binds that are
performed on a cleartext (non-SSL/TLS-encrypted) connection.
Even if no clients are using such binds, configuring the server to
reject them will improve the security of this server.

Some clients may currently be relying on unsigned SASL binds


or LDAP simple binds over a non-SSL/TLS connection, and will
stop working if this configuration change is made. To assist in
identifying these clients, if such binds occur this directory server
will log a summary event once every 24 hours indicating how
many such binds occurred. You are encouraged to configure
those clients to not use such binds. Once no such events are
observed for an extended period, it is recommended that you
132
configure the server to reject such binds.

You can enable additional logging to log an event each time a


client makes such a bind, including information on which client
made the bind. To do so, please raise the setting for the LDAP
Interface Events event logging category to level 2 or higher.

Larticle Microsoft http://support.microsoft.com/kb/935834/


en-us explique quil est possible dactiver la signature LDAP pour
bloquer les commandes LDAP Simple Bind sans SSL / TLS et pour
bloquer les commandes LDAP SASL Bind sans signature.
Lutilisation dune connexion TLS / SSL (ncessite un certificat) per-
met de signer le trafic LDAP. Cest pour cela que la signature LDAP
nest pas ncessaire pour un LDAP Simple Bind avec SSL / TLS.

Pour activer ce changement :

1. Editer la stratgie de groupe Default Domain Controller Policy. Al-


ler dans Computer Configuration\Windows Settings\Security Settings\
Local Policies\Security Options. Configurer le paramtre Domain
controller - LDAP server signing requirements sur Require signing.

2. Editer la stratgie de groupe Default Domain Policy. Aller dans


Computer Configuration\Windows Settings\Security Settings\Local
Policies\Security Options. Configurer le paramtre Network security:
LDAP client signing requirements sur Require signing.

133
Pour vrifier que le nouveau rglage est en production, lancer lutili-
taire LDP.EXE.
Cliquer sur Connection | Connect. Entrer lIP du contrleur de do-
maine. Ne pas cocher la case SSL.
Lannuaire envoie cette information :
supportedSASLMechanisms (4): GSSAPI; GSS-SPNEGO; EXTER-
NAL; DIGEST-MD5;
Aller ensuite dans Connection | Bind.
Saisir le nom de votre utilisateur et slectionner la case Simple bind.

Lerreur suivante doit apparatre :


Error 0x2028. A more secure authentication method is required
for this server.
En effet, les commandes LDAP Simple Bind ne sont plus autorises
sans SSL / TLS.

134
Installer Active Directory Certificate Services (voir procdure en an-
nexe) sur un serveur membre. Crer une autorit de certification racine
dentreprise (une autorit de certification 1 tiers est suffisante pour la
dmonstration).
Par dfaut les contrleurs de domaine Windows 2012 R2 sont configu-
rs pour obtenir un certificat de type Domain controller via lautoen-
rollment. Pour forcer la gnration du certificat, taper la commande
gpupdate /force sur le contrleur de domaine Windows 2012 R2. Vous
devez maintenant disposer dun certificat de type Domain Controller.

Vous pouvez maintenant tester un LDAP SIMPLE BIND avec SSL /


TLS.
Entrer le nom DNS du contrleur de domaine et cocher la case SSL.

Vous devez obtenir le rsultat suivant :


res = ldap_simple_bind_s(ld, msreport\administrator, <una-
vailable>); // v.3
Authenticated as: MSREPORT\Administrator.

Click on View | Tree. Ajouter le chemin LDAP du domaine (DC=msre-


port,dc=be dans cet exemple)

135
Vous pouvez maintenant parcourir lannuaire Active Directory.

Activer la signature LDAP uniquement aprs lavoir valide sur ma-


quette et aprs avoir identifi toutes les applications qui effectuent des
requtes dauthentification LDAP Simple Bind.

Pour identifier les applications qui effectuent des LDAP Simple Bind,
il faut filtrer le journal dvnement sur lID 2887 comme indiqu dans
larticle http://support.microsoft.com/kb/935834/en-us.

4.5.3 DESACTIVER LES PROTOCOLES DAUTHENTIFICATION NTLM

Active Directory permet de sauthentifier avec les protocoles LM,


NTLM V1, NTLM V2 et Kerberos (on fait abstraction du protocole
DIGEST qui ncessite une configuration spciale non scurise et non
active). Si vous disposez uniquement de machines sous Windows 7 et
Windows 2008 R2, vous pouvez dsactiver le protocole LM et NTLM.
Seuls les protocoles dauthentification NTLM V2 et Kerberos seront
autoriss.
Il est aussi possible dinterdire le protocole NTLM V2 mais cela nces-
site une phase dEtude trs pousse (voir plus loin dans ce document).

Lutilisation des protocoles LM, NTLM V1 et NTLM V2 est contrle


par la stratgie de groupe Network security: LAN Manager authenti-
cation level.
Lancer la console GPMC.MSC et diter la Default Domain Policy. Al-
ler dans Computer Configuration | Policies | Windows Settings | Secu-
rity Settings | Security Options.
Configurer le paramtre Network security: LAN Manager authentica-
tion level sur Send NTLMv2 response only. Refuse LM & NTLM.
Faire la mme action au niveau de la Default Domain Controller Policy
(pour viter tout conflit potentiel).
Avec ce rglage, les protocoles LM et NTLM V1 sont dsactivs, ce qui
permet daugmenter le niveau de scurit de lannuaire.
136
Exemples dapplications ncessitant les protocoles NTLM ou LM :
Les serveurs de fichiers / NAS qui sappuient sur SAMBA doivent
tre au minimum en version 3.0 comme indiqu sur le site http://
www.samba.org/samba/history/.
Vous devez disposer du service pack 4 pour les stations de travail
Windows NT4.

Une tude de limpact de la dsactivation de LM et NTLM doit


tre effectue avant de configurer ce paramtre sur lenvironne-
ment de production.

Il est possible daller plus loin et de dsactiver aussi le protocole


NTLM V2. Cette action est fortement dconseille et ncessite une
analyse trs pousse des impacts au niveau des applications. Elle peut
sappliquer des environnements de recherche avec des contraintes de
scurit trs hautes.

Pour dsactiver NTLM V2 (et aussi tous les variantes comme LM


et NTLM) :
Lancer la console GPMC.MSC et diter la Default Domain Policy. Al-
ler dans Computer Configuration | Policies | Windows Settings | Secu-
rity Settings | Security Options.
Configurer le paramtre Network security: Restrict NTLM: NTLM au-
thentication in this domain sur la valeur Deny all.

137
Dans ce mode, tout le trafic NTLM est interdit sauf celui pour les ma-
chines ajoutes dans le paramtre de GPO Network security: Restrict
NTLM: Add server exceptions for NTLM authentication in this do-
main. Louverture de session avec un compte de la base SAM locale
sur une machine Windows se fait toujours en NTLM aussi.

Lutilisation de lauthentification Kerberos ncessite quun Service-


PrincipalName soit cr pour identifier tous les serveurs et les appli-
cations de lentreprise. Il sera ncessaire de crer un SPN pour tous
les alias DNS. Dans lexemple ci-dessous, le serveur CHBAADMT
dispose dune instance ADMT SQL Server 2008 R2. Pour sauthen-
tifier sur cette instance SQL Server 2008 R2, lattribut ServicePrin-
cipalName du compte ordinateur CHBAADMT doit contenir lentre
suivante :
MSSQLSvc/CHBAADMT.chidf75.net:ADMT.

Pour visualiser lattribut ServicePrincipalName, configurer la console


Active Directory Users and Computers en mode daffichage Advanced
Features. Aller ensuite dans longlet Attribute Editor et slectionner
ServicePrincipalName. Pour ajouter ou supprimer un SPN, utilisez
loutil Setspn.exe.

138
Pour dsactiver NTLM V2, il est donc ncessaire de vrifier si toutes
vos applications qui sauthentifient avec des comptes utilisateurs Ac-
tive Directory supportent Kerberos et si vous avez cr tous les Ser-
vicePrincipalName requis.
Si le protocole NTLM est dsactiv, laccs une application via son
IP nest plus possible. Le message derreur The network name cannot
be found.

Pour vous aider dans cette tche, il est possible dactiver un paramtre
de GPO qui va crer un log avec toutes les applications / machines qui
utilisent le protocole NTLM au niveau du journal Applications and
Services Log/Microsoft/Windows/NTLM. Ce paramtre ncessite de
disposer de contrleur de domaine Windows 2008 R2.
Je vous invite lire ces deux articles pour plus dinformations sur com-
ment bloquer lauthentification LM et NTLM V1, NTLM V2.
http://blogs.technet.com/b/askds/archive/2009/10/08/nt-
lm-blocking-and-you-application-analysis-and-auditing-metho-
dologies-in-windows-7.aspx
http://technet.microsoft.com/en-us/library/jj865680(v=ws.10).
aspx
http://technet.microsoft.com/en-us/library/jj865671(v=ws.10).
aspx

139
4.5.4 AUTORISER UNIQUEMENT LES ALGORITHMES DE CHIFFRE-
MENT AES128_HMAC_SH1 ET AES256_HMAC_SH1 AVEC KERBEROS

Si vous disposez uniquement de machines sous Windows 7 / Windows


2008 R2 et versions ultrieures, vous pouvez autoriser uniquement les
protocoles de chiffrement AES128_HMAC_SH1 et AES256_HMAC_
SH1SH1 pour Kerberos.
Les algorithmes de chiffrement AES128_HMAC_SH1 et AES256_
HMAC_SH1 sont en effet beaucoup plus scuriss que DES_CBC_
MD5 ou RC4_HMAC_MD5 (protocole le moins scuris).

Pour activer ce rglage :


Lancer la console GPMC.MSC et diter la Default Domain Policy.
Aller dans Computer Configuration | Policies | Windows Settings | Se-
curity Settings | Security Options. Au niveau du paramtre Network
Security: Configure Encryption types allowed for Kerberos, cocher
uniquement les cases AES128_HMAC_SH1 et AES256_HMAC_SH1.
Faire la mme chose au niveau de la Default Domain Controller Policy.

Ce rglage affecte tous les comptes utilisateurs et tous les comptes


ordinateurs du domaine. Il crase les paramtres dfinis au niveau des
comptes utilisateurs et ordinateurs comme expliqu dans larticle Mi-
crosoft suivant :
http://blogs.msdn.com/b/openspecification/ar-
chive/2011/05/31/windows-configurations-for-kerberos-sup-
ported-encryption-type.aspx

140
Ce rglage peut poser problme avec certaines applications. Il sera
donc ncessaire de valider le bon fonctionnement de vos applications
aprs mise en uvre. Je vous invite lire les articles ci-dessous qui en
parlent:
http://technet.microsoft.com/en-us/library/dd560670(v=WS.10).
aspx
http://windowsitpro.com/security/q-can-default-encryp-
tion-types-kerberos-authentication-protocol-uses-win-
dows-7-and-windows-
https://dirteam.com/sander/2014/07/15/security-thoughts-le-
veraging-ntlm-hashes-using-kerberos-rc4-hmac-encryp-
tion-aka-aorato-s-active-directory-vulnerability/
141
4.5.5 CONFIGURER LA SYNCHRONISATION HORAIRE

Le protocole Kerberos supporte un maximum de 5 minutes de dca-


lage horaire (configurable au niveau des stratgies Kerberos de la De-
fault Domain Policy).

Il est donc vital de configurer la politique de synchronisation horaire.


Cette dernire se fait (par dfaut) au travers du service W32Time. Sur
les machines membres du domaine, ce service sert de client NTP.

Les machines membres du domaine se synchronisent sur un des


contrleurs de leur domaine. Lentre de registre HKEY_LOCAL_MA-
CHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\
Type doit avoir comme valeur NT5DS.

Sur les contrleurs de domaine, le service W32Time joue la fois le


rle de client NTP et de serveur NTP. Les contrleurs de domaine
doivent synchroniser leur heure depuis le contrleur de domaine avec
le rle Emulateur PDC de leur domaine ou avec un contrleur du do-
maine parent ou racine.

Au niveau du domaine racine de la fort, les contrleurs de domaine


doivent se synchroniser sur lEmulateur PDC du domaine racine.

A son tour ce serveur (le contrleur du domaine racine avec le rle


PDC Emulator) va devoir se synchroniser avec une source de temps
fiable. Il faut pour cela passer lentre de registre Type sur la valeur
NTP et dfinir un serveur NTP comme time.windows.com.
Pour effectuer cette action taper la commande suivante :
w32tm /config /computer:<<PDC-FQDN>> /manualpeerlist:-
time.windows.com /syncfromflags:manual /update
On peut voir que lentre de registre Type a t configure sur la valeur
NTP (au lieu du NT5DS).

142
Comment faire si tous vos contrleurs de domaine sont des ma-
chines virtuelles ?
Tous les serveurs de virtualisation (comme Hyper-V, VMware ESX)
doivent se synchroniser manuellement et directement sur le mme ser-
veur de temps que lEmulateur PDC du domaine racine de la fort. Si
vous disposez dHyper-V, il faut appliquer la mme commande que
pour lEmulateur PDC.
w32tm /config /computer:<<HYPERV>> /manualpeerlist:time.
windows.com /syncfromflags:manual /update
Pour autres machines virtuelles (dont les contrleurs de domaine), on
reste sur le rglage standard prsent ci-dessus.
http://blogs.technet.com/b/nepapfe/archive/2013/03/01/
it-s-simple-time-configuration-in-active-directory.aspx
http://technet.microsoft.com/fr-fr/library/dd723673(v=ws.10).
aspx

4.5.6 ACTIVER LOPTION ACCOUNT IS SENSITIVE AND CANNOT


BE DELEGATED SUR TOUS LES COMPTES UTILISATEURS AVEC DES
PRIVILEGES DADMINISTRATION SUR LANNUAIRE ACTIVE DIREC-
TORY

Quand la dlgation Kerberos est active, lutilisateur A envoie un


TGT Forwarded (TGT de lutilisateur) au serveur B. Ce comportement
est trs risqu avec des comptes utilisateurs disposant de privilges
importants car un attaquant peut faire une lvation de privilge sil
arrive compromettre le serveur B.

Une bonne pratique est de dfinir loption Account is sensitive and can-
not be delegated sur tous les comptes utilisateurs avec des privilges
dadministration sur lannuaire Active Directory.

143
144
4.6 ELVATION DE PRIVILGE AVEC LATTAQUE NTLM
PASS THE HASH (NTLM) ET PASS THE TICKET (KERBE-
ROS)

Dans lexemple ci-dessous on part du principe que le LMHASH est


dsactiv. Lutilisateur sest dj authentifi avec le contrleur de do-
maine laide du protocole NTLM.

Une fois que lutilisateur est authentifi sur sa station (ouverture de


session locale), comment arrive-t-il accder des ressources situes
sur dautres machines sans devoir sauthentifier de nouveau chaque
fois (sans demande du login / mot de passe) ?
Le processus Lsass.exe va gnrer un HASH partir du mot de passe
de lutilisateur (le NTHASH) et le stocker en mmoire une fois lou-
verture de session effectue.
Pour accder des ressources rseaux, lutilisateur fait une ouverture
de session rseau. Avec le protocole NTLM, cette ouverture de session
rseau ncessite uniquement que la machine dispose du NTHASH (le
Hash du mot de passe de lutilisateur) pour chiffrer le challenge en-
voy par le serveur.

Windows ne redemande donc pas le login / mot de passe car il a dj


cette information en mmoire.

4.6.1 COMPRENDRE UNE ATTAQUE NTLM PASS THE HASH

Les attaques de type Pass-the-hash consistent sauthentifier, non


pas laide du mot de passe de lutilisateur mais de son empreinte (le
NTHASH). Lattaquant peut rcuprer le NTHASH de lutilisateur de
plusieurs manires :

En analysant la mmoire du processus Lsass.exe.


Via les entres de registre HKEY_LOCAL_MACHINE\SECURITY.
En analysant le contenu de la base SAM (HKEY_LOCAL_MA-
CHINE\SAM). Cette attaque marche pour les comptes locaux de la
base SAM.
En analysant le contenu du fichier NTDS.DIT (annuaire Active
Directory)

145
Comme il nest pas toujours possible (mme avec des rainbow tables)
de rcuprer le mot de passe en clair partir du NTHASH, lattaquant
va simuler le fonctionnement dune ouverture de session rseau avec
le protocole NTLM. Le dtail de cet change est prsent ci-dessous :

1. Lattaquant envoie en texte clair le login de lutilisateur au serveur S.

2. Le serveur S gnre un chiffre alatoire de 16 octets (appel


challenge ou nonce) et lenvoie au client.

3. Lattaquant chiffre le challenge avec le mot de passe au format


NTHASH de lutilisateur quil a rcupr (la rponse) et lenvoie au
serveur S.

5. Le serveur S renvoie le login de lutilisateur, le challenge et la r-


ponse (challenge chiffr avec le NTHASH de lutilisateur) au contr-
leur de domaine.

6. Le contrleur de domaine va chercher le NTHASH (mot de passe


de lutilisateur dans lannuaire Active Directory) et chiffre le challenge
avec. Le contrleur de domaine compare alors le rsultat avec la r-
ponse envoye par le serveur S. Si cela correspond, le contrleur de
domaine renvoie au serveur S le fait que lauthentification est correcte.

7. Le serveur S donne accs lattaquant.

Le principe est similaire avec le protocole dauthentification Kerberos


(attaque Pass The Key)
Si un attaquant arrive extraire la cl KC de lutilisateur, il peut de-
mander un TGT sans connatre le mot de passe de lutilisateur. Cette
attaque ncessite de modifier le contenu de la mmoire du processus
Lsass.exe (service Netlogon).
Lattaquant doit ensuite entrer la commande Klist purge pour suppri-
mer le ticket existant. Ds que lattaquant accdera une nouvelle res-
source rseau, un nouveau ticket TGT sera gnr.

146
4.6.2 LA PROCEDURE POUR UNE ATTAQUE NTLM PASS THE HASH

Les principaux outils pour faire une attaque NTLM Pass the Hash
fonctionnant sous Windows 7 sont :

Metasploit PSEXEC module : loutil SMBPass permet de passer le


Hash une autre machine.
Tenable smbshell : permet de passer le Hash dune machine.
Un pas pas est disponible dans larticle suivant : http://www.ldap389.
info/2012/11/16/test-d-intrusion-active-directory-pentest/

4.6.3 COMMENT SE PROTEGER CONTRE LES ATTAQUES NTLM


PASS THE HASH

Cette attaque ncessite les prrequis suivants :

Rcuprer les droits administrateurs sur la machine compromise.


Disposer du privilge Debug programs.

Pour limiter le risque dattaque Pass-The-Hash il faut :
Empcher les utilisateurs avec des privilges importants douvrir
une session sur les stations de travail local.
Eviter les services ou les applications qui tournent avec le compte
System.
Eviter dutiliser des tches planifies avec le compte System.
Eviter que les utilisateurs soient administrateurs locaux de leur(s)
machine(s) et/ou bloquer le privilge Debug programs.
Eviter que le mot de passe administrateur local soit le mme sur
toutes les stations de travail et serveurs.
Dployer les mises jour de scurits sur les stations de travail et
les serveurs.
Dsactiver le protocole NTLM et toutes ces variantes (LM, NTLM
et NTLM V2). Comme vu prcdemment cest trs complexe
mettre en place.

147
5 LE GESTION DES ACCES AVEC ACTIVE
DIRECTORY

La gestion des accs dans le monde de Microsoft Windows repose


sur les lments suivants :

Les SID (Security Identifier)


Les permissions (permissions NTFS, permissions de partages, per-
missions sur les entres de registre, permissions sur les objets Active
Directory).
Les privilges systmes.
Les processus.
Les jetons daccs.
Nous verrons aussi dans cette partie comment fonctionnent les
processus et les services Windows.

5.1 LES SID

Un SID est un identifiant de scurit unique. Les comptes utilisateurs,


groupes et les comptes ordinateurs de lannuaire Active Directory dis-
posent dun SID. Les comptes utilisateurs et les groupes de la base
SAM (base de compte locale) disposent aussi dun SID.
Dans les environnements Microsoft, le contrle des accs se fait
laide de jetons daccs. Un jeton daccs contient entre autres le
SID du compte de lutilisateur et le SID de chaque groupe dont est
membre directement ou indirectement lutilisateur (groupe membre
dun autre groupe). Un SID se dcompose en 3 parties (exemple avec
S-1-5-21-1712426984-1618080182-1209977580-1109) :

S-1-5- : indique que le SID a t gnr par Windows Security_NT_


Authority.
21-1712426984-1618080182-1209977580 : reprsente lidentifiant
unique du domaine.
1109 : cest lidentifiant unique de la ressource (un compte utilisa-
teur dans notre cas).

148
Le SID est stock au niveau de lattribut objectSid qui est gr par le
systme. Un administrateur ne peut pas modifier la valeur de cet attri-
but ou affecter le SID dun compte utilisateur qui a t supprim un
autre compte utilisateur (do la problmatique dune suppression de
compte accidentelle).

Quand on donne des permissions lutilisateur melanie.mathieu sur un


dossier appel Partage (onglet Security), cest le SID de ce compte qui
dispose des permissions dans le systme de fichiers NTFS. Windows
rsout le SID en un nom dans longlet Security pour le confort des uti-
lisateurs. Si on supprime le compte utilisateur melanie.mathieu et que
lon ferme / ouvre de nouveau la session (redmarrage sous Windows
2012 R2), lancien compte utilisateur apparat sous forme dun SID.

149
Pour afficher le SID dun utilisateur, utilisez la console ADSIEDIT.
MSC, lditeur dattribut dans des consoles Active Directory Users
and Computers et Active Directory Administrative Center ou loutil
PSGETSID
(http://technet.microsoft.com/en-us/sysinternals/bb897417.
aspx).
Certains SID saffichent sous la forme suivante : S-1-5-32-544, S-1-
5-32-545. Il sagit du SID des groupes par dfaut de la base SAM ou
dentits de scurits connues (Well-known Security Principal) comme
Authenticated Users.
Le SID (attribut objectSid) ne doit pas tre confondu avec le GUID
(objectGuid) qui lui est lidentifiant unique dun objet dans la fort
Active Directory.

Quand un poste est migr dun domaine (NT4, Samba ou Active Di-
rectory) vers un autre domaine avec un outil de migration comme Mi-
crosoft ADMT ou Dell Migration Manager for Active Directory, le SID
du compte utilisateur de lancien domaine (domaine source) peut tre
recopi dans lattribut SIDHistory du compte utilisateur du nouveau
domaine (domaine cible). Cette opration permet une migration entre
deux domaines en douceur. Nous verrons plus loin dans ce document
que lutilisation du SID History (attribut SidHistory) pose des pro-
blmes de scurit. Pour plus dinformations sur les migrations avec
Microsoft ADMT, consulter les liens suivants :
http://msreport.free.fr/?p=443
http://www.microsoft.com/en-US/download/details.as-
px?id=19188

150
5.2 LES PERMISSIONS

Les permissions NTFS (onglet Security dans les proprits dun dos-
sier / fichier) sont bases sur 13 permissions. La permission la plus im-
portante est Take ownership. Elle permet de devenir propritaire dun
fichier / dossier. Hors le propritaire dun fichier / dossier peut modifier
les permissions et se donner un accs aux fichiers / dossiers.

Les permissions sur les entres de registre sont bases sur 11 permis-
sions. La permission la plus importante est Write owner. Elle permet de
devenir le propritaire de la cl ou de lentre de registre. Le propri-
taire dispose du droit de modifier les permissions.

Les permissions sur les objets Active Directory sont beaucoup plus
complexes. Je vous invite consulter la partie 2 de ce document
Les bonnes pratiques pour dlguer ladministration de son annuaire
active directory pour plus dinformations.

Les permissions NTFS, les permissions sur le registre et les permis-


sions sur lannuaire Active Directory dispose dun mcanisme appel
Hritage qui permet de propager les permissions dun conteneur pa-
rent (un dossier, une cl de registre ou une OU par exemple) des ob-
jets enfants (fichiers, entres de registre, compte utilisateur / groupe).
Lhritage peut tre dsactiv si besoin.

Si on donne sur un contrleur de domaine un utilisateur standard


(non membre des groupes dadministration) la permission Full Control
sur tous les fichiers de tous les volumes disques, sur toutes les entres
du registre et sur tous les objets de toutes les partitions de lannuaire
Active Directory, cet utilisateur disposera de droits presque quiva-
lents un administrateur local de la machine, un administrateur du
domaine, un administrateur de lentreprise et un administrateur de
schma.
151
Il ne pourra cependant toujours pas ouvrir de session sur un contrleur
de domaine.
Cela est li au fait que lutilisateur ne dispose pas du privilge Allow
Log on locally.

Que se passe-t-il si vous supprimez le compte utilisateur qui tait


le propritaire dun fichier et quil tait le seul avoir des droits
sur le fichier ?
Microsoft a gr ce cas de figure et a cr pour cela le privilge dad-
ministration Take ownership of files or other objects. Nous verrons que
ce privilge permet par dfaut un administrateur local de devenir le
propritaire dun fichier (entre autres) et donc de changer les permis-
sions sur ce fichier.

5.3 LES PRIVILEGES

Les privilges sont des droits donns un utilisateur comme le fait de


pouvoir contourner les permissions NTFS (Take ownership of files or
other objects) ou daccder la mmoire utilise par tous les processus
(Debug programs) ou douvrir une session localement (Allow Log on
locally).
Les privilges sont au nombre de 44 sur une machine Windows Ser-
ver 2012 R2 et se configurent sous forme de paramtres de GPO dans
Computer Configuration | Policies | Windows Settings | Security Set-
tings | Local Policies | User Rights Assignment.
Larticle Microsoft ci-dessous prsente chacun de ces paramtres en
dtail :
http://technet.microsoft.com/en-us/library/db585464-a2be-
41b1-b781-e9845182f4b6(v=ws.10)#BKMK_2.

Les comptes administrateur et System disposent de tous les droits sur


une machine Windows car ils disposent dun accs Contrle Total sur
152
presque tous les lments du systme (fichiers, entres de registre)
et de presque tous les privilges.
Larticle Microsoft http://technet.microsoft.com/en-us/library/
bb457125.aspx explique la notion de privilge en dtails sur un sys-
tme Windows.
Les privilges avec les impacts les plus importants sur la scurit de
lannuaire Active Directory sont dcrits ci-dessous.

Act as part of the operating system (SeTcbPrivilege) : ce privilge


permet doutrepasser certains contrles lors de louverture de session.
Il est rserv aux processus censs ouvrir les sessions des utilisateurs.
Winlogon.exe et le service seclogon ont besoin de ce privilge. Il est
recommand de donner ce privilge personne. Par dfaut, il nest
assign personne.

Add workstations to domain (SeMachineAccountPrivilege) : permet


dajouter une machine dans le domaine (jusqu 10 stations de travail
par dfaut). Par dfaut ce privilge est donn aux groupes Authen-
ticated Users. Si vous ne souhaitez pas quun utilisateur standard
puisse joindre une machine au domaine, ce privilge doit tre reconfi-
gur.

Back up files and directories(SeBackupPrivilege) : permet de sau-


vegarder les donnes mme sans avoir les permissions. Ce privilge
est trs critique et est donn aux groupes Backup Operators et Server
Operators. Cest pour cette raison que les administrateurs de conte-
nus ne doivent pas tre membre de ces 2 groupes.

Create a token object (SeCreateTokenPrivilege) : ce privilge per-


met de crer un jeton daccs. Il nest donn aucun compte utilisa-
teur et cela doit rester ainsi.

Debug programs (SeDebugPrivilege) : ce droit permet un uti-


lisateur douvrir nimporte quel processus, daccder son espace
mmoire et de copier ses ressources. Cest sur ce privilge que
repose loutil INCOGNITO.EXE (prsent plus loin dans ce docu-
ment). Normalement, aucun service de production ne doit reposer sur
ce privilge, il sert en gnral au dveloppement dapplications et au
troubleshooting avanc. Par dfaut, les Administrateurs ont ce privi-
lge. Dans lidal, personne ne devrait avoir ce privilge. Il faudrait
lactiver la demande ou crer un groupe de scurit ddi.
Enable computer and user accounts to be trusted for delegation
(SeEnableDelegationPrivilege) : permet de dfinir qui peut autoriser

153
ou non un utilisateur / ordinateur faire de la dlgation Kerberos.

Generate security audits (SeAuditPrivilege) : dtermine qui peut


gnrer des vnements dans le journal scurit. Ce privilge est
important car il existe une stratgie de groupe qui permet de bloquer
louverture de session quand le journal Security est plein (sauf pour
les administrateurs). Un attaquant pourrait gnrer des milliers dv-
nements daudit dans le seul but de bloquer louverture de session
pour les utilisateurs standards.

Impersonate a client after authentication (SeImpersonatePrivilege)


: permet un processus de prendre lidentit dun utilisateur quil
aurait authentifi. Il faut tudier la pertinence de laisser ce privilge
un Administrateur. Par dfaut, les Administrateurs, SERVICE, LOCAL
SERVICE et NETWORK SERVICE ont ce privilge.

Manage auditing and security log (SeSecurityPrivilege) : dtermine


qui peut consulter et vider le journal Security. Par dfaut les adminis-
trateurs disposent de ce droit. Seules les personnes en charge du suivi
des actions sur lannuaire (audits et contrles) devraient disposer du
droit deffacer le journal Security sur les contrleurs de domaine.

Restore files and directories (SeRestorePrivilege) : permet de


dterminer les comptes utilisateurs qui peuvent passer outre les
permissions lors des oprations de restauration. Lutilisateur dispose
dun quivalent des permissions NTFS Traverse Folder / Execute file
et Write.

Take ownership of files or other objects (SeTakeOwnershipPrivile-


ge) : permet de devenir propritaire dun fichier, cl de registre (entre
autres) et donc de redfinir les permissions NTFS sur ce fichier ou cl
de registre.

Il existe aussi des privilges qui permettent dautoriser ou interdire une


ouverture de session interactive (ouverture de session locale ou via le
bureau distance) ou sous forme dune tche planifie. Ces privilges
doivent aussi tre configurs avec soin.

154
5.4 LES PROCESSUS

Un processus est gnr pour chaque excutable qui dmarre sur le


systme Windows (un service ou une application). On peut voir la liste
des processus dans le Task Manager (onglet Details sous Windows
2012 R2). Il est possible de personnaliser laffichage des colonnes
pour visualiser entre autres lexcutable qui a gnr le processus, sa
consommation mmoire, le contexte du processus (le compte utilisa-
teur, lentit de scurit, le MSA ou le gMSA qui excute le processus).

5.5 LES SERVICES

Pour visualiser et configurer les services, vous pouvez utiliser la


console MMC SERVICES.MSC ou diter les entres de registre sous
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.
Les services sont des excutables qui dmarrent manuellement ou au-
tomatiquement dans le contexte dun compte utilisateur. Les services
peuvent sexcuter dans le contexte dun compte utilisateur, dune
entit de scurit (System, Local System, Network Service), dun
MSA ou dun gMSA.
Le service NETLOGON sexcute avec le compte System (compte
systme local) et lance lexcutable c:\windows\system32\lsass.exe.
Certains services effectuent des actions spcifiques si le service sar-
rte de manire incorrecte. Le service Remote Procedure Call (RPC)
redmarre la machine en cas darrt incorrecte du service RPC. Le
virus BLASTER gnrait un plantage du service RPC laide dune
faille scurit dcrite dans larticle http://support.microsoft.com/
kb/826955/en-us dans le seul but de forcer un redmarrage de la ma-
chine.

155
Windows utilise SVCHOST (c:\windows\system32\svchost.exe)
pour charger certains services Windows. Plusieurs instances de
Svchost.exe peuvent tre excutes simultanment. Chaque instance
peut excuter un ou plusieurs services (dit groupe de services). Tous
les groupes de services grs par SVCHOST se trouvent dans la cl de
registre suivante :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Cur-
rentVersion\Svchost

156
Tous les services dun mme groupe de services SVCHOST sex-
cutent dans le mme processus (c:\windows\system32\svchost
-k nom_du_group_services_Svchost) et sexcutent donc dans le
contexte du mme compte utilisateur. On peut voir ce fonctionnement
dans le gestionnaire de tches Windows. (onglet processus).

Longlet Services du Task Manager permet de voir les diffrents


groupes de services SVCHOST.

157
Pour plus dinformations sur SVCHOST : http://support.microsoft.
com/kb/314056/fr

Depuis Windows Server 2008 R1, Microsoft a inclus un niveau mca-


nisme appel Windows Service Hardening qui permet de mieux prot-
ger les services contre les attaques. Cette fonctionnalit ncessite que
le service Windows Firewall soit dmarr. Ce service ne doit jamais
tre arrt. Pour dsactiver le pare-feu Windows sans arrter le service
Windows Firewall, configurer les 3 profils du pare-feu sur Off.

158
Avec la fonctionnalit Windows Service Hardening, chaque service
peut maintenant disposer dun SID. Cela se dfinit au niveau du para-
mtre SidType dun service qui peut avoir 3 valeurs :
None : le service ne disposera pas dun SID.
Unrestricted : le service disposera dun SID.
Restricted : le service disposera dun SID et dun jeton restreint
(mme principe que lUAC).
Chaque service peut alors disposer dun SID ce qui va permettre de
donner des droits sur le systme de fichiers, entres de registre Win-
dows ce service.

Exemples avec le service client DHCP :

Je vous invite lire ces deux articles pour plus dinformations sur la
fonctionnalit Windows Service Hardening.
http://blogs.technet.com/b/askperf/archive/2008/02/03/
ws2008-windows-service-hardening.aspx
http://blogs.msdn.com/b/sql_protocols/archive/2009/09/21/
connection-from-a-windows-service-could-be-blocked-by-
firewall-even-if-firewall-is-disabled.aspx

159
5.6 LES JETONS DACCES (ACCESS TOKEN)

Un jeton daccs (Access Token) est gnr par le processus Lsass.


exe (service Netlogon) une fois que lutilisateur est authentifi avec le
protocole Kerberos ou NTLM. Un jeton daccs contient :
Le SID et les SID History du compte de lutilisateur
Le SID et SID History de tous les groupes du domaine dont lutili-
sateur est membre directement et indirectement (groupe membre dun
autre groupe).
Le SID de tous les groupes de la base SAM locale auxquels lutilisa-
teur appartient (comme Administrators)
La liste des privilges (comme SeDebugPrivilege) dont dispose
lutilisateur sur la machine locale.

Pour visualiser le contenu dun jeton daccs, il est possible dutiliser


loutil Token SZ tlchargeable cette adresse : http://www.micro-
soft.com/en-us/download/details.aspx?id=1448
La commande ci-dessous liste le SID du compte utilisateur et le SID
des groupes dont il est membre directement (ou indirectement) ainsi
que tous ses privilges.
tokensz.exe /compute_tokensize /dump_groups

160
Si on sest authentifi avec le protocole Kerberos, le jeton daccs est
gnr laide des informations du champ PAC du TGT. Le champ
PAC contient les SID du compte utilisateur et de tous les groupes aux-
quels lutilisateur appartient directement et indirectement.

Le jeton daccs cr lors de louverture de session interactive (lutili-


sateur saisit son login / mot de passe) est appel jeton daccs primaire
(Primary Access token).A chaque fois quun processus est dmarr
par lutilisateur, une copie du jeton daccs primaire est attache ce
processus. A chaque fois quun processus ncessite des accs (permis-
sion NTFS) ou des privilges sur le systme, Windows va analyser le
contenu de ce jeton pour valider si oui ou non lutilisateur a le droit
daccder la ressource. Pour comprendre ce quest un jeton daccs
plus en dtail, je vous invite lire les articles Microsoft suivants :
http://blogs.technet.com/b/askds/archive/2007/11/02/what-s-
in-a-token.aspx
http://technet.microsoft.com/en-us/library/cc759267(v=ws.10).
aspx
Parfois un processus sexcute dans le contexte dun compte utilisa-
teur A mais a besoin deffectuer une autre tche dans le contexte dun
compte utilisateur B. Chacune de ces tches est appele un Thread. Par
dfaut un Thread utilise le jeton daccs du processus dit jeton daccs
primaire (Primary Access Token). Dans cet exemple le Primary Access
Token dispose des droits de lutilisateur A. Si un Thread a besoin de
sexcuter dans le contexte dun compte utilisateur B, il utilise la fonc-
tionnalit dImpersonation Token qui permet au Thread de sexcuter
dans le contexte du compte utilisateur B.

Exemple dun serveur de fichiers (applicable aussi un serveur


web) :
Le service Server (partage de fichiers) sexcute dans le contexte du
compte System et gre laccs aux partages de fichiers. Quand un uti-
lisateur se connecte un serveur de fichiers, le service Server va g-
nrer un jeton daccs dans le contexte du compte de lutilisateur pour
contrler les accs aux ressources de cet utilisateur.
Pour pouvoir effectuer cette impersonation, le processus du service de
partages de fichiers doit avoir le privilge Impersonate a client after
authentication (SeImpersonatePrivilege).
Pour plus dinformations sur les jetons daccs sur limpersonation :
http://blogs.technet.com/b/askds/archive/2008/01/11/what-s-
in-a-token-part-2-impersonation.aspx
http://technet.microsoft.com/en-us/library/cc783557(v=ws.10).
aspx

161
5.7 ELEVATION DE PRIVILEGE PAR REUTILISATION DU
JETON DACCES DUN AUTRE UTILISATEUR

5.7.1 PRESENTATION DE LOUTIL INGOGNITO

Loutil INCOGNITO est disponible ladresse suivante : http://


sourceforge.net/projects/incognito/
De nombreux antivirus le dtectent comme une menace de scurit. Il
sera donc ncessaire de linstaller sur une machine avec un antivirus
dont le scan temps rel est dsactiv. Incognito est intgr dans loutil
METASPLOIT.

Loutil INCOGNITO vole les jetons daccs existants et les utilise


pour excuter des tches. Il ncessite les privilges SeDebugPrivilege,
SeAssignPrimaryTokenPrivilege, SeImpersonatePrivilege pour fonc-
tionner. Il faut excuter INCOGNITO en tant que System.

INCOGNITO est capable de sexcuter en local comme distance.


Une fois dmarr, il scanne tous les processus qui sont en cours dex-
cution sur la machine cible et liste tous les jetons daccs associs
ces diffrents processus.

INCOGNITO duplique tous les jetons daccs et les regroupe par uti-
lisateurs. Cest cette tape que loutil a besoin du privilge SeDe-
bugPrivilege (Debug programs) car ce privilge lui permet douvrir
nimporte quel processus, daccder son espace mmoire et copier
ses ressources.

Une fois la liste des jetons daccs obtenue, loutil va pouvoir lancer de
nouveau processus en tant quun autre utilisateur en utilisant les jetons
daccs quil a copi. Loutil va pouvoir utiliser la fonctionnalit dim-
personation pour utiliser le jeton daccs associ un processus via
lAPI ImpersonateLoggedOnUser. Cette action ncessite le privilge
SeImpersonatePrivilege (Impersonate a client after authentication).
Pour plus dinformations voir :
http://msdn.microsoft.com/en-us/library/windows/desktop/
aa378612(v=vs.85).aspx
Loutil va crer un nouveau processus quil associe un jeton daccs
(utilisation de lAPI CreateProcessAsUser. Cette action ncessite le
privilge SeAssignPrimaryTokenPrivilege (Replace a process-level
token).

162
Pour plus dinformations :
http://www.offensive-security.com/metasploit-unleashed/Fun_
With_Incognito
http://blogs.technet.com/b/askds/archive/2008/01/11/what-s-
in-a-token-part-2-impersonation.aspx

5.7.2 PROCEDURE DUTILISATION DE LOUTIL INCOGNITO

Pour lister tous les jetons disponibles, ouvrir une invite de commande
avec le compte System. Pour cela, tlcharger loutil PSEXEC (http://
technet.microsoft.com/fr-fr/sysinternals/bb896649.aspx) et lan-
cer la commande suivante : PsExec.exe -i -s -d cmd

Une fois linvite de commande excute en tant quutilisateur SYS-


TEM, taper la commande suivante :
incognito.exe -h localhost -u administrateur -p P@ssword list_
tokens -u
Une fois que lon voit les jetons daccs, ceux qui sont marqus De-
legation peuvent tre vols et utiliss pour lancer une invite de com-
mande avec la commande suivante (on vole le jeton de msreport\admi-
nistrator dans cet exemple qui est Domain Admins sur lenvironnement
de qualification.
incognito.exe -h localhost -u administrateur -p P@ssword exe-
cute -c msreport\administrator cmd
Entrer la commande whoami pour valider lutilisateur en cours dans
linvite de commande.
Pour supprimer le processus lanc par INCOGNITO :
incognito.exe -h localhost cleanup

163
5.7.3 COMMENT BLOQUER LOUTIL INCOGNITO ?

Eviter que les utilisateurs soient administrateurs locaux sur les stations
de travail. Configurer lantivirus sur toutes les machines de lentreprise
pour bloquer les excutables METASPLOIT et INCOGNITO.
Bloquer les privilges Windows suivants par GPO pour les utilisateurs
qui sont administrateurs de leur station : SeDebugPrivilege, SeAs-
signPrimaryTokenPrivilege, SeImpersonatePrivilege

164
6 INDUSTRIALISER ET SECURISER
LE DEPLOIEMENT DES CONTROLEURS DE
DOMAINE

Afin de garantir un haut niveau de scurit pour lannuaire Active Di-


rectory, vous devez:
Dployer uniquement des contrleurs de domaine avec une version
supporte de Windows Server
Rduire la surface dattaque des contrleurs de domaine.
Dployer une configuration standard sur tous les contrleurs de
domaine.
Disposer dune procdure de dploiement (automatise si possible)
pour les contrleurs de domaine.

6.1 DEPLOYER UNIQUEMENT UNE VERSION SUP-


PORTEE DE WINDOWS SERVER

Microsoft supporte gnralement un systme dexploitation pendant


10 ans dont 5 annes en mode standard (dveloppement de nouvelles
fonctionnalits) et 5 annes en mode tendu (correction de bugs).
Lorsque que lOS nest plus support, Microsoft ne dveloppe plus de
correctifs de scurit et le systme devient alors vulnrable aux nou-
velles failles de scurit dcouvertes qui ne sont plus corriges.
Une faille de scurit critique dans le composant SCHANNEL vient
dtre dcouverte par Microsoft. Elle permettrait un attaquant de
prendre le contrle dune machine sur tous les OS Microsoft actuel-
lement supports. Microsoft fournit un correctif pour cette faille dans
le bulletin MS14-066 (https://technet.microsoft.com/library/secu-
rity/MS14-066).
On notera que Microsoft ne fournit aucune information sur cette faille,
ni correctif pour Windows 2000 Server. Les contrleurs de domaine
sous Windows 2000 Server sont cependant trs probablement vuln-
rables cette faille.
Le support de Windows 2003 prendra fin le 14 juillet 2015 comme
expliqu sur le site Microsoft http://support2.microsoft.com/life-
cycle/?LN=fr&C2=1163
Pour toutes ces raisons, il est recommand de ne plus disposer et
dployer de contrleurs de domaine avec une version antrieure
Windows 2008 R1.

165
Les entreprises utilisent en gnral des modles de machine (Template)
pour dployer leurs serveurs physiques et leurs serveurs virtuels. Ces
modles intgrent souvent de nombreux composants / applications qui
savrent inutiles pour un contrleur de domaine et qui augmentent la
surface dattaque.
Il est trs important dviter lajout de services qui sexcuteraient
dans le contexte du compte System. Ce dernier dispose des droits dad-
ministration complets sur le contrleur de domaine (dont des droits sur
tous les objets de lannuaire).
Dans certaines entreprises, les quipes en charge du dploiement des
serveurs peuvent tre diffrentes (diffrentes quipes dadministration,
infogrance sur certains sites). Les mthodologies de dploiement
peuvent donc varier tout comme la configuration des serveurs.

Pour toutes ces raisons, il est recommand de dployer les contr-


leurs de domaine avec une image (Template) gre par lquipe
dadministration Active Directory.

6.2HEBERGER LES CONTROLEURS DE DOMAINE


DANS UN EMPLACEMENT SECURISE

6.2.1 QUELS SONT LES RISQUES SI UN ATTAQUANT A UN ACCES


PHYSIQUE A UN CONTROLEUR DE DOMAINE ?

Comme expliqu dans larticle Microsoft http://blogs.tech-


n e t . c o m / b / r h a l b h e e r / a rc h i v e / 2 0 1 1 / 0 6 / 1 6 / t e n - i m m u -
table-laws-of-security-version-2-0.aspx, si un attaquant a un accs
physique non restreint votre serveur, ce nest plus votre serveur. La
dmonstration suivante illustre ce propos.
Dmarrer votre contrleur de domaine sur un DVD dinstallation de
Windows 2008 R2 ou Windows 2012 R2. Slectionner loption Repair
your computer.
Slectionner ensuite Troubleshoot puis Command prompt.

166
Le disque C du serveur apparat alors comme le disque D.
Taper les commandes ci-dessous dans linvite de commande.
move d:\Windows\System32\sethc.exe d:\Windows\System32\
sethc.old
copy d:\Windows\System32\cmd.exe d:\Windows\System32\
sethc.exe
Redmarrer ensuite le serveur.

Au redmarrage, appuyer 5 fois sur la touche Shift.


Linvite de commande se lance en tant que System. Taper DSA.MSC.

167
La console Active Directory Users and Computers apparat alors. Af-
ficher la console en Advanced features. Vous pouvez maintenant rini-
tialiser le mot de passe du compte administrateur du domaine (membre
des groupes Domain admins et Enterprise admins) car le compte SYS-
TEM a contrle total sur cet objet.

168
Dans lexemple ci-dessus, la fort msreport.be est en mode Natif 2012 R2.
Cette technique permet de disposer dun accs complet lannuaire et
tous ses comptes.
Cest la premire tape avant une attaque beaucoup plus dangereuse
qui va consister rcuprer les mots de passe des utilisateurs prsente
partir du NTHASH ou du LMHASH.

Pour garantir la scurit de votre annuaire, vous devez donc


empcher un utilisateur de pouvoir dmarrer votre contrleur
de domaine depuis un OS parallle (LiveCD) et de modifier les
fichiers et la base de registre de Windows Server.

6.2.2 COMMENT EMPECHER UN ATTAQUANT DACCEDER AU


FICHIER NTDS.DIT ?

Microsoft supporte le dploiement des contrleurs de domaine sur des


serveurs physiques et sur des machines virtuelles. Le support officiel
de Microsoft se fait dans le cadre du SVVP (Windows Server Virtuali-
zation Validation Program). Je vous invite pour cela consulter le site
web suivant : http://www.windowsservercatalog.com/svvp.aspx
Nous devons donc traiter de la protection des contrleurs de domaine
physiques et des contrleurs de domaine virtuels.
169
La premire mesure est naturellement de protger la salle serveur
contre les accs non autoriss. Les contrleurs de domaine physiques
doivent donc tre hbergs dans une salle serveur scurise. Cependant
cette technique ne sapplique pas aux contrleurs de domaine virtuels.
En effet, les disques durs des machines virtuelles sont des fichiers
VHD (avec Hyper-V), VMDK (avec VMware) qui peuvent tre copis
quand la machine virtuelle est allume ou teinte.
Le tableau ci-dessous prsente les contre-mesures applicables pour les
contrleurs de domaine physiques et virtuels.

La procdure pour activer BitLocker sur des contrleurs de domaine


(serveur physique et machine virtuelle) est prsente en annexe dans
ce document.

6.3 DEPLOYER LES CORRECTIFS DE SECURITES SUR


LES CONTROLEURS DE DOMAINE

6.3.1 POURQUOI EST-IL NECESSAIRE DE DEPLOYER LES CORREC-


TIFS DE SECURITE ?

Les failles de scurit sont des dfauts dans la programmation qui per-
mettent un attaquant de dtourner le fonctionnement classique dun
logiciel dans le but dobtenir des accs sur le systme ou dinterrompre
son fonctionnement (plantage du logiciel).
Les failles de scurit sont souvent lies des dfauts dans linterpr-
tation des paramtres passs au programme. Un logiciel qui est crit
pour recevoir une variable de type INTEGER (entier) en paramtre

170
reoit une variable de type FLOAT (nombre virgule) et sarrte de
fonctionner alors.

Le dploiement dun antivirus ne vous protgera pas contre lexploi-


tation des failles de scurit (exploits) par un attaquant. Il permettra
ventuellement de dtecter lutilisation dun programme connu exploi-
tant la faille de scurit (comme INCOGNITO, METASPLOIT).

Il est aujourdhui trs facile de tlcharger sur Internet des outils


comme METASPLOIT qui intgrent des milliers dexploits qui ciblent
les principales solutions logicielles utilises par les entreprises.

La solution METASPLOIT propose au travers dune console ou dune


interface graphique de lancer des attaques trs sophistiques contre les
contrleurs de domaine Active Directory. Elle permet par exemple via
la faille de scurit MS08-67 de prendre la main sur un contrleur de
domaine Windows 2003 ou via la faille de scurit MS012-020 de faire
planter (cran bleu) un serveur sous Windows 2008 R2.

Je vous invite lire les articles qui prsentent les failles les plus cri-
tiques exploiter et lactualit des sorties des nouveaux exploits.
https://community.rapid7.com/community/metasploit/
blog/2012/12/11/exploit-trends-new-exploits-make-the-top-10
https://community.rapid7.com/community/metasploit/blog
Vous pouvez tlcharger gratuitement METASPLOIT cette adresse :
http://www.rapid7.com/products/metasploit/download.jsp.

METASPLOIT intgre un exploit bas sur la faille MS12_020 qui fait


planter un serveur Windows 2008 R2 non mis jour. Un pas pas
complet est disponible ce emplacement :
http://www.metasploit.com/modules/auxiliary/dos/windows/
rdp/ms12_020_maxchannelids
Dans un environnement rseau isol, installez une machine virtuelle
Windows 2008 R2 (pas jour) et activer le Bureau distance. Rcup-
rer lIP de cette machine.
Dans la console METASPLOIT taper les commandes suivantes :
Use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
Set RHOST IP_SERVEUR
Run

171
METASPLOIT intgre un exploit bas sur la faille de scurit CVE-
2008-4250 / MS08-067 qui permet dobtenir une invite de commande
en SYSTEM. Un pas pas est disponible cet emplacement :
http://www.metasploit.com/modules/exploit/windows/smb/
ms08_067_netapi

Dans la console METASPLOIT, taper les commandes suivantes :

use exploit/windows/smb/ms08_067_netapi
exploit

Vous obtenez alors une invite de commande avec des droits SYSTEM

172
Le service Server (partage de fichiers) plante sur la machine cible.
Taper ? pour avoir la liste des commandes puis getsystem pour rcu-
prer les droits administrateurs, clearenv pour purger les observateurs
dvnements.
Taper getpid pour avoir le PID du processus METADSPLOIT sur la
machine cible.
Valider avec Gestionnaire de tches de la machine attaque si proces-
sus existe (afficher colonne PID).
Taper la commande ps pour lister les processus de la machine cible.
Arrter le processus laide de la commande kill numro-PID

Il est recommand de toujours mettre jour les contrleurs de domaine


(tous les mois). En effet le risque de panne li linstallation dun cor-
rectif est bien moindre que le risque de dfaillance en cas dattaque ou
dinfection par un virus / vers exploitant une faille de scurit.

6.3.2 INSTALLATION DES CORRECTIFS DE SECURITE SUR LES


CONTROLEURS DE DOMAINE

Il existe aujourdhui de nombreuses solutions gratuites (WSUS, Win-


dows Update) ou payantes (Landesk Management Suite, Dell Kace,
System Center Configuration Manager (SCCM),) qui permettent de
prendre en charge le dploiement des correctifs de scurit.
Les entreprises disposent gnralement dune solution de dploiement
de correctifs mais contrlent rarement que les correctifs sont relle-
ment dploys sur les machines. Or, de nombreux facteurs peuvent
173
bloquer le dploiement des correctifs. Les administrateurs peuvent
oublier dapprouver un correctif essentiel. Le correctif peut refuser
de sinstaller si le dpt WMI est corrompu car le correctif lance une
requte WMI pour dtecter les correctifs dj installs (http://msre-
port.free.fr/?p=459). Une dpendance pour linstallation du correctif
peut aussi tre manquante. Il est donc recommand dutiliser un outil
tiers comme MBSA (autre que votre outil de dploiement) pour valider
que vos contrleurs de domaine sont jour.

Le dploiement des correctifs de scurit peut parfois gnrer des


pannes / disfonctionnements. Microsoft a ralis de nombreuses tudes
qui ont dmontr que les systmes non mis jour rencontraient plus
de pannes / dfaillances que les systmes jour. Microsoft publie les
correctifs de scurit tous les deuxime mardi du mois (heure amri-
caine). Les pannes sont gnralement dtectes au bout de 2 3 jours
et une version 2 du correctif est alors fournie par Microsoft ou le cor-
rectif est retir. Pour diminuer le risque dimpact ngatif dun correc-
tif, vous pouvez dployer les correctifs sur les contrleurs de domaine
pilotes ds le second jeudi de chaque mois et dployer les correctifs sur
tous les autres contrleurs de domaine le troisime mardi de chaque
mois (soit une semaine aprs la sortie du correctif de scurit).

Le client Automatic Update de Windows essaie de redmarrer la ma-


chine automatiquement quand linstallation des correctifs est termine.
Ce comportement peut poser problme avec des serveurs de produc-
tion. Il ne permet pas non plus de dfinir lheure exacte laquelle les
correctifs doivent tre installs et lheure exacte du redmarrage. Il
dispose de fonctionnalit rduite sur des serveurs Windows 2008 R1
et Windows 2008 R2 installs en mode Core. Vous pouvez dutiliser
un outil comme WUINSTALL et crer avec cet outil des tches plani-
fies pour le dploiement des correctifs sur les contrleurs de domaine.
WUINSTALL peut tre tlcharg cette adresse :
https://www.wuinstall.com.

6.4 REDUIRE LA SURFACE DATTAQUE DES CONTRO-


LEURS DE DOMAINE

Afin de rduire la surface dattaque, il est ncessaire de dployer uni-


quement les rles et fonctionnalits Windows (Gestionnaire de Ser-
ver) ncessaires sur un contrleur de domaine. Un contrleur de do-
maine ne ncessite que le rle Active Directory Domain Services et
le rle DNS (sauf si le service DNS est gr par une solution tierce).
Sous Windows 2012 R1 et versions ultrieures, linterface graphique

174
est propose sous forme de 2 fonctionnalits optionnelles. Les com-
mandes ci-dessous montrent comment dployer linterface graphique
sur un serveur en mode Core :

Import-Module ServerManager
Mkdir c:\MountDir
Get-WindowsImage -ImagePath D:\sources\install.wim
Mount-WindowsImage -ImagePath d:\sources\install.wim -Path
C:\mountdir Index 4 -readonly
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell
-Restart -Source c:\mountdir\Windows\Winsxs

En mode Core (Server-Gui-Mgmt-Infra et Server-Gui-Shell non ins-


talls), il est possible dadministrer le serveur localement avec Power-
Shell ou distance (depuis un autre serveur) avec les consoles MMC,
le Server Manager ou PowerShell.
Un des inconvnients du mode Core est la difficult consulter les ob-
servateurs dvnements localement (avec la commande PowerShell
Get-Eventlog). Lanalyse distance des observateurs dvnements
nest pas toujours possible si la ligne est trop lente ou si laccs rseau
est coup.

Depuis Windows 2012 R1, il est possible de dployer le serveur en


mode Interface minimale (fonctionnalit Server-Gui-Mgmt-Infra ins-
tall). Ce mode permet dexcuter toutes les consoles MMC mais sans
interface graphique.

175
Il est donc prconis de dployer les contrleurs de domaine sous Win-
dows 2012 R1 ou versions ultrieures en mode Interface minimale et
de dployer uniquement sur ces machines les rles Active Directory
Domain Services et DNS.

6.5 NE JAMAIS ARRETER LE SERVICE WINDOWS


FIREWALL

Depuis Windows Vista / Windows 2008 R1, le pare-feu Windows est


activ par dfaut. Ce pare-feu intgre de nombreuses fonctionnalits
comme expliqu dans larticle http://technet.microsoft.com/en-
us/library/cc753180.aspx.
Le pare-feu Windows est un pare-feu tats. Il mmorise ltat de
toutes les connexions TCP et UDP et peut ainsi crer dynamiquement
des rgles pour autoriser le trafic entrant / sortant lgitime (exemple :
la rponse une requte HTTP (code de la page web) renvoye par le
serveur web au serveur).
Le pare-feu Windows permet de crer des rgles pour filtrer le trafic
entrant et sortant en fonction dun programme (autoriser tout le trafic
de cette application), dun port ou dune IP. Il intgre aussi un en-
semble de rgles prdfinies qui permettent le bon fonctionnement des
rles et des fonctionnalits Windows dploys sur le serveur.

176
Quand un serveur devient un contrleur de domaine (aprs dploie-
ment du rle Active Directory Domain Services, la rgle prdfinie du
pare-feu Windows Active Directory Domain Services est active. Les
rgles entrantes et sortantes ci-dessous sont alors actives.

Une application dveloppe pour Windows 2008 / Vista et versions


ultrieures peut crer et activer automatiquement des rgles au niveau
du pare-feu Windows si besoin (pour permettre le bon fonctionnement
du programme). Il est donc relativement rare de devoir crer une rgle
manuellement.

Le pare-feu Windows dispose de 3 profils de connexions, Public, Pri-


vate et Domain. Les rgles spcifiques peuvent sappliquer unique-
ment un profil. Si vous tes en groupe de travail, le pare-feu vous
demandera au dmarrage si vous souhaitez appliquer les rgles du
pare-feu pour le profil Public ou Private. Si vous tre membre dun
domaine Active Directory, vous appliquez obligatoirement les rgles
du profil Domain si vous tes connects au rseau dentreprise (dans
le cas contraire, le systme vous demande si vous souhaitez tre en
profil Public ou Private). Ce mode de fonctionnement permet de crer
des rgles qui sappliquent uniquement quand lutilisateur travaille de
chez lui ou depuis une connexion Internet publique.

Le pare-feu Windows peut tre administr depuis le panneau de confi-


guration (Control Panel | Windows Firewall) ou via la console Win-
dows Firewall with Advanced Security. Configurer toujours le pare-
feu depuis la console Windows Firewall with Advanced Security !
En effet sous Windows 2008 R1, le systme proposait uniquement de
dsactiver le pare-feu pour le profil en cours. Lors de dploiement de
Windows 2008 R1, les administrateurs dsactivaient souvent le pare-
feu depuis le panneau de configuration quand la machine tait encore
en groupe de travail. Ils dsactivaient donc le pare-feu pour le profil
Public ou Private. Quand le serveur tait joint au domaine, le pare-feu
passait dans le profil Domain et tait alors de nouveau actif. Ce pro-
blme dinterface a t corrig avec Windows 7 / Windows 2008 R2.

177
Si vous souhaitez dsactiver le pare-feu sur un serveur Windows 2008
(et versions ultrieures), vous ne devez pas arrter le service Win-
dows Firewall. Cela nest pas support par Microsoft et bloque les
fonctionnalits suivantes : la possibilit dencapsuler le trafic dans des
trames IPSEC et Windows Service Hardening. Pour arrter le pare-
feu, configurer les profils Public, Private et Domain sur ltat Off.

Cest tout aussi vrai pour les stations de travail Windows !

Windows Service Hardening permet de protger les services Windows


qui sexcutent dans le contexte de compte utilisateur avec de forts
privilges. Cette fonctionnalit est explique en dtail dans les articles
ci-dessous et dans la partie La gestion des accs avec Active Direc-
tory de ce document :
http://blogs.technet.com/b/askperf/archive/2008/02/03/
ws2008-windows-service-hardening.aspx
http://blogs.msdn.com/b/sql_protocols/archive/2009/09/21/
connection-from-a-windows-service-could-be-blocked-by-
firewall-even-if-firewall-is-disabled.aspx

178
6.6 CONFIGURER LUAC

LUAC sous Windows est un ensemble de composants de scurit qui


permet entre autres :

De protger certains fichiers et emplacement de registre :


Il nest par exemple plus possible de crer un fichier la racine du
lecteur C. Ladministrateur na plus accs certains dossiers et le mes-
sage suivant daffiche : You dont currently have permission to access
this folder. Click continue to permanently get access to this folder.
Cela peut gnrer des problmes si ladministrateur clique sur le bou-
ton Continue car les permissions sur le dossier sont alors modifies
pour donner laccs au compte utilisateur. Cette problmatique est
explique dans larticle Microsoft : http://support.microsoft.com/
kb/950934/en-us

179
De gnrer deux jetons daccs :
Un jeton daccs avec tous les privilges et SID de lutilisateur est
gnr. Un second jeton est aussi gnr avec des droits rduits (sup-
pression des SID de groupes comme Administrators). Lutilisateur
peut utiliser son jeton non filtr seulement aprs avoir t lev (fe-
ntre de confirmation ou si lutilisateur a excut lapplication en tant
quadministrateur).

Dactiver le mode protg dInternet Explorer :


LUAC doit tre activ pour que le mode protg dInternet Explorer
soit actif. Cela permet de garantir quaucun script ActiveX (ou autres
scripts qui sexcutent dans Internet Explorer) ne pourra effectuer de
changement sur le systme.

Par dfaut, lUAC est dsactiv pour le compte Administrator (compte


cr par dfaut par Windows) et activ pour tous les autres comptes
utilisateurs.

Il peut uniquement tre dsactiv par stratgie de groupe (GPO) pour


les autres utilisateurs qui sont administrateurs de la machine.

180
Si vous dsactivez lUAC via Control Panel | Users Accounts | Change
User Account Control Settings, lUAC nest pas compltement dsac-
tiv sous Windows. Si vous essayez darrter un service depuis linvite
de commande, vous aurez un message Access is denied.

LUAC est dsactiv de base sur un serveur dploy en mode Core et


Interface rduite (sans interface graphique).

Larticle Microsoft http://support.microsoft.com/kb/2526083 ex-


plique que lon peut dsactiver lUAC sur une machine o seuls des
administrateurs sont habilits se connecter. On pourrait donc dsacti-
ver lUAC sur les contrleurs de domaine. A titre personnel, je prfre
conserver lUAC mais les 2 rglages ci-dessous sont acceptables pour
les contrleurs de domaine :
Dsactiver compltement lUAC : cela dsactive aussi le
mode protg dInternet Explorer.
Dsactiver partiellement lUAC (quivalent du niveau 1 de
lUAC dans Control Panel | Users Accounts | Change User Account
Control Settings).

Astuces pour travailler sur une machine Windows 2012 R2 avec


lUAC actif.
Lancer une invite de commande PowerShell en tant quadministrateur.
Lancer ensuite tous les programmes comme regedt32 depuis cette in-
vite de commande PowerShell. Cette astuce ne fonctionne malheureu-
sement pas pour lexplorateur Windows.

181
Pour lancer lexplorateur en tant quadministrateur il faut utiliser une
autre astuce dcrite sur ce site :
https://social.technet.microsoft.com/Forums/windows/en-
US/1798a1a7-bd2e-4e42-8e98-0bc715e7f641/unable-to-open-
an-elevated-windows-explorer-window
Lancer le gestionnaire de tche. Terminer le processus explorer.exe.
Lancer ensuite Explorer.exe en cohant la case Create this task with
administrative privileges.

Cela fonctionne. On a un explorateur non restreint. Plus de risque dal-


trer les permissions.

6.7 DESACTIVER LA MISE EN CACHE HORS


CONNEXION DES SESSIONS

Quand un utilisateur ouvre une session, son login / mot de passe est
mis en cache sur la machine dans HKEY_LOCAL_MACHINE\SECU-
RITY\CACHE. Par dfaut, seul le compte System a les droits de visua-
liser le contenu de cette cl. Cela permet par exemple un utilisateur
qui dispose dun ordinateur portable douvrir sa session quand il nest
pas connect au rseau dentreprise.
Ce mode de fonctionnement nest pas applicable aux serveurs et aux
182
stations de travail fixes. Pour cette raison et pour des raisons de scuri-
t, je vous invite dsactiver la mise en cache des sessions pour toutes
les machines sauf les ordinateurs fixes.

Larticle suivant explique comment rcuprer le mot de passe en cache


sous Windows 2000 / XP.
http://www.passcape.com/domain_cached_passwords

Pour dsactiver la mise en cache des connexions utilisateurs via les


GPO, il faut dfinir le paramtre suivant :

183
6.8 RENFORCER LA SECURITE DU BUREAU A DIS-
TANCE

Je vous invite lire la documentation suivante https://www.sstic.org/


media/SSTIC2012/SSTIC-actes/securite_rdp/SSTIC2012-Ar-
ticle-securite_rdp-ebalard_bordes_rigo_2.pdf qui explique en d-
tail comment fonctionne le protocole RDP et comment le configurer de
manire scurise. Les recommandations suivantes sont extraites de
ce guide et dun document Microsoft qui liste les bonnes pratiques de
scurit pour Active Directory (disponible cette adresse http://aka.
ms/bpsad).

6.8.1 UTILISER DES STATIONS DE TRAVAIL DADMINISTRATION

Dans la mesure du possible, vous devez limiter au maximum les


connections directes en Bureau distance (TSE) sur les contrleurs
de domaine. Ladministration de lannuaire Active Directory doit se
faire depuis des machines dadministration sous Windows 2008 R1
ou versions ultrieures. Ces machines doivent disposer uniquement
des outils dadministration Active Directory comme Active Directo-
ry Users and Computers, Active Directory Administrative Center et
le module Active Directory pour PowerShell. Laccs Internet sur les
machines dadministration doit tre restreint (interdit si possible). Ces
machines doivent tre hberges dans des locaux scuriss afin de les
protger contre le vol. Pour rappel des attaques comme NTLM Pass
The Hash ou avec un outil comme INCOGNITO pourrait permettre
un utilisateur ayant drob une machine dadministration deffectuer
une lvation de privilges (rcuprer les accs des comptes utilisa-
teurs avec des privilges sur lannuaire Active Directory). Pour cette
mme raison, il nest pas recommand dadministrer lannuaire Active
Directory depuis des stations de travail standard non scurises. Pour
cela, vous devez restreindre les machines sur lesquelles les comptes
utilisateurs avec des privilges dadministration peuvent ouvrir une
session.
Aller dans les proprits du compte utilisateur, onglet Account puis
cliquer sur le bouton Log on To et cocher la case The following compu-
ters. Entrer la liste des machines sur lesquelles lutilisateur peut ouvrir
sa session. Lattribut sous-jacent gre jusqu 1024 valeurs. Une alter-
native cette mthode est de configurer le paramtre de GPO Deny
logon locally un groupe dutilisateurs dont sont membres tous les
comptes utilisateur avec des privilges dadministration sur lannuaire.
Vous pouvez aussi bloquer laccs via le rseau toutes les machines
(autres que les stations dadministration et les contrleurs de domaine)

184
pour les comptes dadministration Active Directory. Cela peut tre
mise en uvre avec le paramtre de GPO Deny Access to this compu-
ter from the network.

6.8.2 CONFIGURER LE SERVICE BUREAU A DISTANCE

Si vous disposez de machines dadministration sous Windows


2003 Server :
Dans la mesure du possible, migrez vers Windows 2008 R2 ou une
version ultrieure. Si cela nest pas possible, vous devez dployer le
service pack 1 (service pack 2 recommand) sur la machine Windows
2003, gnrer un certificat ordinateur depuis une autorit de certifi-
cation externe ou une autorit de certification Microsoft dentreprise
(voir procdure de dploiement en annexe) puis appliquer les pr-
conisations de larticle suivant : http://support.microsoft.com/
kb/895433/en-us

Si vous disposez de serveurs de machines dadministration sous


Windows 2008 ou versions ultrieures :
Laccs RDP se fait via le protocole TLS. Cependant, ces machines
disposent dun certificat auto-sign. Vous devez gnrer un certificat
ordinateur pour chaque machine dadministration avec une autorit de
certification externe ou avec une autorit de certification dentreprise
Microsoft (voir procdure de dploiement en annexe).
Il faut ensuite configurer le Bureau distance avec les bons paramtres.
Cela peut tre fait longlet Remote dans Control Panel | System.
Cocher les cases Allow remote connections to this computer et Al-
low connections only from computers running Remote Desktop with
Network Level Authentication.

185
La console Remote Desktop Session Host Configuration nexiste pas
sous Windows 2012 R2 ! Il faut donc configurer le serveur par GPO.
Cela vous permettra ainsi de dsactiver le mappage des imprimantes
(qui gnrent gnralement de nombreuses erreurs dans les journaux
dvnements). Pour cela, dplacer les comptes ordinateurs des ma-
chines dadministration dans une OU spare.
Lancer la console GPMC et crer et lier une nouvelle GPO appele Ad-
ministrative-computers. Aller dans Computer Configuration | Policies
| Administrative Templates | Windows Components | Remote Desktop
Services | Remote Desktop Session Host | Security. Dfinir les para-
mtres de GPO de la manire suivante pour configurer laccs RDP
sous SSL avec authentification NLA.

Vous pouvez aussi configurer le service RDP pour ne plus mapper les
imprimantes dans les sessions TSE (Computer Configuration | Policies
| Administrative Templates | Windows Components | Remote Desktop
Services | Remote Desktop Session Host | Printer Redirection).
186
Vous devez obtenir la configuration ci-dessous.

6.8.3 AUTORISER UNIQUEMENT LES OUTILS DADMINISTRATION

Vous pouvez augmenter fortement la scurit de lannuaire en renfor-


ant la scurit des stations de travail dadministration. Vous pouvez
en effet activer AppLocker sur ces stations de travail afin dautoriser
uniquement les outils dadministration requis par les administrateurs.
AppLocker permettra par exemple dempcher lexcution dun navi-
gateur tiers ou mme dInternet Explorer. Je vous invite lire ce do-
cument qui prsente comment scuriser des serveurs Remote Desktop
Services avec AppLocker. Dans ce document, les rgles de base Ap-
pLocker qui autorisent tous les excutables dans C:\Windows sont sup-
primes. Seuls les excutables requis pour le dmarrage dune session
Remote Desktop et les outils dadministration sont autoriss :
http://msreport.free.fr/articles/Securisation_RDS_2008_
R2_V.1.0.1.pdf

AppLocker ncessite des stations de travail sous Windows 7 Enterprise


/ Ultimate (ou versions ultrieures) ou Windows Server 2008 R2 (ou
versions ultrieures).

Si vos stations dadministration sont sous Windows 2003 Server, vous


pouvez utiliser les stratgies de restrictions logicielles : http://msre-
port.free.fr/?p=202

187
6.8.4 CONFIGURER LE CLIENT BUREAU A DISTANCE
Vous devez dployer le client RDP 7.0 (au minimum) sur toutes les
stations de travail Windows Vista ou versions ultrieures. Il existe une
procdure pour permettre lauthentification NLA avec Windows XP
SP3 (http://support.microsoft.com/kb/951608/en-us) mais lutili-
sation de ce systme est fortement dconseille (plus de correctif de
scurit depuis avril 2014).

Au niveau du client Bureau distance, aller dans longlet Advanced


puis slectionner Do not connect pour le champ If server authentica-
tion fails. Ce paramtre peut se configurer au niveau du paramtre de
GPO Configure server authentication for client sous Computer Confi-
guration | Policies | Administrative Templates | Windows Components
| Remote Desktop Services.

En cas de tentative de connexion depuis une machine en groupe de


travail (qui ne reconnat pas le certificat comme tant de confiance), un
message derreur apparat.

188
6.8.5 UTILISER LA FONCTIONNALITE RESTRICTEDADMIN

Il sagit dune nouvelle fonctionnalit du Bureau distance qui per-


met de lutter contre les attaques de type NTLM Pass The Hash. Cette
nouvelle fonctionnalit permet de disposer des accs administrateur
uniquement sur la machine locale. En cas daccs une autre machine,
on ne dispose uniquement des permissions du compte ordinateur du
serveur sur lequel on sest connect. Cette fonctionnalit tait initia-
lement disponible que sous Windows 8.1 / Windows 2012 R2. Elle
est maintenant disponible sous Windows 7 / Windows 2008 R2 aprs
installation du correctif suivant :
http://support.microsoft.com/kb/2984972

Pour se connecter en Bureau distance en mode restrictedAdmin, ta-


per la commande :
mstsc /restrictedadmin
Se connecter en tant quadministrateur du domaine.
Si on essaie de se connecter sur un serveur distant depuis la session
RDP, on a un message Access is denied. Pour plus dinformations :
http://blogs.technet.com/b/kfalde/archive/2013/08/14/restric-
ted-admin-mode-for-rdp-in-windows-8-1-2012-r2.aspx

6.9 RESTREINDRE LACCES A INTERNET DEPUIS LES


CONTROLEURS DE DOMAINE

Deux solutions sont possibles pour laccs Internet des contrleurs de


domaine :

Configurer les contrleurs de domaine pour ne disposer daucun


accs Internet :
Cette solution ncessite de dcocher les cases Check for publishers
certificate revocation, Check for server certificate revocation et Check
for signature on downloaded programs. Dans le cas contraire, vous
pourrez rencontrer des checs ou des lenteurs lors de linstallation de
certains programmes tiers ou des correctifs de scurit. Il sera aussi n-
cessaire de configurer les serveurs DNS sur les contrleurs de domaine
pour utiliser dautres serveurs DNS (redirecteurs) pour rsoudre les
noms DNS externes. Le serveur NTP utilis au niveau du contrleur du
domaine racine avec le rle de PDC Emulateur devra tre un serveur
interne.

189
Configurer les contrleurs de domaine pour disposer dun accs
limit Internet (flux DNS, HTTP et HTTPS, NTP):
Cette configuration est plus simple mettre en uvre. Pour ne pas
compromettre la scurit, je vous invite cependant laisser lUAC ac-
tif afin de disposer dInternet Explorer en mode protg.
Au niveau de la configuration de la scurit renforce Internet
Explorer
Ce dispositif permet de brider trs fortement laccs Internet et de-
mande de multiples confirmations lors de laccs un site web stan-
dard. La frquence des POPUP est trs problmatique car elle pousse
les administrateurs confirmer le message sans le lire. Pour cette rai-
son, je prfre titre personnel dsactiver cette fonctionnalit.

190
6.10 CONFIGURER LE MOT DE PASSE DSRM

Le mot de passe DSRM est requis lors des oprations de restauration


de lannuaire Active Directory. Ce mot de passe est trs critique et
doit respecter les exigences suivantes :

Etre connu par lquipe dadministration du service Active Direc-


tory.
Etre stock dans un emplacement scuris.
Si possible tre diffrent pour chaque contrleur de domaine.
Contenir au moins 24 caractres.

Ce mot de passe est dfini lors de promotion dun contr-


leur de domaine. Il est possible dutiliser loutil NTDSU-
TIL pour changer le mot de passe DSRM ultrieurement.

6.11 DEPLOYER UNE CONFIGURATION STANDARD


SUR TOUS LES CONTROLEURS DE DOMAINE

6.11.1 CONFIGURER IPV6

Par dfaut depuis Windows 2008 R1, le protocole IPV6 est prioritaire
sur le protocole IPV4.
Quand on fait un ping localhost, cest ladresse ::1 qui rpond en non
127.0.0.1.
Microsoft recommande de ne pas dsactiver IPV6 compltement mais
de configurer IPV4 en tant que protocole prfr. Lancer lditeur de
base de registre et dfinir lentre de registre DisabledComponents
(REG_DWORD) 32 (dcimal) dans HKEY_LOCAL_MACHINE\
SYSTEM\ CurrentControlSet\Services\TCPIP6\Parameters.

Il est aussi possible de dployer cette entre de registre laide dune


GPO de prfrence.

191
Pour plus dinformations : https://support.microsoft.com/
kb/929852/en-us

6.11.2 DEPLOYER UN ANTIVIRUS A JOUR ET CONFIGURER LES


EXCLUSIONS

Un antivirus pour le systme dexploitation doit tre dploy sur les


contrleurs de domaine. Ce dernier doit cependant tre configur pour
exclure de lanalyse les fichiers / dossiers indiqus dans larticle Mi-
crosoft http://support.microsoft.com/kb/822158/en-us comme
les fichiers de la base de donnes Active Directory ou du rpertoire
SYSVOL.

6.11.3 UTILISER LASSISTANT DE CONFIGURATION DE LA SECURITE


POUR RENFORCER LA SECURITE DES CONTROLEURS DE DOMAINE
ET DES MACHINES DADMINISTRATION

Depuis Windows 2003 Server SP1, Microsoft propose un assistant


pour renforcer la scurit des serveurs. Sous Windows 2012 R2, cet
assistant est disponible au niveau du Server Manager dans le menu
Tasks.
Lassistant applique une configuration en se basant sur les rles d-
ploys sur la machine modle. Cet outil va dtecter automatiquement
la configuration de la machine (un contrleur de domaine / serveur
DNS dans notre cas) et va proposer une configuration idale en fonc-
tion des services prsents sur la machine. La mise en uvre de cette
solution suppose donc que les rles dploys sur les serveurs nvolue-
ront pas dans le temps. Vous ne pourrez pas dployer un nouveau rle
sur vos serveurs sils ont t configurs avec cet assistant sans prvoir
une phase de reconfiguration.
192
Lassistant Security Configuration Wizard et son quivalent en ligne
de commande scwcmd permettent :

De crer une configuration modle (gnration dun fichier XML).


Danalyser si une machine est conforme une configuration mo-
dle.
Dappliquer une configuration modle une machine.
De supprimer une configuration modle applique une machine.
De convertir une configuration (fichier XML) en un objet GPO
laide de la commande suivante : scwcmd transform /p:C:Win-
dowssecuritymsscwPoliciestest.xml /g:Server Security

Loutil analyse les rles prsents sur le serveur et va proposer de :


Dsactiver les services inutiles sur le serveur.
Configurer les exceptions requises au niveau du pare-feu Win
dows.
Configurer les paramtres de scurit de la machine.

193
Pour configurer les rgles de scurit, loutil pose des questions sur le
type de clients et propose une configuration scurise. Dans lexemple
ci-dessous, les paramtres en production dans lannuaire sont plus s-
curiss que ceux proposs par loutil. Seul le protocole dauthentifica-
tion NTLM V2 est autoris dans lannuaire alors que loutil nous pro-
pose dautoriser NTLM V1 et V2. Un regard critique est donc requis
sur la configuration propose par loutil.
194
Le site suivant donne quelques retours dexpriences sur la scuri-
sation renforce de clusters Windows. La conclusion est sans appel.
Utiliser le Security Configuration Wizard permet davoir une configu-
ration scurise et fonctionnelle.
http://blogs.technet.com/b/mspfe/archive/2014/05/29/why-
you-should-avoid-manual-server-hardening.aspx

Pour plus dinformations :


http://technet.microsoft.com/en-us/security/jj720323.aspx
http://www.petri.com/protect-windows-server-using-the-secu-
rity-configuration-wizard-part-2-applying-and-rolling-back-poli-
cies-and-advanced-features.htm
http://technet.microsoft.com/en-us/library/ff807358.aspx

6.11.4 TESTER VOTRE IMAGE DANS UN ENVIRONNEMENT DE


QUALIFICATION

Pour tester limage de dploiement des contrleurs de domaine il est


ncessaire de dployer un environnement de maquette copie conforme
de lenvironnement de production.

195
6.11.4.1 Prrequis (variable selon votre environnement)

Un serveur avec 8 Go de mmoire, un disque SSD de 128 Go.


Un contrleur de domaine hberg sur une machine virtuelle. Il sera
ncessaire de dployer la mme solution de virtualisation sur le serveur
de qualification que sur lenvironnement de production (VMware ESX
5.5, Hyper-V). On notera que VMware ESX 5.5 dsactive le cache
des disques do lobligation dutiliser un disque SSD pour conserver
des performances correctes et quil ne reconnat que certaines cartes
rseaux (Intel E1000 entre autres).
Si vous disposez que de contrleurs de domaine physique, je vous in-
vite dployer un contrleur de domaine temporaire sur une machine
virtuelle (par domaine). Eviter le P2V car cela risque de gnrer des
USN roll back comme expliqu dans cet article : http://support.mi-
crosoft.com/kb/875495/en-us.

6.11.4.2 Etape 1 : virtualisation dun contrleur de domaine par


domaine (exemple avec une fort contenant 2 domaines) :

Arrter un des contrleurs de domaine dans chaque domaine et copier


ces deux contrleurs de domaine en copiant les fichiers de la machine
virtuelle (VM) correspondante sur le serveur de tests. Il faut arrter
les deux contrleurs de domaine en mme temps ! Attention, cela peut
avoir de limpact sur des applications comme Exchange, car cette so-
lution sappuie sur certains contrleurs de domaine (DS Access). Cela
est encore plus problmatique si les DS ACCESS ont t forcs. Pour
plus dinformations, je vous invite lire cet article http://support.
microsoft.com/kb/910999.

Ds que la copie des deux contrleurs de domaine (un pour le do-


maine racine et un pour le domaine enfant) est termine, redmarrer les
contrleurs de domaine de production (la version originale). Surtout
ne pas dmarrer la copie des 2 deux contrleurs de domaine (VMs)
ce moment.

Configurer les machines virtuelles dupliques pour dmarrer dans un


environnement rseau isol. Pour les personnes sous VMware ESX,
crer un nouveau vSwitch. Vous ne devez pas lui affecter de carte r-
seau physique. Mapper la carte rseau des deux machines virtuelles
dans ce vSwitch. Avec Hyper-V / XenServer, crer un rseau interne et
configurer la carte rseau des deux machines virtuelles dans ce rseau
Interne. Il ne faut surtout pas que les machines virtuelles de lenvi-
ronnement de tests puissent communiquer avec lenvironnement de
production. Si cela arrive, vous allez gnrer des conflits de rplication
196
trs graves. Pour viter ce problme (en cas derreur de configuration
de la solution de virtualisation), changer ladresse IP des contrleurs
de domaine pour utiliser une plage non utilise et non route sur votre
rseau de production.

Le contrleur de domaine dupliqu doit tre de prfrence un serveur


DNS si vous voulez rcuprer les zones DNS. Pour rappel les zones
DNS hberges dans la ForestDnsZones et dans la DomainDnsZones
ne sont rpliques que sur les contrleurs de domaine qui sont serveurs
DNS.

6.11.4.3 tape 2 : nettoyage de lannuaire

Il faut supprimer les contrleurs de domaine qui nont pas t copis.


Transfrer (mode forc) si ncessaire les rles FSMO. Cest comme
si vous aviez fait un DCPROMO / FORCEREMOVAL sur tous les
contrleurs de domaine qui nont pas t copis. Pour cela, on va utili-
ser loutil NTDSUTIL et appliquer les procdures ci-dessous :
http://support.microsoft.com/kb/255504/en-us
http://support.microsoft.com/kb/216498/en-us
http://support.microsoft.com/kb/230306
http://support.microsoft.com/kb/887424/fr

6.11.4.4 Etape 3 : restauration des applications mtiers qui sap-


puient sur lannuaire

Afin de tester notre image, il est ncessaire de restaurer les applications


critiques sur lenvironnement de maquette. Les applications comme
Exchange qui hbergent leur configuration au niveau de lannuaire
Active Directory peuvent tre restaures en mode Disaster Recovery.
Avec Exchange 2003 : setup.exe /Disasterrecovery
Avec Exchange 2007 : setup.com /RecoverServer

Vous pouvez maintenant tester votre nouvelle image systme


Windows dans lenvironnement de qualification.

6.11.5 QUELQUES RETOURS DEXPERIENCES SUR LE DEPLOIEMENT


DE WINDOWS 2012 R2

1. La configuration du clavier se fait depuis le Control Panel | Lan-


gage (choix de la langue et du clavier) et dans Control Panel | Region
(dfinition du clavier par dfaut au niveau de louverture de session en
cochant la case Welcome screen and system accounts).

197
Cependant, si vous avez install un serveur en mode Core puis ac-
tiv ensuite la fonctionnalit dinterface graphique ce rglage nest
pas conserv. Je vous invite alors ajouter de nouveau le clavier en
franais (en ajoutant temporairement un autre type de clavier). Ne pas
oublier ensuite de redfinir le clavier correct pour le Welcome Screen.
Pour plus dinformations : http://support.microsoft.com/
kb/3002327
2. Certaines fonctionnalits comme le .Net Framework 3.5.1 refusent
de sinstaller car il manque des sources dinstallation. Ce problme se
pose avec une installation Complte ou Core. Pour corriger ce pro-
blme, il faut utiliser le rpertoire sources\SxS du DVD dinstallation.

198
7 METTRE EN PLACE UNE POLITIQUE DE
PREVENTION DES RISQUES
Pour anticiper les attaques et leurs consquences, il est ncessaire
dtre proactif et de mettre en place les mesures suivantes :
Auditer les changements effectus sur lannuaire et les tentatives
daccs.
Superviser votre annuaire pour dtecter les disfonctionnements qui
pourraient tre lis des attaques.
Protger les sauvegardes de lannuaire Active Directory et les m-
dias IFM (Install From media). Un attaquant peut en effet rcuprer
les mots de passe des comptes utilisateurs et des comptes ordinateurs
sil dispose des fichiers NTDS.DIT et SYSTEM.
Prparer un plan de reprise dactivit en cas de compromission de
lannuaire.

7.1 AUDITER LES CHANGEMENTS EFFECTUES SUR


LANNUAIRE ET LES TENTATIVES DACCES

Laudit permet de gnrer des entres dans le journal de scurit des


contrleurs de domaine. Elle permet de surveiller entre autres, les ac-
tions effectues par les quipes dadministration de lannuaire ou de
tracer les demandes dauthentification.

7.1.1 CONFIGURER LE JOURNAL SECURITY

Laudit gnre un grand nombre dentres dans le journal Security des


contrleurs de domaine. Il est donc ncessaire daugmenter la taille par
dfaut du journal de Securit 512 Mo via les stratgies de groupe. Il
est ncessaire dautoriser les ouvertures de session mme si le journal
de Scurit est plein (risque de dni de service dans le cas contraire).

199
Si vous disposez dune quipe ddie lanalyse des journaux daudit,
vous devez configurer la stratgie suivante pour permettre uniquement
cette quipe deffacer le journal Security sur les contrleurs de do-
maine.

7.1.2 CONFIGURER LES ELEMENTS A AUDITER

Si vous disposez de contrleur de domaine sous Windows 2008 R1


ou versions ultrieures, il est recommand dactiver laudit avanc en
configurant sur Enabled le paramtre de GPO Force audit policy sub-
category settings au niveau de la Default Domain Controller Policy.

200
Les paramtres avancs daudit se configure au niveau de Computer
Configuration | Policies | Security Settings | Advanced Audit Policy
Configuration | Audit Policies.

Si vous souhaitez superviser lactivit des quipes dadministrateurs de


lannuaire vous devez activer laudit pour le management des comptes
utilisateurs, groupes de distribution, groupes de scurit et des comptes
ordinateurs. Si vous disposez dun environnement de taille importante,
il peut tre prfrable de nactiver que laudit des russites pour tracer
lactivit des quipes Helpdesk dans un premier temps. Dans le cas
contraire, vous risquez dtre submergs par les logs analyser.

Si vous souhaitez lister les ouvertures de sessions sur le domaine, vous


devez activer le paramtre Audit Logon (chec et russite). Cela per-
mettra de dtecter des attaques. Pour plus dinformations sur les para-
mtres avancs daudit, voir http://technet.microsoft.com/en-us/
library/dn319056.aspx.

7.1.3 COLLECTER LE JOURNAL SECURITY DES CONTROLEURS DE


DOMAINE ET GENERER UN RAPPORT QUOTIDIEN

La solution prsente ci-dessous permet de tracer les authentifications


russies sur des contrleurs de domaine Windows 2008 R2, de dter-
miner lIP de la machine depuis laquelle la demande dauthentification
est effectue, le nom de lutilisateur et le protocole dauthentification
(Kerberos, NTLM, LM).
201
Comment fonctionne le script :
Quand un utilisateur / machine sauthentifie avec un contrleur de do-
maine Windows 2008 R2, un vnement 4624 est gnr dans le jour-
nal Security comme indiqu dans larticle Microsoft http://technet.
microsoft.com/en-us/library/dd941635(v=ws.10).aspx

Log Name: Security


Source: Microsoft-Windows-Security-Auditing
Date: 05/01/2015 00:16:29
Event ID: 4624
Task Category: Logon
Level: Information
Keywords: Audit Success
User: N/A
Computer: TPODC1.tpo.net
Description:
An account was successfully logged on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
New Logon:
Security ID: TPO\melanie.mathieu
Account Name: melanie.mathieu
Account Domain: TPO
Logon ID: 0xb0dacc
Logon GUID: {4d950f3e-dc69-12b9-5bf0-
ec1cc6adcc53}
Process Information:
Process ID: 0x0
Process Name: -
Network Information:
Workstation Name:
Source Network Address: 192.168.1.120
Source Port: 49222
Detailed Authentication Information:
Logon Process: Kerberos
Authentication Package: Kerberos
Transited Services: -

202
Package Name (NTLM only): -
Key Length: 0

Crer le fichier C:\_adm\listconnexion.ps1 et copier le code


suivant :
echo Heure;Utilisateur;IP;Protocole;Type authentification
|Out-File c:\_adm\resultats\audit-connexion.txt
# Lister tous les vnements de connexion
Get-WinEvent -LogName Security -ComputerName DC1.
MSREPORT.INTRA | Where-Object {$_.Id -eq 4624}| select
TimeCreated,Message | foreach {
$message = $_.Message.Split(`n)
$logontype = $message[8].Trim()
$logontype = $logontype.Replace(Logon Type:
,).Trim()
$user = $message[12].Trim()
$user = $user.Replace(Account Name: , ).
Trim()
$ip = $message[23].Trim()
$ip = $ip.Replace(Source Network Address: ,).
Trim()
$authentification = $message[28].Trim()
$authentification = $authentification.Replace(Authentica-
tion Package: , ).Trim()
If (!($user.Contains($)))
{
$LineToWrite = [string]$_.TimeCreated + ; + $user +
; + $ip + ; + $authentification + ; + $logontype | Out-
File c:\_adm\resultats\audit-connexion.txt -Append
}
}

203
Crer le dossier c:\_adm\resultats.
Pour que le rsultat de la commande PowerShell Get-WinEvent fonc-
tionne, il faut tre en culture anglaise (Etats Unis) dans PowerShell.
Pour plus dinformations sur ce problme :
https://social.technet.microsoft.com/Forums/windows-
server/en-US/9deceae3-a631-464b-af86-13d50cf14ccf/
getwinevent-not-returning-message-windows-8?forum=winser-
verpowershell

Le script gnre un fichier c:\_adm\resultats\audit-connexion.txt en


sortie (exemple ci-dessous) et permet de lister les ouvertures de session
interactives (type 2) et rseaux (type 3) effectues par les utilisateurs.

La ligne de code If (!($user.Contains( $ ))) permet de supprimer


du fichier rsultat toutes les authentifications des comptes ordinateurs
(machines membres ou contrleurs de domaine).

Axes damlioration :
1. Centraliser tous les journaux Security des contrleurs de
domaine en mettant en place une souscription. Pour configurer une
souscription, je vous invite lire cet article :
http://msreport.free.fr/?p=222
2. Excuter le script 23h59 tous les jours et purger le conte-
nu de la souscription la fin du script.

204
7.2 AUDITER LA SECURITE DE VOTRE ANNUAIRE

Il existe de nombreux outils pour valuer le niveau de scurit de votre


annuaire et effectuer un audit de scurit de lannuaire Active Directo-
ry (test dintrusion).

Kali (anciennement appel BackTrack) : cet outil dispose de nom-


breux outils (http://tools.kali.org/tools-listing). pour effectuer des
tests dintrusion sur les contrleurs de domaine. Loutil est gratuit et
peut tre tlcharg cette adresse : https://www.kali.org/

Metasploit : cest loutil de rfrence. Il intgre de nombreux


exploits qui permettent deffectuer des lvations de privilges ou
de gnrer une dfaillance dune machine Windows. Une version de
base de loutil est disponible gratuitement et peut tre tlcharge
cette adresse : http://www.rapid7.com/products/metasploit/
download.jsp

BTA : cet outil est fourni par lANSSI. Je vous invite lire les docu-
ments suivants sur BTA :
- http://www.information-security.fr/audit-lactive-directo
ry-bta/
- https://www.sstic.org/media/SSTIC2014/SSTIC-actes/
BTA_Analyse_de_la_securite_Active_Directory/SSTIC2014-Ar-
ticle-BTA_Analyse_de_la_securite_Active_Directory-czarny_
biondi.pdf
- https://www.sstic.org/2014/presentation/BTA_Analyse_de_la_
securite_Active_Directory/

ADRAP : cet outil est fourni par Microsoft. Il sagit dun audit trs
complet qui couvre tous les risques lis Active Directory. ADRAP
permet par exemple de dceler les problmes de configuration de
lannuaire Active Directory qui pourrait entraner une dfaillance tout
comme les risques en terme de scurit.

205
7.3 SUPERVISER VOTRE ANNUAIRE ACTIVE DIRECTORY

Il est ncessaire de superviser lannuaire Active Directory pour dter-


miner les dfaillances potentielles gnres par une attaque. La solu-
tion ci-dessous est base sur un script PowerShell qui analyse le rsul-
tat de la commande DCDIAG /V /E qui est excute depuis un unique
serveur. Le script doit tre install sur un serveur Windows 2008 R2
(ou versions ultrieures) anglais car la commande DCDIAG doit pro-
duire un rsultat en anglais.
Remarque : la version tlchargeable du DCDIAG en anglais fonc-
tionne uniquement sur Windows 2003. Elle ne prend pas en charge par
exemple la rplication du dossier SYSVOL avec le moteur DFS-R.
Pour plus dinformations, voir http://www.microsoft.com/en-us/
download/details.aspx?id=31063
Il faut donc installer un serveur en anglais membre du domaine pour
superviser des contrleurs de domaine install avec un Windows fran-
ais.

7.3.1 PRESENTATION DE LOUTIL DCDIAG

Il sagit dun outil de diagnostic Active Directory trs complet qui


permet de vrifier la disponibilit des contrleurs de domaine, le bon
fonctionnement de la rplication, la disponibilit des rles FSMO, que
les services sont dmarrs
Loption /V permet de travailler en mode verbeux.
Loption /E permet dinterroger tous les contrleurs de domaine de la
fort.
Il existe dautres options pour effectuer des tests DNS. Pour plus din-
formations, taper la commande DCDIAG.EXE /?

7.3.2 DEPLOIEMENT DE LA SOLUTION

7.3.2.1 Etape 1 : prparation du serveur

Installer un serveur membre Windows 2008 R2 / Windows 2012


anglais. Le script ne fonctionne que pour un DCDIAG anglais. Lancer
Server Manager et cliquer sur Add Features.
Ajouter la fonctionnalit AD DS Snap-Ins and Command-Line Tools
dans Remote Server Administration Tools | AD DS and AD LDS Tools
| AD DS Tools.

206
7.3.2.2 Etape 2 : autoriser lexcution des scripts PowerShell non
signs

Entrer la commande suivante pour autoriser lexcution des scripts non


signs (ou mieux faire signer le code du script) : Set-ExecutionPolicy
Unrestricted

7.3.2.3 Etape 3 : crer le script crer le script c:\_adm\supervision\


supervision.ps1

Copier le code disponible cette adresse http://msreport.free.fr/ar-


ticles/supervision.txt

# Objectifs du script
# Analyse le rsultat de la commande DCDIAG /V /E et
produit 4 fichiers en sortie.
# Le script doit tre lanc sur une version anglaise de
Windows.
# Initialisation des fichiers la valeur par dfaut.
$Connectivity = OK
$Configuration = OK
$Sysvol = OK
$NTDS = OK
# Stockage du rsultat du DCDIAG dans une variable
# Dans lexemple ci dessous le script se connecte sur le
contrleur de domaine FR56DC2K12. A changer !
$dcdiagresu = dcdiag /v /e /s:FR56DC2k12
# Analyse du contenu de la variable
foreach ($line in $dcdiagresu)
{
# Test disponibilit de lannuaire
if (($line.Contains(failed test Connectivity)) -or ($line.
Contains(failed test Services)))
{
$Connectivity = KO
}
# Test de la configuration Active Directory
if (($line.Contains(failed test KnowsOfRoleHolders)) -or
($line.Contains(failed test MachineAccount)) -or ($line.
Contains(failed test Advertising)) -or ($line.Contains(-
failed test RidManager)) -or ($line.Contains(failed test
LocatorCheck)))
{
$Configuration = KO
207
}
# Test de la rplication Sysvol
if (($line.Contains(failed test DFSREvent)) -or ($line.
Contains(failed test SysVolCheck)) -or ($line.Contains(-
failed test KccEvent)) -or ($line.Contains(failed test Net-
Logons)) -or ($line.Contains(failed test NCSecDesc)))
{
$Sysvol = KO
}
# Test de la rplication NTDS
if (($line.Contains(failed test ObjectsReplicated))
-or ($line.Contains(failed test Replications)) -or ($line.
Contains(failed test Intersite)))
{
$NTDS = KO
}
}
# Ecriture des fichiers rsultats
$Connectivity | Out-File c:\Connectivity.txt -Force
$Configuration | Out-File c:\Configuration.txt -Force
$Sysvol | Out-File c:\Sysvol.txt -Force
$NTDS | Out-File c:\NTDS.txt -Force

7.3.2.4 Etape 4 : configuration votre application de supervision


(comme Nagios)

Configurer votre application de supervision (comme Nagios) pour lire


les 4 fichiers rsultats et afficher une alerte selon le contenu de chaque
fichier : OK ou KO.

208
7.4 DISPOSER DUN PLAN DE REPRISE INFORMA-
TIQUE (PRI) ACTIVE DIRECTORY

En cas de compromission de la scurit de votre annuaire Active Di-


rectory, Microsoft prconise deffectuer une restauration selon le sc-
nario Forest Recovery. Ce type de restauration est trs impactant pour
la production car il ncessite darrter tous les contrleurs de domaine
au pralable. Le fait de tester cette procdure permet de limiter la dure
dindisponibilit de lannuaire et donc limpact sur lentreprise. Tester
au moins une fois tous les 6 mois la procdure Forest Recovery sur
un environnement de maquette copie conforme de lenvironnement de
production.
La procdure de Forest Recovery de Microsoft est disponible cette
adresse (annexe A).
http://technet.microsoft.com/fr-fr/library/planning-active-direc-
tory-forest-recovery(v=ws.10).aspx

7.5 PROTEGER VOS SAUVEGARDES ACTIVE DIRECTO-


RY ET LES FICHIERS IFM (INSTALL FROM MEDIA)

Windows Server Backup est loutil intgr dans Windows Server


2008 R1 et versions ultrieures. Il permet deffectuer une sauvegarde
complte (image Baremetal) dun contrleur de domaine et gnre
un fichier VHD ou VHDX (selon version de Windows). Il permet de
restaurer trs facilement un contrleur de domaine (avec une sauve-
garde BareMetal) en dmarrant depuis le DVD dinstallation de Win-
dows et en slectionnant loption Repair computer. Si un attaquant
arrive copier une sauvegarde de lannuaire, il pourra probablement
restaurer le contrleur de domaine, obtenir les fichiers NTDS.DIT et
SYSTEM puis appliquer la mthodologie prsente prcdemment
pour disposer dun accs administrateur sur le contrleur de domaine
(fichier cmd.exe copi et renomm en sethc.exe). Il pourra aussi es-
sayer de rcuprer les mots de passe de tous les comptes utilisateurs et
les comptes ordinateurs partir du LMHASH ou NTHASH.

Loutil NTDSUTIL permet un administrateur du domaine (et autre


groupe avec privilge) de crer un mdia IFM. Ce type de m-
dia permet dinstaller un nouveau contrleur de domaine sans r-
pliquer le contenu de lannuaire travers le rseau. Il contient
une copie hors connexion du fichier NTDS.DIT, SYSTEM (ruche
HKEY_LOCAL_MACHINE\SYSTEM de la base de registre).

Pour gnrer un IFM, appliquer la procdure suivante :


209
Ntdsutil
ifm
activate instance ntds
create Full c:\ifm\

Loutil NTDSUTIL permet aussi un utilisateur avec privilges de


crer des snapshot de lannuaire Active Directory en appliquant la pro-
cdure suivante :
Ouvrir une invite de commande et taper les commandes suivantes :
ntdsutil
snapshot
activate instance ntds
create
Pour monter le snapshot gnr, taper la commande suivante :
Mount ID_snapshot

Ladministrateur peut maintenant copier / coller les fichiers NTDS.DIT


et SYSTEM qui ne sont plus protgs par le systme.

Il peut ensuite dmonter et supprimer le snapshot en tapant les com-


mandes suivantes :
List all
Unmount {ID_SNAPSHOT}
Delete {ID_SNAPSHOT}

210
8 ANNEXES

8.1 PROCEDURE DE DEPLOIEMENT DUNE AUTORITE


DE CERTIFICATION MICROSOFT

Lancer le Server Manager sur une machine Windows 2012 R2 membre


du domaine avec un compte membre du groupe Enterprise Admins et
appliquer la procdure ci-dessous.

211
212
213
La PKI dploye ci-dessus intgre une configuration de base. Des
tapes de configuration supplmentaires sont ncessaires comme la
configuration de lAIA / CRL pour tre hberges sur un site web,
la configuration de la dure de vie maximum dun certificat (2 ans
maximum par dfaut), le paramtrage des modles de certificats (d-
ploiement des certificats, dure de vie), les paramtres de rvocation
des certificats (gnration de la CRL toutes les heures, URL de la CRL
dans les certificats), lactivation de la sparation des rles ou la mise en
uvre de larchivage des cls prives des certificats.
Toutes ces tapes sont expliques dans larticle suivant : http://msre-
port.free.fr/?p=451.

8.2 PROCEDURE DACTIVATION DE BITLOCKER SUR


UN CONTROLEUR DE DOMAINE

8.2.1 PRESENTATION DE LA SOLUTION POUR CHIFFRER LES


DISQUES DURS DES CONTROLEURS DE DOMAINE

BitLocker permet de chiffrer le disque systme, un disque fixe (non


systme) ou un disque amovible (cl USB). BitLocker est inclus en
tant que fonctionnalit sous Windows 2008 R2 et version ultrieure.
BitLocker cre automatiquement 2 partitions : une partition de 100 Mo
qui est marque comme active et qui contient les fichiers de dmarrage
et la partition systme qui contient les donnes du systme (C:\win-
dows). Seule la partition systme est chiffre. La solution BitLocker
peut utiliser diffrents priphriques pour stocker la cl de chiffrement
/ dchiffrement :

Une Cl USB (cl de dmarrage uniquement) : cette mthode


chiffre uniquement le lecteur. Elle ne fournit aucune validation des
composants de la squence de dmarrage et aucune garantie contre la
falsification du matriel. Pour utiliser cette mthode, votre ordinateur
doit prendre en charge la lecture des priphriques USB dans lenvi-
ronnement de prdmarrage.
Une carte puce : BitLocker sappuie alors sur le certificat contenu
dans la carte puce pour chiffrer / dchiffrer le disque dur.
Un module TPM (Trusted Platform Module). Cest la mthode
recommande par Microsoft. Elle permet de protger le disque dur et
de valider que les composants de la squence de dmarrage nont pas
t altrs.

214
8.2.2 MISE EN UVRE DE BITLOCKER SUR DES CONTROLEURS DE
DOMAINE WINDOWS 2012 R2

Toutes les informations ci-dessous sont extraites des documents Mi-


crosoft suivants :
http://technet.microsoft.com/fr-fr/library/dd875547(v=ws.10).
aspx
http://technet.microsoft.com/en-us/library/jj679890.aspx
http://technet.microsoft.com/fr-fr/library/hh831412.aspx

La premire tape consiste installer la fonctionnalit BitLocker sur


un contrleur de domaine (machine physique ou machine virtuelle).
Un redmarrage sera ncessaire.
Pour plus dinformations : http://technet.microsoft.com/fr-fr/libra-
ry/jj612864.aspx

Il faut ensuite modifier la GPO Default Domain Controller Policy pour


paramtrer correctement BitLocker. Aller dans Computer Configura-
tion | Administrative Templates | Windows Components | BitLocker
Drive Encryption to show the policy settings | Provide the unique iden-
tifiers for your organization.

215
Activer ce paramtre et slectionner les paramtres suivants :

BitLocker Identification Field : 14127487


Allowed BitLocker Identification Field : 14127487

Ce paramtre permet dutiliser un Agent de rcupration des donnes


chiffres avec BitLocker (non implment dans cette procdure). Je
vous invite en gnral utiliser le numro de Siret de lentreprise
comme identifiant dentreprise.

Aller dans Computer configuration | Policies | Administratives Tem-


plates | Windows Components | BitLocker Drive Encryption | Opera-
ting System Drives | Require additional authentication at startup.
Activer le paramtre de GPO avec la configuration suivante :
Cocher la case Allow BitLocker without a compatible TPM.
Slectionner les choix suivants :
Allow TPM
Do not allow startup PIN with TPM
Do not allow startup Key with TPM
Do not allow startup Key and PIN with TPM

Pour scuriser le disque dur systme des contrleurs de domaine phy-


siques, on utilisera BitLocker avec stockage des cls de chiffrement
dans un TPM (Trusted Platform Module). Lutilisation dun TPM per-
mettra aussi dactiver le SecureBoot (protection des fichiers de dmar-
rage). Aucun mot de passe ne sera ncessaire au dmarrage.
Pour scuriser le disque dur systme des contrleurs de domaine vir-
tuels, on utilisera BitLocker avec un mot de passe de dmarrage. Les
solutions de virtualisation actuelles ne permettent pas nativement
dmuler un TPM et il est complexe dmuler une cl USB sur une ma-
chine virtuelle. Les quipes dadministration devront donc avoir un ac-
cs la console de la solution de virtualisation (Hyper-V, VMware)
pour redmarrer les contrleurs de domaine car ils devront saisir un
mot de passe BitLocker au dmarrage.

Aller dans Computer configuration | Policies | Administrative Tem-


plates | Windows Components | BitLocker Drive Encryption | Opera-
ting System Drives | Choose how BitLocker-protected operating sys-
tem drive can be recovered.
Activer le paramtre de GPO avec la configuration suivante :
Dcocher la case Allow data recovery agent
Cocher la case Omit recovery options from the BitLocker setup wizard
Cocher la case Save BitLocker recovery information to AD DS.

216
Slectionner Store recovery passwords and key packages
Cocher la case Do not enable BitLocker until recovery information is
stored to AD DS for operating system drive
Ces rglages permettent de forcer la sauvegarde de la cl de rcupra-
tion BitLocker dans lannuaire Active Directory.

217
Aller dans Computer configuration | Policies | Administrative Tem-
plates | System | Trusted Platform Modules Services | Turn on TPM
Backup to Active Directory Domain Services.
Ce paramtre permet de forcer la sauvegarde du mot de passe propri-
taire du TPM au niveau de lannuaire Active Directory. On notera que
la mthode de stockage des mots de passe de propritaire du TPM a
chang avec Windows Server 2012 R1 et Windows 8. Le schma doit
tre prpar pour Windows 2012 R1.

218
Activer ce paramtre de GPO avec la configuration ci-dessous.

Forcer la rplication (NTDS / DFS-R) sur tous les contrleurs de do-


maine puis excuter la commande gpupdate /force sur vos contrleurs
de domaine.

Ajouter des droits dans lannuaire pour mettre jour le mot de passe du
propritaire du TPM. Comme expliqu dans larticle Technet http://
technet.microsoft.com/fr-fr/library/dd875529(v=ws.10).aspx, il
est ncessaire dutiliser le script Add-TPMSelfWriteACE.vbs pour
pouvoir permettre lenregistrement du mot de passe du propritaire de
TPM dans lattribut msTPM-OwnerInformation.
Par dfaut seuls les utilisateurs membres du groupe Domain Admins
ont le droit de visualiser :

La BitLocker Recovery Key


Le Trusted Platform Module (TPM) owner password

Il est possible dutiliser le script Get-TPMOwnerInfo.vbs pour visua-


liser le Trusted Platform Module (TPM) owner password ou dutiliser
le script Get-BitLockerRecoveryInfo.vbs pour visualiser la BitLocker
Recovery Key.
219
Vous pouvez maintenant activer BitLocker sur votre contrleur de
domaine physique ou virtuel au niveau du panneau de configuration.
Dans notre cas, le contrleur de domaine est sous Windows 2012 R2.
La base de donnes Active Directory (NTDS.DIT) et le rpertoire
SYSVOL sont hbergs sur le disque systme.

220
Si vous avez oubli le mot de passe BitLocker, vous pouvez utiliser
la cl de rcupration qui est stocke au niveau du compte ordinateur.
Pour cela, appuyer sur la touche ECHAP.

Depuis un autre contrleur de domaine, lancer la console Active Direc-


tory Users and Computers.
Passer la console en mode Advanced Features et Users, Contacts and
Computers as containers.
Aller dans les proprits du compte ordinateur du contrleur de do-
maine.

221

8.3 BIBLIOGRAPHIE :

8.3.1 LIVRE RECOMMANDE

Je vous invite lire le livre sur les techniques de Hacking de Jon


Erickson dit par PEARSON.Cela livre vous permettra de comprendre
les principales attaques et dcrire des scripts pour les attaques de base.

8.3.2 MICROSOFT ACTIVE DIRECTORY TECHNICAL SPECIFICATION

Microsoft fournit sur MSDN les spcifications techniques dActive


Directory. La lecture du paragraphe 5 Security est essentielle pour bien
comprendre comment scuriser un annuaire Active Directory.
Pour tlcharger ce guide au format PDF (en anglais) :
http://msdn.microsoft.com/en-us/library/cc223122.aspx

8.3.3 POUR COMPRENDRE LES PROTOCOLE NTLM ET KERBEROS


AVEC ACTIVE DIRECTORY

Je vous invite lire ces 2 documents qui sont trs complets, trs
clairs et en franais. Merci entre autre Aurlien BORDES pour la
clart des explications. https://www.sstic.org/media/SSTIC2007/
SSTIC-actes/Secrets_d_authentification_sous_Windows/
SSTIC2007-Article-Secrets_d_authentification_sous_Win-
222
dows-bordes.pdf
http://www.ssi.gouv.fr/IMG/pdf/Aurelien_Bordes_-_Secrets_d_
authentification_episode_II_Kerberos_contre-attaque.pdf

8.3.4 LES RECOMMANDATIONS SUR LA SECURITE ACTIVE DIREC-


TORY DE LANSII

LANSII (Agence nationale de la scurit des systmes dinformation)


a crit un document trs complet sur les recommandations de scurit
pour Active Directory. De nombreux lments de ce livre sont issus
de ces recommandations : http://www.ssi.gouv.fr/IMG/pdf/NP_Ac-
tiveDirectory_NoteTech.pdf
Dautres guides sont disponibles cet emplacement :http://www.
ssi.gouv.fr/fr/guides-et-bonnes-pratiques/recommanda-
tions-et-guides/

8.3.5 RECOMMANDATION MICROSOFT SUR LA SECURITE DE LAN-


NUAIRE ACTIVE DIRECTORY

Microsoft a crit un document trs complet sur les recommandations


de scurit pour Active Directory qui peut tre tlcharg depuis un
des deux liens ci-dessous :
http://www.microsoft.com/en-us/download/details.as-
px?id=38785
http://aka.ms/bpsad.

8.3.6 RECOMMANDATION SUR LA CONFIGURATION DU SERVICE


TERMINAL SERVER

Ce document explique le fonctionnement interne du protocole RDP,


ses volutions et comment le configurer de manire scurise :
https://www.sstic.org/media/SSTIC2012/SSTIC-actes/securite_
rdp/SSTIC2012-Article-securite_rdp-ebalard_bordes_rigo_2.
pdf

8.3.7 AUTRES LIENS

Je vous invite lire ces 2 documents sur lattaque NTLM Pass The
Hash :
http://www.microsoft.com/en-us/download/details.as-
px?id=36036
http://www.sans.org/reading-room/whitepapers/testing/pass-
the-hash-attacks-tools-mitigation-33283

223
224
225
Guillaume MATHIEU est Architecte Infrastructure
Microsoft et responsable du ple avant-vente de
METSYS.
Expert en gestion des identits et en scurit, Guil-
laume intervient sur des audits, des dploiements
ou encore des migrations dannuaires Active Direc-
tory. Reconnu par Microsoft, Guillaume est gale-
ment MVP Active Directory et Entreprise Security
depuis 2010.

Plus dinformations sur


www.metsys.fr
Email: contact@metsys.fr

propos de Metsys

Entreprise de Services du Numrique (ESN), METSYS se positionne sur le


march comme un intgrateur de solutions dinfrastructure forte valeur ajou-
te. Partenaire des plus grands diteurs et constructeurs, METSYS conseille ses
clients tout au long de leurs projets, de la phase de conception la phase de
ralisation ou mme de support. Le maintien de notre niveau dexpertise est as-
sur la fois par une formation permanente de nos collaborateurs, un renouvel-
lement rgulier de leurs certifications, leur participation active aux programmes
dintroduction aux nouvelles technologies et nos liens troits avec Microsoft.
Ds sa cration, METSYS a obtenu lagrment Microsoft Gold Partner, qui
dmontre son expertise dans la mise en oeuvre de leurs solutions.

METSYS Sige social METSYS Agence IDF


La Grande Arche, Paroi Nord 140 rue Gallieni
92044 La Dfense Cedex 92100 Boulogne-Billancourt
Standard : 01 40 90 33 41 Standard : 01 81 89 19 70

Les informations contenues dans ce livre sont la proprit de la socit METSYS 2015-2016