jeudi 11 novembre 2021

Mettre à niveau de l'algorithme de hachage d'une autorité de certification sous Windows

 Introduction

Dans cet article nous allons vous montrer comment nous pouvons mettre à niveau l'algorithme de hachage d'une autorité de certification.

Un petit rappel, l'algorithme de hachage , est une fonction mathématique qui permet de créer une empreinte numérique pour vérifier l'intégrité des données.

Si votre PKI utilise encore des algorithmes de hachage vulnérable comme SHA1,MD4 et MD5,c'est le moment de penser à migrer le plutôt possible vers SHA256 ou plus.

Pour mettre à niveau l'algorithme de hachage vers SHA256, il faut suivre les étapes suivantes:

  1. Mettre à niveau l'algorithme de hachage vers SHA256 du fournisseur du chiffrement
  2. Régénérer un nouveau certificat racine avec le nouveau algorithme de hachage pour l'autorité de certification
  3. Régénérer tous les certificats déjà délivrés

Avant de commencer la migration de l'algorithme de hachage , il est recommandé de sauvegarder la PKI pour assurer la possibilité d'un retour en arrière en cas de problème.

Dans notre environnement de test nous avons installé un domaine LAB.LAN et une autorité de certification entreprise PKI2008 qui  utilise l'algorithme SHA1 comme algorithme de hachage.


  1. Mettre à niveau l'algorithme de hachage du fournisseur du chiffrement:

Pour afficher l'algorithme utilisé par le fournisseur de chiffrement "Software Key Storage Provider" pour notre cas:

  •  Depuis la console certsrv.msc , cliquer sur le nom de la PKI (PKI2008) avec le bouton droit de la souris ensuite cliquet sur Propriétés : 


  • Dans les propriétés de la PKI allez vers l'onglet général et vous allez trouver l'algorithme de hachage utilisé par le fournisseur Microsoft Software Key Storage Provider:


  • Dans les propriétés de la PKI , onglet général ,cliquer sur Afficher le certificat pour vérifier l'algorithme de hachage utilisé pour signer le certificat racine :



  • Pour modifier l'algorithme de hachage du fournisseur "Software Key Storage Provider", il suffit de taper la commande suivante:

Certutil -setreg ca\csp\CNGHashAlgorithm SHA256



  • Une fois que la commande est bien exécutée, un message s'affiche pour vous demander de redémarrer le service CertSvc:

  • Pour redémarrer le service Certsvc, depuis la console certsrv.msc cliquer avec le bouton droit de la souris sur le nom de la PKI ensuite allez vers Toutes les tâches pour trouver l'option Démarrer et arrêter le service:



  • Maintenant vérifiez que le nouvel algorithme de hachage utilisé par le fournisseur "Software Key Storage Provider" est bien SHA256:

2. Régénérer un nouveau certificat racine pour l'autorité de certification:

Pour générer un nouveau certificat racine, vous pouvez suivre les étapes suivantes:

  • Depuis la console certsrv.msc ,cliquer avec le bouton droit de a souris sur le nom de la PKI ensuite cliquer sur toutes les tâches puis sur l'option Renouveler le certificat d'autorité de certification:


  • Une fenêtre s'affiche pour vous avertir que le service de certificats active directory va s'arrêter, cliquez sur oui



  • Dans cette étape si vous avez la possibilité de générer un nouveau pair de clé privé et publique avant la génération du nouveau certificat:



  • Une fois que la génération du certificat est terminé, vous pouvez affciher le certificat en allant dans les propriétés de la PKI et sous l'onglet General sélectionner le nouveau certificat et cliquer sur Afficher le certificat:


  • Dans les propriétés du certificat , allez vers l'onglet Détails et vérifier l'algorithme de Hachage:


3. Régénérer tous les certificats déjà délivrés:

La dernière étape consiste à regénérer tous les certificats déjà livrés par l'autorité de certification, afin  de mettre à jour le hache de chaque certificat calculé par l'autorité de certification en question  à travers le nouveau algorithme de hachage. Pour rappel, lors de la génération du certificat le hache est calculé et signé par la l'autorité de certification pour assurer son intégrité .

Cette étape dépend de la méthode d'enregistrement utilisée pour générer le certificat.
Pour les certificat générés automatiquement à travers GPO, ils seront regénérer automatiquement après l'expiration ou la suppression de l'ancien certificat.

mardi 2 novembre 2021

Corbeille Active directory

