0% ont trouvé ce document utile (0 vote)
12 vues24 pages

Attaque Et Défense: Active Directory

Le document présente un environnement Active Directory avec des contrôleurs de domaine et des unités d'organisation. Il décrit les méthodes d'énumération du domaine, en utilisant des outils comme PowerView et le module Active Directory PowerShell, pour obtenir des informations sur les utilisateurs, les groupes et les politiques de sécurité. Enfin, il souligne l'importance de l'examen des propriétés des utilisateurs pour détecter des comptes suspects ou inactifs.

Transféré par

tyuusenkaa9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues24 pages

Attaque Et Défense: Active Directory

Le document présente un environnement Active Directory avec des contrôleurs de domaine et des unités d'organisation. Il décrit les méthodes d'énumération du domaine, en utilisant des outils comme PowerView et le module Active Directory PowerShell, pour obtenir des informations sur les utilisateurs, les groupes et les politiques de sécurité. Enfin, il souligne l'importance de l'examen des propriétés des utilisateurs pour détecter des comptes suspects ou inactifs.

Transféré par

tyuusenkaa9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Attaque et défense

Active Directory
M1-SSI
Présentation de l’environnement

• VM1 : Controleur de domaine moneycorp


• VM2 : Controleur de domaine fils exemple : dollars
• Sur le domaine fils, créer :
• L’unité d’organisation C-Users
• 3 groupes de sécurité (groupe1, groupe2, groupe3)
• 3 comptes utilisateurs su domaines
• Student bad
• User domaine (G1, G2)
• User3 (G2, G3)
• Un compte ordinateur FakePC
Énumération du domaine

• Peut se faire soit via


• Des exécutables natifs
• Classes .net
• Hypothèse de base : vous avez accès à une machine membre du domaine
• Phases de travail :
• Énumérer le domaine actuel et les domaines de confiance, etc. pour cartographier diverses entités,
• Les relations entre ces entités, quels sont les privilèges des différents utilisateurs, objets et groupes
• Quelles sont les ACL et autres éléments intéressants dans le domaine.
Énumération du domaine

• Executer l’instruction ci-dessous sur le controleur de domaine fils et la machine client membre du
domaine
• Whoami /priv
• Quelles différences existe-t-il entre les deux comptes ?
• Le recours aux classes .NET permet l’énumération des informations suivantes :
• Nom de la forêt
• Domaine actuel
• Nombre de contrôleur de domaine
• Niveau fonctionnel du domaine
• Etc..
Énumération du domaine

• Il est possible d’utiliser PowerView qui est un script partiel open source très utile pour énumérer un domaine.
• [Link]
• [Link]
• [Link]/samratashok/ADModule
• nous pouvons également utiliser le module Active Directory PowerShell qui est un module signé Microsoft.
C'est le module de Microsoft. Il s'agit du même module que vous obtenez lorsque vous installez RSAT (Remote
System Administration Tools) et le rôle Active Directory sur n'importe quel serveur.
• Il est possible d'utiliser le module sans avoir RSAt ou sans avoir les privilèges administratifs.
• N'hésitez donc pas à copier votre propre DLL et votre module à partir de n'importe quelle machine sur laquelle
le rôle Active Directory est installé et le module est disponible.
• En fait, PowerView présente des avantages et des inconvénients, car il est écrit spécifiquement pour les Red
Teamers ou pour les pentesteurs. Il fournit certaines fonctions qui sont très utiles directement.
• Le module ActiveDirectory excelle pour les énumérations basiques et intrusives dans certains domaines.
• De plus, comme il s'agit du côté Microsoft, les défis de sa détection sont vraiment faibles par rapport au droit
PowerView.
Énumération du domaine

• Par convention, les commandes de la première ligne sont ceux de Powerview et ceux de la seconde ligne sont
ceux du module ActiveDirectory

• Obtenir le domaine actuel


• Get-NetDomain (PowerView)
• Get-ADDomain (ActiveDirectory Module)
• Obtenir des objets à partir d’un autre domaine
• Get-NetDomain –Domain [Link]
• Get-ADDomain –Identity [Link]
• Obtenir le SID du domaine courant
• Get-DomainSID
• (Get-ADDomain).DomainSID
Énumération du domaine

