diff --git a/tp7-ldap.md b/tp7-ldap.md index c7091b3..d5b1e5d 100644 --- a/tp7-ldap.md +++ b/tp7-ldap.md @@ -38,9 +38,11 @@ L'organisation Target utilise une authentification centralisée basée sur un LD * Lors d'une authentification * Lors d'un `ls` (attention au cache !) * En ligne de commande sur le serveur, à travers les commandes de manipulation ldap (et non les commandes shell `adduser`/`passwd`), trouvez comment : - * Ajouter un utilisateur - * Modifier l'uid d'un utilisateur - * Modifier le mot de passe d'un utilisateur + * Ajouter un utilisateur (avec ldapadd) + * Modifier l'uid d'un utilisateur (avec ldapmodify) + * Modifier le mot de passe d'un utilisateur (avec ldapmodify) + +> La commande `ldapsearch -cxD cn=admin,dc=target,dc=milxc -w root -b dc=target,dc=milxc` permet par exemple d'afficher les données existantes. Quelques exemples d'utilisation peuvent être trouvés dans le fichier `/root/mi-lxc/groups/target/ldap/provision.sh`. Déploiement d'un LDAP @@ -48,12 +50,13 @@ Déploiement d'un LDAP Reprenez le TP3 (soit vous avez encore l'infra, soit vous la recréez à partir du sujet) pour avoir l'AS IUTVA. Dans cet AS : * Ajoutez une machine qui vous servira de serveur LDAP. Une fois démarrée, installez et configurez le serveur LDAP -* Configurez une autre machine de l'AS IUTVA pour être client de ce LDAP +* Configurez une autre machine de l'AS IUTVA pour être client de ce LDAP (pour l'authentification et pour les user/groupes affichés par `ls`) * Obtenez un joli certificat TLS : * Soit en utilisant la CA ACME déjà explorée * Soit en recréant une CA ad hoc interne * (le ldap étant un service interne, on peut concevoir de le manipuler avec un certificat à validité interne) * Quel matériel cryptographique devez-vous déployer sur le client LDAP ? + * Mettez à jour la configuration pour faire du LDAPS * Installez phpldapadmin sur votre machine LDAP pour aider à son administration * Programmez une sauvegarde régulière vers une autre machine (cron) @@ -63,6 +66,8 @@ Une injection LDAP Installez, sur votre serveur LDAP ou une machine à côté, un serveur Apache avec PHP et son module LDAP (php-ldap). -Faîtes une application qui demande un login/mot de passe et authentifie avec le LDAP, sans prise en compte particulière de la sécurité. Vous trouverez un peu de doc [ici](https://www.php.net/manual/fr/ldap.using.php) et [là](https://www.php.net/manual/fr/ldap.examples-basic.php). Vous pouvez vous inspirer des index.php/do_login.php du TP5 en les adaptant au cas du LDAP. +Faîtes une page PHP d'annuaire qui demande un login et affiche ses coordonnées (pour l'exemple, vous pouvez juste afficher son uid). Vous pouvez vous inspirer des index.php/do_login.php du TP5 en les adaptant au cas du LDAP. Vous trouverez un peu de doc [ici](https://www.php.net/manual/fr/ldap.using.php) et [là](https://www.php.net/manual/fr/ldap.examples-basic.php). + +Enfin, faîtes une injection LDAP sur cette page pour lister l'ensemble des utilisateurs et proposez une remédiation. Une explication des injections LDAP peut être trouvée [ici](https://www.synopsys.com/glossary/what-is-ldap-injection.html). -Enfin, faîtes une injection LDAP sur cette page et proposez une remédiation. Une explication des injections LDAP peut être trouvée [ici](https://www.synopsys.com/glossary/what-is-ldap-injection.html). +Essayez de construire une injection LDAP plus complexe (avec intégration de structure de commande (des '()') côté client).