A partir de Windows 2008R2 , une nouvelle fonctionnalité Corbeille active directory est disponible  permettant la restauration  des objets  active directory.
Pour activer cette fonctionnalité , il faut que tous les contrôleurs de domaine soient installés sur des machines Windows 2008 R2 au minimum et que le niveau fonctionnel de la forêt soit 2008 R2 au minimum.
L'activation de la corbeille active directory est irréversible , pour faire le roll-back  il faut lancer une restauration de toute la forêt.
 Les objets supprimés avant l'activation de la corbeille active directory ne peuvent d' être restaurés qu'à partir d'une restauration autoritaire. Il s'agit de la même chose pour les objets modifiés.  
Activation de la corbeille active directory:
Pour activer la corbeille active directory via Powershell ,il suffit de lancer cette commande sur le contrôleur de domaine qui a le rôle maitre d'attribution du nom de domaine:
Enable-ADOptionalFeature "Recycle Bin Feature" -Scope ForestOrConfigurationSet -Target "lab.lan" -server dc1


Il est possible d'activer la corbeille à partir de la console Active Directory Administrative Center  sur Windows 2012/2012 R2/2016:



Pour  vérifier l'activation de la corbeille , il faut lancer la commande ci-dessous afin de vérifier la valeur EnabledScopes :
Get-ADOptionalfeature -Filter  {name -like"recycle bin feature"}
 Si la valeur EnabledScope est vide c'est que la corbeille n'est pas  encore activée:


Si la valeur EnabledScopes n'est pas vide c'est que  la corbeille est bien activée:



Restauration d'un objet supprimé :
Après l'activation de la corbeille active directory , les objets supprimés seront déplacés dans un autre conteneur  deleted objects, ce dernier est visible depuis la console centre d'administration active directory installé sur Windows 2012/2012 R2/2016.
Il existe deux attributs qui déterminent l'état de l'objet supprimé : isDeleted et isRecycled.
L'attribut isDeleted  prend la valeur TRUE une fois que l'objet est supprimé, cet attribut existe depuis la version Windows 2000.
L'attribut isRecycled a été ajouté depuis la version Windows 2008 R2, il détermine si l'objet supprimé a dépassé la durée maximale autorisé pour la restauration à travers la corbeille.
si l'objet supprimé (isDeleted=TRUE) a dépassé la durée msDSdeletedObjectLifetime , l'attribut isRecycled prend la valeur TRUE, et dans ce cas on ne peut pas restaurer l'objet à travers la corbeille active directory , il faut passer par une restauration autoritaire.
Par défaut la valeur de l'attribut isRecycled de tous les objets supprimés avant l'activation de la corbeille prend la valeur TRUE , pour cela on ne peut pas les restaurer par la corbeille active directory.

Durée de vie d'un objet supprimé:
Il existe aussi deux attributs qui détermine la durée de vie d'un objet supprimé : msDS-deletedObjectLifetime et tombstoneLifetime.
L'attribut msDSdeletedObjectLifetime a été ajouter  depuis la version Windows 2008R2, il permet de déterminer la durée maximale pendant laquelle la restauration d'un objet supprimé à travers  la corbeille est possible.
Par défaut, msDSdeletedObjectLifetime prend la même valeur que tombstoneLifetime.
Il est possible de changer cette valeur à travers un compte membre du groupe Entreprise Admin.
Pour changer la valeur de cet attribut via ADSIEDIT  , on doit de se connecter sur la partition configuration et allez chercher  les propriétés de CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=lab,DC=lan:


Il est aussi possible de modifier la valeur msDS-deletedObjectLifetime via powershell:
Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com” –Partition “CN=Configuration,DC=lab,DC=lan” –Replace:@{“msDS-DeletedObjectLifetime” = 240}
L'attribut tombstoneLifetime détermine  la durée de vie maximale des objets supprimés avec l'attribut isRecycled=TRUE avant d'être supprimé définitivement .
la valeur par défaut du  tombstoneLifetime dépend de la version du premier contrôleur de domaine installé dans la forêt:

Windows 2000
60j
Windows 2003
60j
Windows 2003 R2 sp1
60j
Windows 2003 SP1/2003 R2SP2
180j
Windows 2008/2008R2
180j
Windows 2012/2012R2
180j
Windows 2016
180j

Pour changer la valeur de cet attribut via ADSIEDIT  , on doit de se connecter sur la partition configuration et allez chercher  les propriétés de CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=lab,DC=lan:


Il est aussi possible de modifier la valeur tombstoneLifetime via powershell:

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com” –Partition “CN=Configuration,DC=lab,DC=lan” –Replace:@{“ tombstoneLifetime ” = 240}


Ci-dessous un exemple de restauration d'un compte utilisateur test1 via powershell:


