Active Directories

Informations relatives au hardening d'Active Directories et les notions sur lesquelles il faut avoir un œil lorsqu'on maintient un AD.

Services et protocoles vulnérables

Il existe plusieurs services et fonctionnalités activées par défaut et absolument non nécessaires. D'ailleurs, beaucoup d'entre eux peuvent grandement faciliter la compromission de l'AD :

  • LLMNR + Net-Bios (Protocoles de découvertes d'hôtes. Utile pour une utilisation courante et anecdotique, mais dangereux dans le cadre d'une infrastructure professionnelle)

  • mDNS (Protocole multicast utilisé en fallback en cas de résolution DNS non satisfaisante. Même principe que les deux précédents)

  • IPv6 (Inutile dans un AD mais offre pourtant des possibilités supplémentaires d'attaques de type MitM)

  • Les macros et Wscript (Désactiver les macros peut permettre de réduire le champs d'action d'un attaquant ayant réussi à s'introduire sur une machine, de même pour Wscript)

  • Hash LM (Le Hash LM n'est absolument pas nécessaire et est par défaut stocké dans la mémoire d'un AD. Autant désactiver cette fonctionnalité...)

  • Compatibilité pre-Windows 2000 doit être désactivée car se repose sur des protocoles vulnérables et n'est pas nécessaire.

  • WDigest doit être désactivé si possible. En effet, celui-ci stocke des mots de passe en clair dans la mémoire des serveur, augmentant alors les risques suite à une compromission du serveur

#  Désactiver Net-Bios
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\tcpip_*' -Name NetbiosOptions -Value 2 -Verbose
ipconfig /release
ipconfig /renew

# Désactiver WScript
# Mise à 0 de la valeur du registre
reg add
HKEY_CURRENT_USERSoftwareMicrosoftWindowsScriptHostSettings /v
Enabled /t REG_DWORD /d 0
# Mise à 0 de la valeur du registre
reg add
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsScriptHostSettings /v
Enabled /t REG_DWORD /d 0

# Désactiver WDigest
# Vérifier la valeur du registre concerné (il doit être mis à 0)
reg query
HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v
UseLogonCredential
# Mise à 0 de la valeur du registre
reg add
HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v
UseLogonCredential /t REG_DWORD /d 0

Gestion des droits

NTFS et SMB

Il faut savoir que concernant les Active Directories, pour des raisons d'historique, il y a deux systèmes de permissions qui agissent simultanément et peuvent rendre les choses confuses. Pour cette raison, il est bien d'en utiliser qu'un seul :

  • Il y a les permissions NTFS qui est le système de permissions inhérent au système de fichiers propriétaire Microsoft.

  • Il y a les permissions SMB, qui est le protocole de partage de fichier généralement utilisé dans les AD.

Il est alors souvent recommandé de tout autoriser pour everyone au niveau des permissions SMB et donc de configurer nos accès via le système de permissions NTFS.

Dans de rares cas, une combinaison des deux systèmes permet un comportement impossible avec l'utilisation d'un seul système, cependant, la clarté de configuration, en matière de sécurité, est cruciale.

Politique de restriction

Il y a des concepts principaux auxquels il faut rester vigilent :

  • La délégation (Il est possible de déléguer à un serveur les droits d'utilisateurs. En effet, il est parfois pratique qu'un service effectue des actions auprès d'un autre service, au nom d'un utilisateur)

  • Les URA (User Rights Management sont les droits des différents utilisateurs au sein de l'AD. Là aussi, plus on restreint les URA pour que les utilisateurs puissent faire le moins d'actions possible tout en ne compromettant pas le bon fonctionnement de notre infrastructure)

  • Les GPO (Il est également bien de parcourir les différentes GPO et de n'activer que celles que vous jugez nécessaires)

Tiering Model

Ce bastion pourra alors gérer les comptes moins privilégiés. Il est courant d'organiser ces autres comptes dans un système de Tiering. Plus généralement, on peut même ajouter de la granularité selon nos besoins spécifiques, plus il a de cloisonnement des accès, plus la sécurité est forte. Plusieurs modèles de tiering peuvent être utilisés mais l'écrasante majorité des entreprises se reposent sur une base commune et souvent suffisante :

  • Tier 0 : Réuni tous les services d'administration de l'infrastructure. Gestion des certificats, des authentifications, des sauvegardes (archivage).

  • Tier 1 : Réuni les applications métiers, donc les outils informatiques hébergés dans l'infrastructure comme le serveur de fichiers SMB, les bases de données, les VM mises à disposition pour les employés.

  • Tier 2 : Réuni la totalité des machines clientes des employés ainsi que tous les périphériques utilitaires et dont l'accès total est disponible pour ces derniers, comme les imprimantes et les scanners.

Il est essentiel de compartimenter les accès via la création de groupes de permissions, les réseaux via la créations de plusieurs domaines, plus nous allons sécuriser notre infrastructure et rendre difficile la progression latérale d'une potentielle attaque.

Renforcement des authentifications et échanges

Certificats et MitM

  • Pour RDP, vous devez donc faire comme précédemment expliquer et puis partager les certificats de confiance sur les machines clientes.

  • Pour SMB, ça s'appelle le SMB Signing et c'est exactement le même principe. Cela va permettre d'empêcher les attaques de type NTLM Relay.

  • Je ne vais pas fournir d'explications pour les différentes activations par GUI ou ligne de commande, car c'est une règle générique qui s'applique plus largement à tout le monde de l'informatique : Forcez les échanges signés (TLS) lorsque possible.

User Access Control

Dans l'hypothèse où un attaquant est parvenu à compromettre un compte privilégié, il est souhaitable de réduire son champ d'action via des mécanismes de confirmation d'identifiants. En effet, il est courant qu'une compromission se fasse sans que l'attaquant connaisse le mot de passe du compte compromis. Pour certaines actions délicates, il est donc préférable de demander à nouveau le mot de passe du compte.

Ce mécanisme s'appelle l'UAC (User Access Control) chez Microsoft et permet de protéger l’exécution de certains programmes dont le niveau d'intégrité appelé Integrity Level est assez haut pour l'utilisateur mais pas pour sa session. Le but est alors d'avoir une session à niveau d'intégrité basse afin de protéger les actions à plus haute intégrité via l'UAC.

En activant sur toutes les machines clientes, l'option en Toujours notifier pour le contrôle d'utilisateur, Windows demandera alors systématiquement l'identification pour exécuter un programme à IL (Integrity Level) haut, même pour ceux qu'il estime dignes de confiance :

Niveau d'UAC

Downgrading de protocoles d'authentification

Il est important de désactiver les options de downgrading de protocoles. Notamment pour RDP et Kerberos.

Désactiver la possibilité de s'authentifier via le NTHash (NTLM). Il est vulnérable aussi bien au bruteforce en local qu'aux attaques de type PtH (Pass The Hash). Il a alors des successeurs : Net-NTLMv1 et Net-NTLMv2, souvent appelés NTLMv1 et NTLMv2. Ces protocoles sont bien plus sécurisés et ne sont pas vulnérables aux attaques de type PtH. Pour des raisons de sécurité au niveau de la vitesse de bruteforce de ces hash, il est préférable de désactiver l'utilisation de l'authentification par NTLMv1 et donc de forcer l'utilisation de NTLMv2.

Outils d'analyse

Le mieux est alors d'utiliser des outils de scanning comme BloodHound, ForestDruid, Purple Knight et Microsoft BPA (Best Practice Analyzer), l'outil proposé par Microsoft. Ces outils nous aident à détecter des chemins pour faire de la propagation latérale voire verticale (élévation de privilège) créés par des erreurs de configuration ne respectant pas les différents cloisonnement que nous avons mis en place.

Le mieux est alors d'utiliser des outils de scanning :

  • BloodHound, ForestDruid (Outils pour trouver des chemins vulnérables pour de la privesc via des erreurs de configuration)

  • Purple Knight (Outils d'évaluation des bonnes pratiques au sein de l'AD avec attribution d'un score)

  • Microsoft BPA (Best Practice Analyzer est un outil de scanning proposé par Microsoft)

Dernière mise à jour

Cet article vous a-t-il été utile ?