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

  1. 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.

  2. 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.

  3. 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