Qu'est-ce qu'un contrôleur de domaine ?
Un contrôleur de domaine est un type de serveur informatique qui répond aux demandes d'authentification de sécurité et vérifie les utilisateurs sur le domaine d'un réseau informatique. Le contrôleur est un contrôleur d'accès permettant à l'hôte d'accéder aux ressources du domaine. Il applique également les politiques de sécurité, stocke les informations de compte d'un utilisateur et authentifie les utilisateurs pour un domaine.
Ce blog examine l'approche utilisée par les attaquants, après avoir pris pied sur un contrôleur de domaine, pour découvrir et comprendre un environnement avant de se déplacer latéralement. De nombreuses techniques « tirent parti » d'un terminal ou d'un serveur pour finalement atteindre les contrôleurs de domaine et lancer une attaque. Notre prochain article examinera certaines manières dont les attaquants se déplacent latéralement, et enfin, nous explorerons les mesures d'atténuation permettant de prévenir mouvement latéral.
Les attaquants trouvent un moyen d'entrer.
Une fois qu'ils entrent, il leur suffit de se déplacer latéralement, souvent pour atteindre le contrôleur de domaine afin d'orchestrer une attaque. Une fois qu'un attaquant y a accès, il devient en fait un administrateur informatique. « vivre de la terre » ne pourrait donc pas être plus facile. Examinons une attaque, en supposant qu'il s'agit d'une violation, c'est-à-dire qu'un attaquant finira par trouver un moyen d'y pénétrer.
Mais d'abord, examinons les contrôleurs de domaine. Vous le savez probablement déjà, mais un serveur Microsoft Domain Controller, Active Directory, est chargé d'authentifier l'accès (vérification de la connexion des utilisateurs) à un domaine Windows et aux ressources réseau associées. Il contient un répertoire d'utilisateurs, de groupes et d'ordinateurs et constitue un référentiel de services réseau tels que les partages de fichiers, les partages réseau et les imprimantes. Un serveur configuré avec les rôles Active Directory Domain Services devient un contrôleur de domaine. Il est également installé avec un serveur DNS pour gérer la résolution des noms et d'autres services réseau internes. Bien qu'ils soient largement pilotés par une interface graphique, un contrôleur de domaine et un serveur Active Directory sont très complexes, en particulier dans un réseau d'entreprise typique où il y en a probablement plusieurs pour des raisons de réplication et de tolérance aux pannes.
En raison des rôles étroitement liés sur un domaine Windows, le contrôleur de domaine héberge de nombreux services différents en fonction du nombre de rôles pour lesquels il est configuré. Des rôles tels que le DNS pour la résolution interne des noms, la billetterie Kerberos pour l'authentification, le blocage des messages du serveur, les services de certificats et bien d'autres encore. Cela élargit surface d'attaque et en effet, il existe de nombreuses attaques contre des composants tels que :
- Utilisation des informations d'identification uniques
- Billetterie Kerberos,
- Noms principaux de service (SPN),
- Objets de stratégie de groupe (GPO),
- Fiducies et délégation Active Directory
- RPC et SMB.
La plupart de ces attaques sont grandement facilitées par la traversée du réseau. Tous ces services sont associés à des ports et à des protocoles.
Le tableau ci-dessous indique les ports et protocoles susceptibles d'être utilisés par un contrôleur de domaine classique qui doit rester ouvert. Cela représente une surface d'attaque étendue que les acteurs malveillants peuvent utiliser. Le défi est que si nous décidons de fermer des ports, afin de réduire les surfaces d'attaque, Active Directory cessera de fonctionner correctement.
Chemin d'accès au contrôleur de domaine
Le postulat est conforme à la philosophie de l'hypothèse d'une violation, qui implique qu'un acteur de la menace dispose peut-être déjà d'un accès non autorisé à vos systèmes ou à votre réseau, même s'il dispose peut-être de privilèges de niveau inférieur. Par exemple, il peut s'agir de la compromission d'un compte utilisateur via phishing qui peut, à son tour, entraîner une compromission de la messagerie professionnelle (BEC). Cela impliquera également que l'auteur de la menace essaie très probablement de se frayer un chemin vers un compte à privilèges plus élevés et, par la suite, un système phare tel que le contrôleur de domaine.
Examinons un flux d'attaque hypothétique suivant ce schéma :
L'attaque initiale consiste à envoyer un e-mail de phishing à un employé. Cette attaque de phishing contient un lien vers un faux identifiant Office 365 OneDrive que l'employé cherche. En conjonction avec l'exécution de JavaScript et, dans certains cas, une vulnérabilité, un tel lien exécute automatiquement un malware utilisant uniquement la mémoire et exploitant Windows Powershell. Cela conduit ensuite à une porte dérobée de commande et de contrôle (C&C) du shell inversé entre l'ordinateur portable Windows de l'utilisateur compromis et l'attaquant. C'est le point de départ de cet article »supposer une violation« prémisse.
Jusqu'à ce stade, l'attaque sera principalement automatisée, de sorte que l'attaquant recevra probablement une notification C&C concernant un nouveau shell et donc une nouvelle machine compromise. Ils seront également principalement inconscients de tous les détails du système compromis, tels que les comptes utilisateurs, les privilèges et l'accès aux ressources réseau. C'est ici que l'ATT&CK Phase de découverte est important pour un attaquant.
ATT&CK : Découverte
Quelle est la première chose à faire pour passer d'un système unique, qu'il s'agisse des terminaux des employés ou de la charge de travail, à un contrôleur de domaine ?
Comme dirait ATT&CK lors de la phase de découverte, « essayez de comprendre l'environnement ».
Les adversaires commencent par comprendre qui est l'utilisateur du système, les processus en cours d'exécution, l'appartenance au fichier/au répertoire/au groupe et les informations de session.
Des outils tels que NMAP pour l'analyse des ports sont une option qui permet de se faire une idée du terrain et de voir quels services écoutent sur les machines distantes qu'ils peuvent exploiter. En outre, Bloodhound peut être utilisé pour cartographier l'environnement Active Directory afin de déterminer le chemin le plus rapide pour accéder au contrôleur de domaine.
Ces outils ont été utilisés lors d'attaques, mais ils présentent un défi inhérent. Ils attirent trop l'attention sur eux-mêmes en tant qu'outils tiers générant du trafic. Ils sont bavards et assez manifestes, ce qui signifie qu'ils pourraient être détectés par les systèmes de sécurité.
Les attaquants sont mieux servis en se contentant de « vivre hors de la terre » lorsqu'ils ont accès à un endpoint ou à une charge de travail appartenant à un domaine. De cette façon, ils utilisent des outils natifs du terminal et ne génèrent aucun bruit sur le réseau.
Les attaquants peuvent commencer par utiliser les commandes CLI de base que beaucoup d'entre nous connaissent, car elles constituent un moyen simple et discret de comprendre où ils se trouvent et ce qu'ils peuvent faire ensuite.
Sur un ordinateur client rattaché à un domaine, des commandes telles que whoami permettra de découverte du propriétaire ou de l'utilisateur du système, et affichez une sortie similaire à celle présentée ci-dessous.
Cela permet à l'attaquant de créer un profil de compte du système compromis pour voir à quoi ce compte a accès. Un rapide coup d'œil aux groupes Active Directory auxquels appartient la machine permet à l'attaquant de détecter que l'utilisateur fait partie, par exemple, de l'équipe financière. Ils savent qu'ils auront probablement accès à des partages de fichiers financiers à exploiter ou peuvent choisir d'examiner immédiatement les fichiers sur la machine s'ils recherchent des données financières.
L'acteur malveillant peut également utiliser une commande simple mais efficace, telle que les utilisateurs du réseau et les commutateurs associés, pour découvrir le nom du contrôleur de domaine auquel est associée la machine compromise et la liste des comptes utilisateurs qui existent sur le contrôleur de domaine.
À partir de là, il existe un ensemble clair de détails importants qui peuvent faciliter leur chemin vers le contrôleur de domaine.
D'autres commandes simples que beaucoup connaissent bien sont ipconfig /all et netstat -fr pour orienter l'attaquant vers la passerelle et les informations réseau, sous-réseau, DNS et DHCP par défaut. Ils peuvent également voir ce qui est accessible en fonction de la table de routage. Cela donne à l'attaquant suffisamment d'informations pour établir une carte de base des connexions au niveau du réseau. Ils peuvent déterminer si leur machine compromise se trouve ou non sur le même sous-réseau que le contrôleur de domaine ou le serveur DNS. Pour cette raison, il est impératif de disposer d'un approche de microsegmentation pour lesquels la sécurité est selon la charge de travail plutôt que de dépendre du réseau, même dans une architecture réseau plate. Une sécurité qui suit la charge de travail comme un contrôleur de domaine, quel que soit le sous-réseau ou l'emplacement.
Ils peuvent également être en mesure de déchiffrer des sous-réseaux et des routes supplémentaires ainsi que leurs passerelles correspondantes et de corroborer ces informations de routage avec des détails DNS inversés tels que, par exemple, les noms des serveurs de partage réseau.
La plupart des organisations utilisent des partages réseau pour permettre aux employés d'une même équipe de partager et parfois d'archiver des informations. Les acteurs de la menace peuvent exploiter les détails du partage réseau Windows à partir d'utilitaires intégrés tels que utilisation du net pour localiser les serveurs de fichiers ou même les contrôleurs de domaine. Ils peuvent également utiliser ces informations en combinaison avec tout compte compromis ou escaladé pour accéder à des partages réseau Windows cachés tels que EN DOLLARS ou C$. Ils peuvent être utilisés pour faciliter la propagation de programmes malveillants vers d'autres machines via le réseau SMB local ou via une connexion VPN d'accès à distance valide connectée à un réseau SMB.
Grâce à ces informations, nous pouvons désormais voir ci-dessous à quels partages et serveurs nous avons accès dans Windows. Une fois que l'attaquant dispose d'un peu plus d'informations sur le système compromis sous son contrôle, il peut formuler le prochain plan d'action.
Dans cet exemple, l'utilisateur est l'administrateur local de son ordinateur portable, il possède un adaptateur VPN dans sa liste de cartes réseau et une application VPN correspondante, mais ne dispose d'aucun accès administrateur de domaine. L'objectif principal étant d'accéder au contrôleur de domaine, l'attaquant dispose de plusieurs options, comme essayer d'augmenter les privilèges qui peuvent être utilisés pour les mouvements latéraux. S'il n'existe aucun autre compte sur le système pour lequel les privilèges peuvent être augmentés, ils devront probablement essayer d'obtenir un tel compte. Ils pourraient tirer parti de l'authenticité du compte et de la machine compromis pour envoyer des attaques de phishing encore plus ciblées dans le domaine de messagerie de l'entreprise. Ils peuvent également provoquer un problème d'origine humaine sur leur système cible et forcer le support informatique à lancer une demande d'assistance, ce qui se traduira très probablement par une session d'assistance à distance avec un administrateur informatique qui « fonctionnera en tant qu'administrateur » sur la machine infectée. Les acteurs de la menace ont tendance à être déterminés et patients et font généralement tout ce qui est en leur pouvoir pour obtenir ce qu'ils recherchent.
Il est important de noter que jusqu'à présent, nous n'avons même pas utilisé de fonctionnalités natives plus puissantes telles que PowerShell ou WMI. Il s'agit de souligner délibérément la quantité d'informations qui peuvent encore être obtenues sur les systèmes d'exploitation existants comme sur les systèmes modernes. Par exemple, l'attaquant peut encore tester la possibilité d'un accès distant natif à l'aide d'un outil système tel que PowerShell pour voir à quelles machines il accède à distance pour faciliter les mouvements latéraux et le pivotement.
Les fonctionnalités de Powershell Remoting offrent une nouvelle voie de découverte et des capacités de mouvement latéral avec des commandes telles que Session Enter-PSS et diverses autres applets de commande qui peuvent exécuter Nom de l'ordinateur paramètre. Le premier utilise WinRM (HTTP 5985 et HTTPS 5986) et le second est le RPC le plus omniprésent.
Nous sommes conscients de l'importance des contrôleurs de domaine, nous savons qu'une intrusion s'est produite et nous comprenons maintenant mieux comment les attaquants peuvent utiliser de simples commandes CLI et les techniques vitales de subsistance (qui ne génèrent pas de bruit sur votre terminal ou votre terminal) outils de sécurité réseau verront) pour se faire une idée du terrain et découvrir où ils se situent dans un environnement.
Dans notre prochain article, nous examinerons les mouvement latéral que les attaquants présentent après leur découverte, pour accéder au contrôleur de domaine.