• Obtenir le controleur du domaine actuel


• Get-NetDomainController
• Get-ADDomainController
• Obtenir le controleur du domaine d’un autre domaine
• Get-NetDomainController – Domain [Link]
• Get-ADDomainController –DomaineName [Link] –Discover
• Obtenir la stratégie du domaine actuel
• Get-DomainPolicy
• (Get-DomainPolicy). ’’system access’’
• Obtenir la stratégie d’un autre domaine
• (Get-DomainPolicy –domain [Link]).’’system access’’
Énumération du domaine -Powerview
• Il est nécessaire d’exclure le repertoire de travail ainsi que celui contenant vos outils de
l’analyse antivirus.
• Parfois, lorsque vous chargez le script, celui-ci peut être détecté.
• Dans ce cas, c'est l'interface d'analyse anti-malware ou MZ, qui bloque le script une fois
qu'il est correctement chargé.
• Donc, dans ce cas, nous devons contourner MZ. Comment ?
• Ouvrez votre fenêtre powerShell en mode admin
• Ouvrez le dossier contenant vos outils (exp c: \AD\tools)
• Nous devons lever les restrictions de sécurité
• Set-executionPolicy remotesigned
• Set-executionpolicy unrestricted
• ..\powerview.PS1
• Get-NetDomain
Énumération du domaine –Active
directory
• Ouvrez une seconde fenêtre poweshell
• À partir de votre Windows SRV récupérer la DLL
C:\Windows\[Link]\assembly\GAC_64\[Link]
• Copier là dans votre dossier de travail
• Faites la même chose avec
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\ActiveDirectory\
• Executer les commandes suivantes
• Import-Module .\ [Link]
• Import-module .\ActiveDirectory\activeDirectory.psd1
• Exécuter la commande suivante : Get-ADDomain
• Elle fournit les informations relatives au domaine en cours sans avoir de privilèges administratifs ni
de droits supplémentaires
Énumération du domaine

Fenêtre PowerView Fenêtre AD


Get-NetDomain –Domain Get-ADDomain –Identity
[Link] [Link]

• Comparer les deux résultats


Énumération du domaine

Fenêtre PowerView Fenêtre AD


Get-domainSID Déjà obtenue dans la commande
précédente

Extraire le SID
• Comparer les deux résultats
Énumération du domaine –Active
directory
• Dans la console utilisateur et ordinateurs active Directory du controleur de domaine fils
créer un nouveau compte utilisateur utilisant le username « student1 »
• On peut extraire tout type d’information par exemple la stratégie du domaine
• Get-DomainPolicy
• L’énumération de la stratégie Kerberos prendra un sens si on souhaite effectuer l’attaque
golden Ticket car il faut conserver l’âge maximum du ticket ou l’âge de renouvellement
conformes à ceux du domaine cible. Il existe des outils de détection. Par exemple,
Advanced Threat Analytics de Microsoft qui utilise également des mécanismes de
détection. Si l'âge maximum de votre ticket ou l'âge de renouvellement est supérieur à la
politique de domaine, les chances de détection sont alors accrues.
Énumération du domaine

Fenêtre PowerView Fenêtre AD


Get-NetDomainController Get-ADDomainController

• Comparer les deux résultats


Énumération du domaine

Fenêtre PowerView Fenêtre AD


Get-NetDomainController – Get-ADDomainController –
Domain [Link] DomaineName [Link]
–Discover
Extraire le SID

• Comparer les deux résultats


• À partir de votre contrôleur de domaine changer le mot de passe du compte utilisateur
student1 et de l’autre compte utilisateur
Énumération du domaine

Fenêtre PowerView Fenêtre AD


Get-Netuser Il existe 3 options importantes que
vous pouvez utiliser avec le module
AD.
Le filtre
La propriété.
Le paramètre d'identité.
On s’interesse maintenant aux utilisateurs

• Comparer les deux résultats


Énumération du domaine

