Fusion Corp – WriteUp – TryHackMe – Fr

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. 

Enumération

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

Enumération Web

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

 

Enumération LDAP

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

Initial Foothold

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