Il est possible aussi de restaurer le même compte via la console Active Directory Administrative Centre sous Windows 2012/2012R2/2016:




mardi 26 octobre 2021

Désactiver le protocole SMBv1

Pourquoi désactiver le protocole SMBv1:

Après les attaques WannaCry qui ont pu exploiter les failles et les vulnérabilités du  protocole SMBv1 décrites dans cet article:  Microsoft Security Bulletin MS17-010 - Critical, ce protocole représente maintenant un véritable risque qui peut endommager les systèmes d'exploitation de la production et créer des grosses pertes à l'entreprise.
Pour cette raison ,il est recommandé de désactiver le protocole SMBv1 et laisser la version SMBv2 activée sur tous les serveurs et les machines clientes.
Avant la désactivation du SMBv1, il faut s'assurer que vous ne disposez pas de machines Windows 2003, Windows XP ou d'un autre serveur non Microsoft qui ne supporte que la version SMBv1.
Jusqu'à maintenant ce protocole est activé par défaut après l'installation du système d'exploitation, mais avec l'arrivé de Windows 10 Fall Creators Update et Windows Server version 1709, le SMBv1 sera désactivé par défaut et désinstallé automatiquement s'il n'a pas été utilisé pendant 15 jours.
Pour avoir plus de détails sur le SMBv1 avec les nouvelle versions du système d'exploitation ,veuillez consulter ce lien en anglais:
SMBv1 is not installed by default in Windows 10 Fall Creators Update and Windows Server, version 1709

Désactiver le composant client du SMBv1:


Les méthodes possibles pour désactiver le composant client du SMBv1 dépendent de la version du système d'exploitation:
  • Pour les versions Windows Vista,Windows 7, Windows 2008 et Windows 2008 R2 , on utilise les clés de registre ou la commande sc.exe pour activer ou désactiver le protocole SMBv1
  • Pour Windows 8, Windows 8.1, Windows 10, Windows 2012 et Windows 2012 R2, le protocole SMBv1 est géré via une fonctionnalité Windows nommé 1.0/CIFS File Sharing Support.

Pour Windows 7, Windows Vista, Windows 2008 ,Windows 2008 R2:


Il est possible de désactiver le composant client du protocole SMBv1 à travers les deux clés de registre ci-dessous:

Chemin: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
Nom:      Start 
Type:      REG_DWORD
Donnée: 4 pour désactiver et 2 pour activer

Chemin: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation
Nom:      DependOnService
Type:      REG_MULTI_SZ
Data:     Bowser MRxSmb20 NSI pour désactiver et "Bowser","MRxSmb20","MRxSmb10","NSI" pour activer


On peut utiliser une  GPP (Group Policy Preferences), pour modifier les clés mentionnées ci-dessous sur plusieurs machines membres du domaine.

Il est aussi possible d'utiliser l'invite de commande pour désactiver ou activer le client SMBv1:

Pour vérifier l'état du client SMBv1:
sc.exe query mrxsmb10
Pour désactiver le client SMBv1:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi 
sc.exe config mrxsmb10 start= disabled
Pour activer le client SMBv1:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/mrxsmb10/nsi 
sc.exe config mrxsmb10 start= auto

Pour Windows 8, Windows 8.1, Windows 10, Windows 2012, Windows 2012 R2, Windows 2016:


Pour désactiver le protocole SMBv1 au niveau du client il faut désinstaller  la fonctionnalité SMB 1.0/CIFS File Sharing Support et pour l'activer à nouveau , il faut juste la réinstaller, cela est possible via l'interface graphique comme indiqué dans la figure ci-dessus:


Et aussi via Powershell:


Pour vérifier si le SMBv1 est installé, on peut exécuter la commande ci-dessous:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Uniquement sur Windows 2012 R2 et Windows 2016, on peut également vérifier l'état de l'installation du SMBv1 via la commande ci-dessous:
Get-WindowsFeature FS-SMB1 | fl Displayname,description,Installed
Pour désactiver le client SMBv1:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Pour activer le client SMBv1:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Désactiver le composant serveur du SMBv1:


Les méthodes possibles pour désactiver le composant serveur du SMBv1 dépendent de la version du système d'exploitation:

  • Pour les versions Windows Vista,Windows 7 Windows 2008 et Windows 2008 R2 , on utilise une clé de registre pour désactiver le composant serveur du SMBv1
  • Pour Windows 8, Windows 8.1,Windows 10 , Windows 2012, Windows 2012 R2 et Windows 2016, le protocole SMBv1 on utilise des commandes Powershell