• Get-NetUser
• Get-NetUSer Student
• Get-NetUSer –Properties *
• Get-NetUSer | select cn // on peut choisir n’importe quelle propriété
• Get-NetUSer –identity student –Properties *
Énumération du domaine

• GetADuser –filter *
• GetADuser –filter * - properties *
• GetADuser –filter * - properties * | select cn
• GetADuser –identity student
Énumération du domaine

• Afficher toutes les propriétés de student1 que vous avez déjà crée
• Un utilisateur peut avoir plusieurs propriétés interessantes que l’on peut énumérer
• Par exemple, vous aimerez consulter toutes les propriétés d’un utilisateur dans le
domaine actuel.
• Get-USerProperty
• Qu’affiche cette commande ?
• Maintenant, quel est l’avantage d’examiner les propriétés des utilisateurs ?
• Il y a une raison pour laquelle j'ai sélectionné ou choisi le dernier mot de passe défini.
Énumération du domaine

• Veuillez identifier la commande qui le fait dans le module AD et dans le module


PowerView
• Veuillez expliquer en quoi cette démarche est utile des points de vue de l’attaqua,t et du
défenseur
• À quoi peut servir cette commande
• Get-UserProperty –properties badpwdcount
À retenir

• L'examen des propriétés de l'utilisateur est tres util surtout pour le défenseur.
• Un autre cas d'utilisation consiste à examiner les mots de passe en claire et de manière
plus spécifique le dernier mot de passe défini par l'utilisateur.
• On peut citer deux cas d'usage standard :
• Cas 1 : En votre qualité d'attaquant vous chercher une machine sur laquelle un administrateur
de domaine est connecté. ceci vous permet d'identifier les droits obtenus par cette machine.
Vous avez la possibilité d'essayer d'exploiter cette machine dans les phases ultérieures
À retenir

• Cas 2 : Une organisation veut cibler la phase d'énumération de votre attaque. Elle crée des
utilisateurs qui semblent très attrayants, très utiles. Mais dès que vous interagissez ou
énumérez ces utilisateurs, ils recevront une alerte et vous pourriez être détecté. C'est pour
cela que des propriétés telles que le dernier mot de passe défini ou bien le
badpassword peuvent être utilisées pour différencier un utilisateur réel d'un
utilisateur fake. Par exemple un utilisateur pour lequel le mot de passe a été défini
pour la dernière fois il y a quelques années et n'a pas été modifié depuis Peut-être
qu'un fake user.
À retenir

• Dans votre environnement de test, vous n'avez pas un nombre élevé de badpassword.
Cependant dans un environnement de domaine réel ou un réseau d'entreprise, vous
trouverez un nombre élevé de badpassword car un utilisateur réel a souvent de gros
problèmes avec son mdp.
• par conséquent, il serait utile d'observer le nombre de connexions de l'utilisateur.
• Trouver la propriété qui définit cette variable.
• Dans un environnement de domaine réel ou un réseau d'entreprise réel, tout utilisateur
ayant un nombre de connexions nul ou petit doit être considéré comme un fake user ou
un leurre
À retenir

• Par contre il faut se mettre à l'esprit qu'il existe une catégorie d'utilisateurs qui peut
représenter un intérêt particulier :
• les utilisateurs qui semblent être des fake user mais qui en réalité sont des utilisateurs
très peu utilisés.
• d'où la question : comment identifier de manière fiable un fake user ?
• Pour cela, il serait utile de répertorier toutes les propriétés du domaine afin d'éviter la
détection basée sur la tromperie (fake user).
À retenir

• On peut citer la propriété "description" : il faut savoir que dans un réseau réel un grand
nombre d'utilisateurs écrivent des mots de passe en clair dans le champ de description
d'un partage utilisateur, c'est souvent le cas pour les comptes de service, c'est-à-dire les
comptes de domaine utilisés par les services.
• Ceci est généralement dû à la politique de sécurité du domaine qui exige le changement
des mots de passe de manière périodique. Donc, les gens ont tendance à écrire des mots
de passe dans le champ de description de l'utilisateur afin qu'en cas de changement
d'équipe qui partagent le service de maintenance des mots de passe, le fonctionnement
ne sera pas interrompu.

Vous aimerez peut-être aussi