What’s up guy ? j’espère que vous avez la forme !
De retour pour un CTF Tryhackme, un petit challenge pas très compliqué. Le gagnant de ce jour est Agent Sudo 😉
Pas de panique, je vais faire en sorte que tous les débutants puissent suivre sans aucune difficulté.
Here we go !!
#Task 1 : Author Note
Bienvenue dans une autre salle de CTF exclusive à THM. Votre tâche est simple, capturez les drapeaux comme dans d’autres salles de CTF. Amusez-vous !
#Task 2 : Enumerate
Toujours commencer par la phase d’énumération de la machine cible pour collecter un maximum d’informations, donc je lance un scan : nmap -sV 10.10.26.225
Réponse : il y a 3 ports ouverts sur le serveur.
Je dois trouver ce qui va me permettre d’accéder à une page secrète, pour cela je visite l’interface web :
NB : Il y a énormément d’informations que vous pouvez trouver en visitant la page web !!
Réponse : user-agent
À vrai dire, il n’y a rien de très compliqué pour l’instant mais j’ai l’impression que les choses vont se corser 😊 …
Maintenant, il faut que je trouve le nom de l’agent. Oui mais lequel ? hum toujours sur ma page internet je regarde le code source mais rien d’intéressant, je décide donc d’inspecter la page.
Le point important est de scruter les différentes requêtes dans un premier temps, et je fais bien car j’ai trouvé GET.
Petit rappel : Il existe la possibilité dans certains cas de modifier la requête GET depuis le navigateur et de le renvoyer avec les valeurs souhaitées.
Je modifie la requête en le remplaçant par l’agent R pour voir le résultat :
J’obtiens le même résultat, pas très étonnant puisque le message actuel est écrit par ce même agent. Pourquoi pas essayer plusieurs lettres A, B, C, D…
Après quelques essais, je teste C :
Et le résultat que j’obtiens me soulage :
Super ! une page secrète… je n’ai trouvé aucun résultat concluant en utilisant un outil comme gobuster ou dirb.
Bon, je vais jeter un coup d’œil pour trouver le nom de l’agent :
Réponse : chris
#Task 3 : Hash cracking and brute-force
L’énumération étant terminée je dois me frayer un chemin pour accéder à la machine.
Trouver d’abord le mot de passe de connexion FTP, assez facile dans l’en-tête j’ai un indice : brute-force.
Donc, j’utilise hydra mais vous avez la possibilité d’utiliser d’autres outils comme medusa par exemple.
Hydra -l chris -P /usr/share/wordlists/rockyou.txt ftp://10.10.26.225
Et voilà le password de chris !
Réponse : crystal
En utilisant les identifiants trouvés, je me connecte sur le server ftp pour voir ce qu’il contient :
Intéressant ! il y a 2 fichiers image et un fichier texte, je télécharge l’ensemble en utilisant la commande get
Je vérifie le contenu du fichier texte, on ne sait jamais :
Ah, le mot de passe est caché dans une des images !
Je continue, on me demande de trouver le pass d’un fichier .zip. Pas très claire cette affaire…, je pensais que je devais trouver le mot de passe d’authentification ? Ce n’est pas grave je vais chercher ce que ces images peuvent contenir :
Utilisation de l’outil binwalk, c’est un extracteur de contenu comme du code, surtout des fichiers incorporés et c’est ce dont j’ai besoin !
Binwalk cutie.png -e
Un dossier _cutie.png.extracted a été créé, je me déplace vers ce dernier. Je vois un fichier zip 8702.zip, je vais devoir trouver le mot de passe et pour cela j’utilise zip2john :
zip2john 8702.zip > zip.hash création hash compatible pour JohnTheRipper
Puis je brute force avec la commande :
john 8702.zip zip.hash
Bingo ! j’ai le password du fichier .zip
Réponse : alien
Maintenant, je peux le dézipper :
7z e 8702.zip
Un petit message avec une chaine base64, je vais décoder pour comprendre ce que c’est : echo -n « QXJlyTUx » | base64 -d
Sérieux ? c’est la réponse à la question suivante 😂 !!
Réponse : Area51
Je vais utiliser ce mot de passe pour extraire toutes les informations utiles contenues dans l’image cute-alien.jpg, je vais passer par steghide :
steghide extract -sf cute-alien.jpg
C’est génial, un fichier message.txt est extrait et il contient le nom de l’autre agent ainsi que son mot de passe de connexion !!
Donc :
Réponse : james
Réponse : hackerrules!
#Task 4 : Capture the user flag
La partie de collecte d’informations est terminée, je vais passer maintenant à l’exploitation. Avec tout ce j’ai pu obtenir je commence par me connecter au server SSH car je dois obtenir le flag user :
ssh james@10.10.26.225 avec password = hackerrules!
Voici le flag : b03d975e8c92a7c04146cfa7a5a313c7
Comment s’appelle l’incident de la photo ?
Après une petite vérification :
Réponse : Roswell alien autopsy
#Task 5 : Privilege escalation
La partie cruciale de mon challenge ! l’obtention des privilèges du super-utilisateur root, mais il faut trouver la vulnérabilité et le CVE adéquat :
Comme déjà évoqué dans les CTFs précédents j’utilise toujours cette commande avant d’aller plus loin dans mes recherches : sudo -l
Tiens, une faille sur commande bash peut-être ?
Vérification sur le net :
Nickel ! j’ai mon CVE 😉.
Réponse : CVE-2019-14287
Maintenant reste à comprendre comment ça fonctionne et de quelle manière exploiter : je visite la page explicative
Si j’ai bien compris, je dois utiliser la commande :
sudo -u#-1 bash
Dans ce contexte, sudo ne vérifie pas l’existence de l’identifiant d’utilisateur spécifié et exécute avec un identifiant d’utilisateur arbitraire et donc sudo -u#-1 renvoie 0 qui est l’identifiant de la racine.
Et de toute façon bash ou /bin/bash s’exécute avec les droits de root donc c’est ok 😉.
Et mon dernier flag : b53a02f55b57d4439e3341834d70c062
Ce n’est pas fini ! il y a un bonus 😊 :
Qui est l’agent R ?
Observez bien le contenu du fichier root.txt, dans la signature je vois que l’agent R signe avec son nom complet.
Réponse : DesKel
Conclusion
Alors vous avez aimé ce CTF ? franchement pas compliqué mais ça demande de la concentration et il faut bien suivre et comprendre les informations obtenues. Ne vous précipitez pas, il faut prendre le temps et avancer sûrement !
Ce que j’ai apprécié, c’est toujours la même chose pour les débutants : l’utilisation des BASES du hacking !!!!
Bloqués ? relis cet article et si tu as besoin contacte-moi 😉
À bientôt pour un nouvel article PEACE !