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 gardien qui autorise l'accès des hôtes aux ressources du domaine. Il applique également les politiques de sécurité, stocke les informations relatives au 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. Bon nombre de ces techniques s'appuient sur un point d'accès ou un serveur pour atteindre les contrôleurs de domaine et lancer une attaque. Dans notre prochain article, nous examinerons les différentes façons dont les attaquants se déplacent latéralement et, enfin, nous étudierons les mesures d'atténuation permettant d'empêcher les déplacements latéraux.
Les attaquants trouvent un moyen d'entrer.
Une fois qu'ils sont entrés, il s'agit de se déplacer latéralement, souvent pour atteindre le contrôleur de domaine afin d'orchestrer une attaque. Une fois qu'un pirate y a accès, il est en fait un administrateur informatique, et il n'y a donc rien de plus facile que de "vivre aux crochets de la société". Examinons une attaque, en supposant qu'un attaquant finisse par trouver un moyen d'entrer.

Mais tout d'abord, examinons les contrôleurs de domaine. Vous le savez probablement déjà, mais un serveur contrôleur de domaine Microsoft, Active Directory, est responsable de l'authentification de l'accès (vérification des utilisateurs qui se connectent) à un domaine Windows et aux ressources réseau associées. Il contient un répertoire d'utilisateurs, de groupes et d'ordinateurs, ainsi que des services de réseau tels que les partages de fichiers, les partages de réseau et les imprimantes. Un serveur doté des rôles Active Directory Domain Services devient un contrôleur de domaine. Il est également équipé d'un serveur DNS qui gère la résolution des noms et d'autres services réseau internes. Bien qu'ils soient très largement pilotés par une interface graphique, un contrôleur de domaine et un serveur d'annuaire actif sont très complexes, en particulier dans un réseau d'entreprise typique où il est probable qu'il y en ait plusieurs pour la réplication et la tolérance aux pannes.

En raison de la forte imbrication des rôles dans un domaine Windows, le contrôleur de domaine héberge de nombreux services différents en fonction du nombre de rôles qu'il est censé assumer. Des rôles tels que le DNS pour la résolution interne des noms, le ticketing Kerberos pour l'authentification, le Server Message Block, les services de certificats et bien d'autres encore. Cela élargit la surface d'attaque et il existe en effet de nombreuses attaques contre des composants tels que :
- Utilisation de l'authentification unique
- Ticketing Kerberos,
- Service Principal Names (SPN),
- Objets de stratégie de groupe (GPO),
- Active Directory Trusts & Délégation
- RPC et SMB.
La plupart de ces attaques sont largement 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 les protocoles susceptibles d'être utilisés par un contrôleur de domaine typique et qui doivent être laissés ouverts. Il s'agit donc d'une surface d'attaque étendue que les acteurs malveillants peuvent utiliser. Le problème est que si nous décidons de fermer des ports pour réduire les surfaces d'attaque, Active Directory cesse de fonctionner correctement.

Chemin d'accès au contrôleur de domaine
Ce principe est conforme à la philosophie de la violation présumée, qui implique qu'un acteur de la menace peut déjà avoir un accès non autorisé à vos systèmes ou à votre réseau, même si c'est avec des privilèges de niveau inférieur. Il peut s'agir, par exemple, de la compromission d'un compte d'utilisateur par hameçonnage qui peut, à son tour, conduire à la compromission d'un courrier électronique professionnel (BEC). Cela signifie également que l'acteur de la menace tente plus que probablement de se frayer un chemin jusqu'à un compte à privilèges plus élevés et, par la suite, jusqu'au système de la couronne tel que le contrôleur de domaine.
Examinons un flux d'attaque hypothétique qui suit ce modèle :
L'attaque initiale consiste à envoyer un courriel d'hameçonnage à un employé. Cette attaque de phishing contient un lien vers un faux login Office 365 OneDrive auquel l'employé se laisse prendre. En conjonction avec l'exécution de javascript et, dans certains cas, la vulnérabilité, un tel lien exécute automatiquement un logiciel malveillant à mémoire seule qui tire parti de Windows Powershell. Cela conduit ensuite à une porte dérobée de commande et de contrôle inversée (C&C) de l'ordinateur portable Windows de l'utilisateur compromis vers l'attaquant. C'est le point de départ de l'hypothèse de la " violation" de cetarticle.
Jusqu'à ce stade, l'attaque sera en grande partie automatisée, de sorte que l'attaquant recevra probablement une notification C&C concernant un nouveau shell et, par conséquent, une nouvelle machine compromise. Ils ne seront pas non plus conscients de tous les détails du système compromis, tels que les comptes d'utilisateurs, les privilèges et l'accès aux ressources du réseau. C'est là que la phase de découverte de l' ATT&CK est importante 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 d'un terminal d'employé ou d'une charge de travail, à un contrôleur de domaine ?
Comme le dirait ATT&CK dans 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, l'appartenance aux fichiers/répertoires/groupes et les informations de session.
Des outils tels que NMAP pour le balayage des ports sont une option pour obtenir une vue d'ensemble du terrain et 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 comprendre le chemin le plus rapide vers le contrôleur de domaine.
Ces outils ont été utilisés dans le cadre d'attaques, mais ils posent un problème inhérent. Ils attirent trop l'attention sur eux en tant qu'outils tiers générant du trafic. Ils sont bavards et quelque peu ostentatoires, ce qui signifie qu'ils peuvent être détectés par les systèmes de sécurité.
" Les attaquants ont tout intérêt à se contenter de "lorsqu'ils ont accès à un point de terminaison ou à une charge de travail reliée à un domaine. Ils utilisent ainsi des outils qui sont natifs du point d'extrémité et ne génèrent pas de bruit sur le réseau.
Les attaquants peuvent commencer par utiliser des commandes CLI de base, que beaucoup d'entre nous connaissent, afin de comprendre facilement et discrètement où ils se trouvent et ce qu'ils peuvent faire ensuite.
Sur un ordinateur client relié à un domaine, des commandes telles que whoami permettent de découvrir le propriétaire ou l'utilisateur du système et affichent une sortie similaire à celle présentée ci-dessous.