Pour Windows 7, Windows vista, Windows 2008 ,Windows 2008 R2:


Pour désactiver le SMBv1 du composant serveur, il faut ajouter la clé de registre suivante:
Chemin: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Nom:    SMB1
Type: REG_DWORD
Donnée: 0 pour désactiver ou 1 pour activer

Pour Windows 8,Windows 8.1, Windows 10, Windows 2012, Windows 2012 R2, Windows 2016:


Pour vérifier l'activation du composant serveur du protocole SMBv1 :

Get-SmbServerConfiguration | Select EnableSMB1Protocol
Pour désactiver le composant serveur du protocole SMBv1:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Pour désactiver le composant serveur du protocole SMBv1:
Set-SmbServerConfiguration -EnableSMB1Protocol $true



lundi 18 octobre 2021

Comment créer une stratégie de mot de passe via Password Settings Object PSO

Password Settings Object PSO permet d'appliquer une stratégie de mot passe sur un ou un groupe d'utilisateurs du même domaine. 
Grâce à la PSO, nous sommes capable de créer et appliquer plusieurs stratégie de mot de passe dans le même domaine.
Pour activer PSO, il faut que le niveau fonctionnel du domaine soit Windows 2008 ou plus:



Créer une stratégie de mot de passe via PSO:

La création d'un stratégie de mot de passe via PSO est possible à travers la console ADSIEDIT, Powershell et la console centre d’administration Active Directory.

Créer une PSO à travers la console ADSIEDIT.msc:


Cette méthode peut être utilisée sur les versions Windows 2008 ou plus.Ci-dessous l'explication de chaque étape:


  • Ouvrir la console ADSIEDIT.msc et sélectionner Default naming context:



  • Aller vers CN=Password Settings Container,CN=System,DC=domain,DC=local et cliquer à travers le bouton droit sur New puis Object:



  • Cliquer sur NEXT:



  • Taper le nom du nouveau objet:




















mardi 17 août 2021

Comment appliquer une stratégie du mot de passe via GPO

La stratégie de mot de passe permet de définir des critères pour renforcer la sécurité des mots de passe des utilisateurs.

Dans cet article nous allons expliquer comment créer et appliquer une stratégie de mot de passe via GPO qui répond aux critères et aux exigences de la sécurité.

Gérer la stratégie de mot de passe des comptes utilisateurs du domaine:

Pour appliquer une stratégie de mot de passe sur les comptes utilisateurs du domaine, il existe deux méthodes : soit par GPO ou bien PSO.

Appliquer la stratégie de mot de passe sur les utilisateurs de domaine via GPO:

Par défaut, tous les utilisateurs du domaine subissent la stratégie du mot de passe définie dans la GPO Default Domain Policy:




la GPO Default Domain Policy est la seule GPO capable d'appliquer une stratégie de mot passe sur les comptes du domaine. Par conséquence, nous ne pouvons appliquer qu'une seule stratégie de mot de passe par domaine via GPO.
Pour créer plusieurs stratégies de mot de passe ,il faut utiliser PSO (Password Settings Object) qui ne sont disponible que dans les domaines ayant un niveau fonctionnel du domaine Windows 2008 ou plus.

Gérer la stratégie de mot de passe des comptes locaux:    

Pour les comptes locaux, la stratégie de mot de passe  peut être appliqués via GPO:

Il suffit de créer une nouvelle GPO avec les paramètres de stratégie de mot de passe ,l'attacher à l’unité d'organisation des machines en question.
Il est également possible utiliser la GPO local via l'outil gpedit.msc pour définir et appliquer une stratégie de mot de passe sur les comptes locaux.



samedi 1 mai 2021

How-to create passoword policy through GPO

The password policy define the criteria to enhance the security of user password.

In this topic, I will shows you how we can apply password policy through GPO.

To apply a password policy on domain user accounts, there are two methods: Group Policy Object  and Password Settings Object.

How-to apply a passwor policy on domain user accounts through GPO: 

By default, the password policy settings defined on the defaut GPO Default Domain Policy are applied on all domain user accounts.




The Default Domain Policy GPO is the only GPO that can enforce a password policy on domain accounts. therefore, we can only apply one password policy per domain via GPO for domain user accounts.
If you need to create many password policy in the same domain, you have to create Password Settings object available when the domain functional level is Windows 2008 or higher.

How-to apply a password policy on local user accounts:

Concerning the local users accounts, we can apply the password policy through domain GPO:

Just create a new GPO with the password policy settings, attach it to the organizational unit of the machines in question.

It is also possible to use the local GPO via the gpedit.msc tool to set and enforce a password policy settings on local accounts.