Enumération
1. Importance de l'Énumération AD
L'énumération Active Directory (AD) est essentielle pour comprendre la structure du domaine et déterminer les chemins d'attaque pour l'escalade de privilèges ou le mouvement latéral. Bien que les techniques abordées dans ce réseau soient importantes, il existe d'autres méthodes à considérer.
2. Techniques d'Énumération AD
A. LDAP Enumeration
Description : Utilisation des informations d'identification valides pour se connecter à l'interface LDAP d'un contrôleur de domaine.
Objectif : Exécuter des requêtes LDAP pour énumérer des informations sur les objets AD dans le domaine.
B. PowerView
Description : Script de reconnaissance faisant partie du projet PowerSploit. Bien que le projet ne soit plus maintenu, PowerView est utile pour l'énumération semi-manuelle des objets AD.
Usage : Permet de collecter des informations détaillées sur les objets et les permissions AD.
C. Windows Management Instrumentation (WMI)
Description : Utilisation de WMI pour obtenir des informations depuis des hôtes Windows. Le fournisseur "root\directory\ldap" permet d'interagir avec AD.
Usage : Peut être utilisé via PowerShell pour effectuer une énumération AD.
3. Focus de l'Énumération
Actuel : Le focus est mis sur l'énumération de la structure complète du domaine AD.
Futur : Identification des faiblesses telles que les partages non sécurisés ou les ruptures dans le modèle de hiérarchisation seront abordées dans les prochaines séances.
4. Atténuation des Risques d'Énumération
A. Détection de Comportements Suspects
Logs de Connexion :
Les techniques d'énumération comme SharpHound génèrent un grand nombre d'événements LogOn. Écrire des règles de détection pour surveiller ce type de comportement peut aider à identifier les activités suspectes associées à un seul compte utilisateur.
Règles de Détection de Signature :
Créez des règles pour détecter les outils spécifiques utilisés pour l'énumération AD, tels que les binaires SharpHound et les outils AD-RSAT.
Surveillance des Outils :
Surveillez l'utilisation de l'invite de commandes et de PowerShell pour détecter les tentatives d'énumération provenant de sources non autorisées.
B. Proactivité de l'Équipe de Défense
Usage Régulier : L'équipe bleue peut utiliser ces techniques d'énumération régulièrement pour identifier les lacunes et les mauvaises configurations dans la structure du domaine AD.
Correction des Faiblesses : Résoudre ces faiblesses peut empêcher les attaquants de trouver des configurations exploitables même s'ils parviennent à énumérer l'AD.
Afficher des informations sur le domaine
systeminfo | findstr Domain
Si nous obtenons WORKGROUP dans la section domaine, cela signifie que cette machine fait partie d'un groupe de travail local
Informations sur tous les utilisateurs et groupe
Users
Get-ADUser -Filter * # utilis
ldapsearch -x -H ldap://<AD_SERVER_IP> -b "CN=Users,DC=thmredteam,DC=com" -s sub "(objectClass=user)"
Groupes
Get-ADGroup -Filter *
spécifique
Get-ADUser -Filter * -SearchBase "OU=THM,DC=domain,DC=com"
Admin
Get-ADUser -Filter 'memberOf -eq "CN=Domain Admins,CN=Users,DC=domain,DC=com"' -Properties *
Dans cette commande, le filtre LDAP :
'memberOf -eq "CN=Domain Admins,CN=Users,DC=domain,DC=com"' est utilisé pour rechercher les utilisateurs qui sont membres du groupe "Administrateurs du domaine". La propriété "memberOf" contient les noms distinctifs (DN) des groupes dont l'utilisateur est membre. L'option "-Properties *" est utilisée pour renvoyer toutes les propriétés de l'utilisateur.
Commandes de Base pour l'Énumération AD
1. Liste des Utilisateurs
Commande :
plaintextCopier le codenet user /domain
Description : Liste tous les utilisateurs du domaine AD.
Commande :
plaintextCopier le codenet user <nom_utilisateur> /domain
Description : Affiche des informations détaillées sur un utilisateur spécifique.
2. Liste des Groupes
Commande :
plaintextCopier le codenet group /domain
Description : Liste tous les groupes du domaine AD.
Commande :
plaintextCopier le codenet group "<nom_du_groupe>" /domain
Description : Affiche les membres d'un groupe spécifique.
3. Politique de Mot de Passe
Commande :
plaintextCopier le codenet accounts /domain
Description : Affiche la politique de mot de passe du domaine AD.
Fiche Mémo : Énumération Active Directory avec PowerShell
Introduction
PowerShell est un outil plus avancé que Command Prompt, offrant une large gamme de cmdlets pour interagir avec Active Directory (AD). Les cmdlets sont des classes .NET conçues pour effectuer des fonctions spécifiques. Cette fiche mémo détaille les principales commandes PowerShell utilisées pour l'énumération d'AD.
Cmdlets de Base pour l'Énumération AD
1. Utilisateurs
Lister un utilisateur spécifique :
powershellCopier le codeGet-ADUser -Identity <nom_utilisateur> -Server <domaine> -Properties *
Exemple :
powershellCopier le codeGet-ADUser -Identity gordon.stevens -Server za.tryhackme.com -Properties *
Filtrer les utilisateurs :
powershellCopier le codeGet-ADUser -Filter '<critère>' -Server <domaine> | Format-Table <propriétés>
Exemple :
powershellCopier le codeGet-ADUser -Filter 'Name -like "*stevens"' -Server za.tryhackme.com | Format-Table Name,SamAccountName -A
2. Groupes
Lister un groupe spécifique :
powershellCopier le codeGet-ADGroup -Identity <nom_groupe> -Server <domaine>
Exemple :
powershellCopier le codeGet-ADGroup -Identity Administrators -Server za.tryhackme.com
Lister les membres d'un groupe :
powershellCopier le codeGet-ADGroupMember -Identity <nom_groupe> -Server <domaine>
Exemple :
powershellCopier le codeGet-ADGroupMember -Identity Administrators -Server za.tryhackme.com
3. Objets AD
Rechercher des objets modifiés après une date spécifique :
powershellCopier le code$ChangeDate = New-Object DateTime(<année>, <mois>, <jour>, <heure>, <minute>, <seconde>) Get-ADObject -Filter 'whenChanged -gt $ChangeDate' -IncludeDeletedObjects -Server <domaine>
Exemple :
powershellCopier le code$ChangeDate = New-Object DateTime(2022, 02, 28, 12, 00, 00) Get-ADObject -Filter 'whenChanged -gt $ChangeDate' -IncludeDeletedObjects -Server za.tryhackme.com
4. Domaines
Obtenir des informations sur le domaine :
powershellCopier le codeGet-ADDomain -Server <domaine>
Exemple :
powershellCopier le codeGet-ADDomain -Server za.tryhackme.com
5. Modification d'Objets AD (Exploitation)
Changer le mot de passe d'un utilisateur :
powershellCopier le codeSet-ADAccountPassword -Identity <nom_utilisateur> -Server <domaine> -OldPassword (ConvertTo-SecureString -AsPlainText "<ancien_mot_de_passe>" -Force) -NewPassword (ConvertTo-SecureString -AsPlainText "<nouveau_mot_de_passe>" -Force)
Exemple :
powershellCopier le codeSet-ADAccountPassword -Identity gordon.stevens -Server za.tryhackme.com -OldPassword (ConvertTo-SecureString -AsPlainText "old" -Force) -NewPassword (ConvertTo-SecureString -AsPlainText "new" -Force)
Avantages et Inconvénients
Avantages
Information Plus Complète : PowerShell peut obtenir beaucoup plus d'informations que les commandes net.
Flexibilité et Contrôle : Les cmdlets offrent des filtres et options détaillés pour personnaliser les recherches.
Modification Directe : Possibilité de créer ou modifier des objets AD directement.
Utilisation de Cmdlets Personnalisées : Création de cmdlets spécifiques pour des besoins particuliers.
Inconvénients
Surveillance accrue : PowerShell est souvent plus surveillé par les équipes de sécurité que Command Prompt.
Installation Nécessaire : Il faut installer les outils AD-RSAT ou utiliser des scripts potentiellement détectables.
Last updated