Tryhackme CTF Write-Up : GamingServer

Dans ce write-up, nous verrons comment compléter GamingServer de TryHackMe, Un challenge CTF de niveau débutant qui requiert plusieurs techniques : nmap, gobuster, ssh2john, lxd

Enumération

Commençons par un scan Nmap pour voir les ports ouverts puis un second sur ceux ouverts pour voir les services qui tournent dessus ainsi que le script par défaut de nmap sur ces ports

Dans ce scan nous trouvons que deux ports sont ouverts :

  • 22 : Un service ssh OpenSSH 7.6p1

  • 80 : Un serveur Apache httpd 2.4.29

Commençons l'énumération de dossier avec gobuster

svp jugez pas la wordlist j'étais fatigué.......

Nous trouvons très vite un dossier /secret qui contient un fichier secretKey, qui est une clé RSA

Nous voyons qu'elle est encryptée, il faudra utiliser ssh2john pour trouver la passphrase

Nous trouvons aussi un utilisateur john, dans le source code du site

Transformons la clé id_rsa en un fichier lisible par john avec ssh2john puis décryptons la passphrase avec john

Nous pouvons maintenant nous connecter via ssh et récupérer le flag user.txt

Elevation de privilèges :

Configurons un serveur python sur notre machine attaquante pour télécharger linpeas depuis la machine victime mettons les permissions nécéssaires et lançons linpeas

Nous voyons que john appartient au groupe lxd, si on se renseigne à son sujet nous trouvons que LXD est un système de virtualisation basé sur des conteneurs pour Linux, offrant une gestion efficace des ressources et des environnements isolés.

Je recherche sur internet comment exploiter le système LXD et je trouve cette article

Nous clonons d'abord sur notre machine attaquante https://github.com/saghul/lxd-alpine-builder

puis dans le dossier créer nous faisons sudo ./build-alpine

Nous obtenons un fichier alpine.tar que nous transferons dans la machine victime

Puis exécutons ces commandes

lors de l'executions du container nous executons aussi /bin/sh avec les permissions root,

Nous obtenons alors les permissions root,

nous savons que nous sommes dans un container, qui a été monté dans /mtn/root il faut donc se déplacer dans /mtn/root/root pour trouver le root.txt

J'espère que vous aurez appris quelque chose et apprécié mon write-up

N'hésitez pas à faire la room sur tryhackme : https://tryhackme.com/room/gamingserver

mon profil tryhackme : https://tryhackme.com/p/Frozzinours

Last updated