Activité Requêtes sur un annuaire active directory avec LDAPSearch

Consigne

  1. Avant de commencer l’activité :
    • Lire la mise en situation, prendre connaissance des objectifs, du résultat attendu, et des ressources à disposition.
    • Lire une première fois en entier la section Mise en route.
  2. Effectuez le travail décrit dans la section Mise en route et effectuez les tâches demandées dans la section Tâches.

Mise en situation

Jusqu’à présent, nous avons utilisé les outils LDAPSearch pour envoyer des requêtes vers un annuaire OpenLDAP. Il est également possible d’utiliser cette commande pour interroger un annuaire Windows Active Directory.

Note : Nous avons, dans ce module, décidé d’utiliser des outils Linux, mais il existe d’autres outils pour faire des requêtes Active Directory. Dsquery est l’outil Windows, mais des outils comme BloodHound et PowerView sont également très puissants et intuitifs.

Objectifs

À la fin de ce travail, en ayant accès au web, vous devez :

  1. Citer 2 outils permettant d’interroger un annuaire Active Directory.
  2. Créer des requêtes LDAPSearch pour interroger un annuaire Active Directory.
  3. Créer des filtres pour cibler les informations recherchées dans un annuaire Active Directory.

Résultat attendu

  1. Une description de la commande LDAPSearch et des filtres
  2. Les réponses aux questions

Ressources

Documents :

Matériel:

  • Le serveur Active Directory des laboratoires ICT :
    • le nom complet est sepdc01.i-fr.local
    • le nom d’utilisateur est M159
    • le mot de passe est Epai*123

Matériel:

  • Un serveur Linux avec Ubuntu server 22.04 :
    • le nom complet est svr-m159-$NUM-ldap-02.lab.epai-ict.ch ($NUM est le numéro du réseau sur deux ou trois chiffres, en initialisant une variable d’environnement NUM, les commandes peuvent être exécutées telles quelles).
    • le nom d’utilisateur·rice est admin
    • les informations d’identification se trouvent sur la fiche que vous avez reçue par courriel.

Mise en route

Outil LDAPSearch

Nous avons déjà vu la syntaxe de la commande LDAPSearch dans l’activité « Déploiement d’un serveur OpenLDAP » partie 6.3 « Utilitaires LDAP ».

Création de requêtes avec des filtres

Les filtres sont essentiels pour réussir les requêtes. Ils peuvent être utilisés pour affiner considérablement la portée de ce que vous recherchez et vous éviter de perdre du temps.

Un filtre composé ressemblera à ceci :

1
(&(attribut1=valeur1)(attribut2=valeur2))
Fig. 1 – Exemple de filtre composé

Ici, le & indique qu’il s’agit d’un filtre composé et que tous les résultats doivent avoir les deux valeurs pour l’attribut correspondant. Avec le ! symbole, vous pouvez exclure des éléments de vos filtres, mais assurez-vous de le mettre entre parenthèses. Vous pouvez également exclure certains résultats comme celui-ci :

1
(&(attribut1=valeur1)(!(attribut2=valeur2)))
Fig. 2 – Exemple de filtre composé

Ce filtre produira une liste de résultats où les objets ont la valeur 1 pour l’attribut 1 mais n’ont pas la valeur 2 pour l’attribut 2.

Dans un filtre, la valeur d’un attribut peut contenir le métacaractère *(astérisque) qui permet de remplacer le début et/ou la fin du mot recherché. Il est très utile lorsque vous débutez et cherchez à vous orienter dans l’environnement. Une bonne approche consiste à commencer de manière très large et à affiner la requête en fonction de ce que l’on trouve. Par exemple, le filtre suivant permet de lister tous les ordinateurs dont le nom contient les caractères « win » :

1
(&(objectclass=computer)(name=*win*))
Fig. 3 – Exemple de filtre composé avec un des métacaractères

Lancez la commande suivante pour rechercher tous les ordinateurs de l’AD dont le nom contient « win » et afficher le nom de chacun d’eux :

1
ldapsearch -LLL -x -H ldap://172.16.101.121 -D 'i-fr\M159' -w 'Epai*123' -b 'DC=i-fr,DC=local' '(&(objectclass=computer)(name=*win*))' name
Fig. 4 – Utlisation d'un filtre composé avec des métacaractères

