--- tags: XMCO, joffrey.chambon author: joffrey.chambon title: Sécurité dans l'Active Directory --- # Introduction Très largement implanté dans toutes les grandes entreprises Cible des attaquants -> prendre le contrôle des ressources de l'entreprise Compliqué à maîtriser :::info Exemples : Sony (2014) TV5Monde (2016) Saint-Gobain (2017) Maersk (2017) ::: ## Types de modèle ### Groupe de travail Pratique jusqu'à 10 personnes ## Domaine Annuaire utilisateurs, authentification, administration et gestion de la sécurité centralisée. Gestion de milliers d'utilisateurs et de machines # Qu'est-ce que l'active directory ? ## Présentation Service d'annuaire introduit dans Windows 2000 server en 1999 Base de données qui référence des personnes, des machines et des ressources Gestion centralisée Très répandu en entreprise ## Architecture ### Structure logique Forêts (1 à n arbres) Arbres (1 à n domaines) Domaines (1 à n UO) UO (Unité d'organisation) ### Schéma Définition de tous les objets ## Composants ### AD classique * Postes de travail : utilisé par les utilisateurs * Serveurs : mise à disposition des ressources pour les utilisateurs -> Windows Server ou serveur Unix * Contrôleur de domaine : rôle d'annuaire et authentification au sein d'un domaine ou d'une forêt -> Windows Server ### Contrôleur de domaine Centralise toutes les infos liées aux domaines Gère les demandes d'authentification Applique les GPO Contient une copie de l'annuaire Active Directory (NTDS.dit) :::danger Essentiel pour le fonctionnement de l'AD ::: ### Protcoles réseaux Kerberos, TCP/IP, DNS, SNTP, LDAP, LDIF ### Annuaire LDAP Utilise le protocole LDAP Utilise le port TCP/389 ou TCP/636 (LDAPS) Installé sur le contrôleur de domaine ## Authentification ### NTLM v2 Evolution des protocoles LM et NTLM v1 Mécanisme de challenge/réponse pour s'authentifier sans envoyer son mot de passe en clair sur le réseau ### Inconvénient hash NTLM Voler un hash utilisateur <=> voler son mot de passe en clair * Hash utilisé par le mécanisme du challenge/réponse * Presque égal au vol de mot de passe (ne fonctionne pas sur des applis web qui n'accepte que les mots de passe) ### Technique du Pass-The-Hash L'attaquant utilise le hash du mot de passe de l'utilisateur pour s'authentifier sur le réseau Fonctionne avec les comptes locaux (SAM) et les comptes de domaines (NTDS) ### NetNTLM vs Format LM et NT Format LM facilement cassable contrairement au format NT ### Kerberos Basé sur le KDC (key distribution center) pour gérer l'authentification Utilisation de jetons cryptographiques et des clés de session : * TGT (Ticket-Granting Ticket) * ? TGT chiffrés par le KDC via le hash du compte krbtgt La clé de session initiale est chiffrée avec le hash de l'utilisateur Les TS sont chiffrés par le KDC avec le hash du compte du service cible #### Avantages Allège le processus d'authentification Authentification mutuelle Standard non propritétaire Améliore grandement la protection des secrets d'authentification #### Inconvénients Toutes les machines du réseau doivent être synchronisées Un AS de Kerberos compromis => accès à tous les services avec un unique login Peu d'applications supportent exclusivement l'authentification par Kerberos ## Gestion des accès ### SID (Security Identifier) SID unique pour chaque utilisateurs, comptes et ordinateurs de l'AD ### Groupes de sécurité Méthode efficace pour autoriser l'accès aux ressources * assigner des droits d'utilisateur * assigner des autorisations sur des ressources ### Permissions Repose sur les ACL (2 types) : * DACL (Discretionary Access Control List) qui indique les utilisateurs et groupes autorisés ou interdits * SACL (System Access Control List) qui indique comment les accès sont donnés Permissions NTFS : * Appliquées sur les dossiers/fichiers * 13 permissions * Take ownership permet de devenir propritétaire fichier/dossier ### Privilèges Droits donnés à un utilisateur 44 sur une machine Windows Server 2012 R2 Configurable par GPO :::info Exemples : Contourner les permissions NTFS Accéder à la mémoire des processus (Debug programs) Ourvrir une session localement (Allow Log on locally) Ajouter une machine à un domaine (Add workstations to domain) Backup operators ::: ## Administration ### Types d'administrateur AD Deux types d'administrateurs : * Administrateur du service AD : en charge du fonctionnement de l'annuaire Active Directory et de son évolution (administration du DC, sauvegarde de l'AD, supervision) * Administrateur du contenu de l'annuaire de l'AD : en charge de l'administration des données de l'annuaire AD ### Solutions #### Administration à distance * RDP (TCP/3389) * SCCM (TCP/2701) * Autres solutions non Microsoft : VNC (TCP/5900), PC anywhere (TCP/5631) #### Administration en ligne de commandes * Psexec : outil léger pour exécuter un processus sur un système distant * Powershell : un interpréteur de commandes qui utilise un langage de script et qui repose sur le .NET Framework * WMI, etc. ### GPO Permettent de partager des exécutables dans le partage NETLOGON ou SYSVOL Exécuter des scripts au démarrage / arrêt de la machine Stratégies mots de passe, Kerberos et verrouillage de comptes Configurer les paramètres des logiciels et du systèmes ### Mises à jour WSUS -> serveur de mise à jour # Les vulnérabilités sur l'Active Directory ## Les vulnérabilités connues ### Mots de passe dans SYSVOL Mot de passe dans des scripts en clair :::danger Ne jamais stocker de mot de passe dans un script accessible par tous les utilisateurs ::: Utiliser LAPS ### Mots de passe dans les GPP Mot de passe chiffré par AES256 par une clé commune à tous les AD dans le monde ### Vulnérabilité MS14-068 Exploite une faiblesse dans Kerberos (KDC) afin de forger un ticket Permet à un compte utilisateur du domaine de devenir administrateur du domaine Permet de changer un TGT existant afin de changer ses groupes membres ## Les défauts de configuration ### Mot de passe Mots de passe triviaux Mots de passe faible 2 formes de stockages : * LM (legacy) * NT Réutilisation de mots de passe SPN : comptes de service utilisés au niveau de Kerberos Recommandation : interdire le stockage des mdp sous forme de condensats LM ### Trop de compte SPN dont des comptes nominatifs (attaque Kerberoasting) Tous les comptes peuvent demander un TS Le TS est chiffré avec le hash du compte du service cible Tentative de bruteforce sur le ticket pour tenter de découvrir le mot de passe du compte de service ### Aucune pré-authentification Kerberos (attaque AS_REP Roasting) ### Protocoles LLMNR et NBT-NS LLMNR (ou NBT-NS) permet de rechercher une ressource sur le réseau par une requête de type broadcast Outil Responder pour récupérer des secrets d'authentification (condensat NTLMv1 ou NTLMv2) ### Protocole WPAD Recherche de proxy automatique Recommandation : Désactiver les protocoles LLMNR et NBT-NS Politique de mot de passe forte Activer la signature dans le protocole SMB et LDAP Ajouter une entrée pour "wpad" dans la zone DNS ou désactiver la détection automatique du proxy sur les postes de travail ### Partages réseau ouverts à tous Les partages réseau accessibles à des utilisateurs sans comptes connectés sur le réseau Contiennent souvent des scripts avec des mots de passe ### Vulnérabilités liées aux périphériques réseau Peuvent avoir un compte de service ayant des privilèges élevés ### ACL (Access Control Lists) Complexes et très difficiles à contrôler sur un domaine avec des dizaines de milliers d'utilisateurs Permet d'abuser des droits d'un utilisateur afin de réaliser une action malveillante sur le domaine Recommandations : Faire une revue d'ACL (audit, utilisation d'outils comme Bloodhound), appliquer le principe du moindre privilège ### MSCache Fonctionalité pour se connecter sans acccès au Contrôleur de domaine Recommandations : * Valeur de condensats pour poste fixe ou serveur : 0 * Valeur de condensats pour ordinateurs portables : 1 # Les solutions de défense et les meilleures pratiques ## Durcissement de configuration Les admins de domaine doivent posséder 3 comptes : * Un compte admin pour les DC * Un compte admin pour les serveurs * Un compte utilisateur pour la bureautique Le nombre de comptes administrateur de domaine doit être très limité Limiter la délagation Kerberos Utiliser le groupe Protected users (à partir de Windows server 2012) ### Limiter les mouvements latéraux Serveurs et postes de travail doivent être isolés dans des zones réseaux distincts Les interfaces d'administration doivent être restreintes Empêcher l'authentif de comptes locaux Utiliser LAPS pour avoir le mot de passe du compte administrateur local différent sur chaque machine Limiter les communications entre les postes de travail (Pare-feu windows) ### Prévenir les élévations de privilèges S'assurer que les admins ne se connectent pas à distance, découper les comptes en tiers ## Surveillance ### Journalisation Mettre en place une politique de journalisation Activer les fonctionnalités d'audit (journalisation des opérations réussies et des échecs) Surveiller les activités PowerShell