Cela permet à l'attaquant d'établir 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 dont fait partie la machine permet à l'attaquant de discerner que l'utilisateur fait partie, par exemple, de l'équipe des finances. 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 si les données financières sont ce qu'ils recherchent.
L'acteur de la menace peut également utiliser une commande simple mais efficace telle que net users and associated switches pour découvrir le nom du contrôleur de domaine auquel sa machine compromise est reliée et la liste des comptes d'utilisateurs qui existent sur le contrôleur de domaine.

À partir de là, il existe une série de détails importants qui peuvent les aider à accéder au contrôleur de domaine.
D'autres commandes simples que beaucoup connaissent sont ipconfig /all et netstat -rn pour orienter l'attaquant vers la passerelle par défaut et les informations relatives au réseau, au sous-réseau, au DNS et au DHCP. Ils peuvent également voir ce qui est accessible grâce à la table de routage. L'attaquant dispose ainsi de 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 sur le même sous-réseau que le contrôleur de domaine ou le serveur DNS. C'est pourquoi il est impératif d'adopter une approche de micro-segmentation pour laquelle la sécurité dépend de la charge de travail plutôt que du réseau, même dans une architecture de réseau plat. Sécurité qui suit la charge de travail comme un contrôleur de domaine, indépendamment du sous-réseau ou de l'emplacement.

Ils peuvent également être en mesure de déchiffrer des sous-réseaux et des itinéraires supplémentaires, ainsi que les passerelles correspondantes, et de corroborer ces informations de routage avec des détails DNS inversés, par exemple des noms de serveurs de partage de réseau.

La plupart des organisations utilisent des partages de réseau pour que les employés d'une même équipe puissent partager et parfois archiver des informations. Les acteurs de la menace peuvent exploiter les détails des partages du réseau Windows à partir d'utilitaires intégrés tels que net use pour localiser les serveurs de fichiers ou même les contrôleurs de domaine. Ils peuvent également utiliser ces informations combinées avec des comptes compromis ou escaladés pour accéder à des partages de réseau Windows cachés tels que AMDIN$ ou C$. Ils peuvent être utilisés pour faciliter la diffusion de logiciels malveillants sur 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.
Avec ces informations, nous pouvons maintenant voir à quels partages et serveurs nous avons accès dans Windows, ci-dessous. Une fois que l'attaquant dispose d'un peu plus d'informations sur le système compromis qu'il contrôle, il peut formuler le plan d'action suivant.

Dans cet exemple, l'utilisateur est un administrateur local pour son ordinateur portable, il a un adaptateur VPN dans sa liste de cartes réseau et une application VPN correspondante, mais il n'a pas d'accès à l'administration du domaine. L'objectif principal étant d'accéder au contrôleur de domaine, l'attaquant dispose de plusieurs options, comme l'escalade des privilèges, qui peut être utilisée pour un déplacement latéral. S'il n'y a pas d'autres comptes présents sur le système pour lesquels les privilèges peuvent être escaladés, ils devront très 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 la messagerie électronique de l'organisation. Ils peuvent également provoquer un dysfonctionnement artificiel sur le système ciblé afin d'obtenir une assistance informatique, ce qui signifie très probablement une session d'aide à distance avec un administrateur informatique qui, selon toute vraisemblance, "s'exécutera en tant qu'administrateur" sur la machine infectée. Les acteurs de la menace ont tendance à être déterminés et patients et feront généralement tout ce qu'il faut pour obtenir ce qu'ils veulent.
Il est important de noter que jusqu'à présent, nous n'avons même pas utilisé des capacités natives plus puissantes telles que PowerShell ou WMI. Il s'agit de souligner délibérément la quantité d'informations que l'on peut encore obtenir sur les anciens systèmes d'exploitation comme sur les modernes. Par exemple, l'attaquant peut encore tester la possibilité d'un accès à distance natif à l'aide d'un outil système comme PowerShell pour voir à quelles machines il a accès à distance afin de faciliter les mouvements latéraux et le pivotement.

Les capacités de Powershell Remoting offrent une autre possibilité de découverte et de mouvement latéral avec des commandes telles que Enter-PSSession et d'autres cmdlets qui peuvent exécuter le paramètre ComputerName. Le premier utilise WinRM (HTTP 5985 et HTTPS 5986) et le second le RPC, plus omniprésent.
Nous comprenons l'importance des contrôleurs de domaine, nous savons qu'une intrusion s'est produite et nous comprenons mieux comment les attaquants peuvent utiliser de simples commandes CLI et les techniques les plus importantes (qui ne produiront pas de bruit que vos outils de sécurité des points finaux ou du réseau verront) pour obtenir une vue d'ensemble du terrain et découvrir où ils se trouvent dans un environnement.
Notre prochain article examinera le mouvement latéral que les attaquants effectuent après la découverte, pour atteindre le contrôleur de domaine.