Le résultat de la commande devrait ressembler au contenu de l’image ci-dessous.

Fig. 5 – Résultat de la recherche
Fig. 5 – Résultat de la recherche

Tâche

Recherche d’utilisateurs

Trouver des utilisateurs dans AD peut être délicat, surtout lorsque le domaine n’utilise pas de noms pour les noms d’utilisateur. Une nuance importante à garder à l’esprit lorsque vous recherchez des utilisateurs est que les objets et ordinateurs sont également considérés comme des utilisateurs. En fonction de votre requête, vous devrez peut-être exclure les ordinateurs de vos résultats.

Questions

  1. Créer une requête LDAPSearch qui renvoie tous les objets qui sont des utilisateurs, pas des ordinateurs et dont le nom contient un « W ».

  2. Créer une requête LDAPSearch qui renvoie tous les objets qui sont des ordinateurs et dont le nom contient un « DESKTOP ».

Recherche de groupes

Les groupes peuvent être difficiles à trouver et à suivre manuellement. Dans un environnement AD bien structuré, il y aura des groupes avec des autorisations granulaires et les utilisateurs seront placés dans leurs groupes en fonction des besoins professionnels. Il est également courant de trouver des groupes imbriqués ajoutant un autre niveau de complexité. Trouver des groupes avec des autorisations spécifiques peut être difficile si vous ne connaissez pas la convention de dénomination et la nomenclature.

Questions

  1. Créer une requête LDAPSearch qui renvoie tous les objets qui sont des groupes.

  2. Dans la nomenclature utilisée pour les groupes d’apprentis, le nom du groupe contient les de début et de fin de l’apprentissage séparé par un underscore (par exemple, 2023_2024). Créer une requête LDAPSearch qui renvoie tous les groupes d’apprentis.

  3. Créer une requête LDAPSearch permettant de lister les membres de votre groupe.

Recherche d’ordinateurs

La recherche d’ordinateur peut être réalisée avec les objets « computer ».

Questions

  1. Dans les laboratoires ICT, nous avons indiqué le numéro de la salle dans le nom des ordinateurs. Créer une requête LDAPSearch qui renvoie tous les ordinateurs de la salle 119.

  2. Compléter la commande ci-dessus afin d’obtenir le système d’exploitation de ces ordinateurs.

Recherche de mots de passe

L’attribut pwdLastSet peut vous aider lorsque vous recherchez des comptes à cibler. Les comptes de service ont parfois des mots de passe plus anciens et plus simples, car ils sont nécessaires à des fonctions spécifiques et leur modification peut être difficile. Cet attribut peut également être utilisé lors d’une vérification rapide pour contrôler si la politique de mot de passe de l’organisation est correctement mise en œuvre.

L’attribut pwdLastSet est donné en notation epoch qui représente la date initiale à partir de laquelle est mesuré le temps par les systèmes d’exploitation. Cette valeur est stockée dans le temps, elle est donc un peu plus difficile à lire. Les convertisseurs epoch en ligne peuvent vous aider https://www.epochconverter.com/ldap. Attention la notation epoch change en fonction des systèmes d’exploitation, il est important d’utiliser un convertisseur epoch pour Microsoft LDAP.

Questions

  1. Créer une requête LDAPSearch qui renvoie tous les utilisateurs avec l’attribut pwdLastSet.

  2. Créer une requête LDAPSearch qui renvoie tous les utilisateurs dont le mot de passe n’a pas été changé depuis plus d’un an.

  3. Adapter la requête LDAPSearch pour obtenir que les utilisateurs sans les ordinateurs.

Recherche de membres

La recherche par l’attribut memberof est utilisée lorsque vous disposez déjà d’informations avec lesquelles travailler. Il est très utile pour trouver des utilisateurs à cibler en fonction de leur appartenance à un groupe. Si vous connaissez déjà le nom des groupes, vous pouvez bien entendu lister les membres des groupes.

Questions

  1. Créer une requête LDAPSearch qui renvoie tous les utilisateurs faisant partie du groupe « ICT Lab Admins ».

  2. Créer une requête LDAPSearch qui renvoie les groupes dont votre utilisateur fait partie.