What’s up guys, prêts pour un nouveau CTF ?
J’ai choisi pour varier un challenge de niveau medium, mais franchement en avançant je me suis aperçu qu’il n’était pas si compliqué !
Préparez vos machines, on va faire chauffer le clavier !
#Task 1
C’est parti ! j’ai rejoint le room, lancé ma machine cible et de l’autre côté Kali Linux.
Un de mes réflexes est d’effectuer un scan rapide sans utiliser l’option -A (agressif), je préfère obtenir un maximum d’informations avec -Pn et/ou -F :
-Pn : Ne ping pas la cible
-F : scan rapide
nmap -Pn 10.10.220.86
Bon, d’après mon scan il y a 3 ports d’ouverts. Je lancerai un scan plus poussé par la suite pour voir s’il y a d’autres ports d’ouverts.
Première question :
Trouvez l’extension de fichier présent dans le server ftp après une connexion en mode anon (anonymous)
Pas très compliqué, en fait il me donne un indice super important. Je dois simplement me connecter au server en utilisant la commande :
ftp 10.10.220.86 puis entrer anonymous et taper sur la touche Enter
En listant le contenu du répertoire avec ls -la je vois un fichier texte (.txt).
Deuxième question :
Qu’y a-t-il sur le port le plus haut ?
Maintenant je dois faire un scan avancé pour plus d’informations :
nmap -p- -sV 10.10.220.86
-p- : scan tous les ports
-sV : affiche les versions des services actifs
Le résultat me donne que le port le plus haut est le 55007 avec le service ssh d’activé sur ce port ! C’est souvent que le port ssh est ouvert sur des ports hauts au lieu du 22 de base (retenez le ).
Troisième question :
Qu’est-ce qui fonctionne sur le port 10000 ?
Pour savoir, je reprends mon scan précédent :
Sur ce port, c’est Webmin qui tourne !
Quatrième question :
Pouvez-vous exploiter le service exécuté sur ce port ?
La réponse est : nay (non)
cinquième question :
Quel est le CMS auquel je peux accéder ?
CMS = Content Management System (plus clairement système de gestion de contenu pour ceux qui ne connaissent pas)
Plusieurs méthodes existent pour connaître le CMS présent, pour cette fois j’utilise gobuster pour énumérer les sous domaines :
gobuster dir -u http://10.10.220.86/ -w /usr/share/wordlists/dirb/commont.txt
Voilà le CMS ! : joomla
sixième question :
Je dois continuer mon énumération pour obtenir plus d’informations.
La question au-dessus se porte sur joomla, je vais donc l’intégrer à ma commande précédente puis observer le résultat :
gobuster dir -u http://10.10.220.86/joomla/ -w /usr/share/wordlists/dirb/commont.txt
Il y en a un qui attire mon attention : /_test, en fait sur le reste je n’ai pas obtenu de piste !
J’accède à l’interface web pour voir ce que je peux trouver :
Premier point important, je vois quelque chose nommé sar2html que je ne connais pas ! Lorsque j’ai effectué une recherche Google je suis tombé directement sur un exploit c’est génial non ?
Très important de comprendre comment exploiter, dans ce cas de figure la faille est d’injecter la commande après le /index.php?plot= ;
Je fais un essai avec ls
Super ! plusieurs menus déroulants sont apparus, je vais voir ce qu’ils contiennent :
Bingo finalement j’ai répondu à la dernière question de ce #Task 1 en trouvant le fichier log.txt.
Ce n’est pas fini, je dois aller jusqu’au bout en regardant le contenu de ce fichier en injectant la commande cat log.txt et regarder dans le menu déroulant :
Et boum ! j’ai un nom d’utilisateur ssh et le mot de passe associé.
User ssh = basterd
Password = superduperp@$$
#Task 2
Où sont stockés les mots de passe des autres utilisateurs (pas d’extension, juste le nom) ?
Je me connecte avec les informations d’authentification sur le port 55007 :
ssh basterd@10.10.220.86 -p55007
En utilisant les commandes de base ls et cat, j’ai le nom du fichier qui contient d’autres mots de passe : backup.sh
La prochaine étape consiste à obtenir le flag présent dans le fichier user.txt :
En me servant de l’ID et le password de stoner je vais changer de compte en basculant vers l’utilisateur stoner :
User = stoner
Password = superduperp@$$no1knows
Connexion : su stoner
J’ai trouvé un fichier nommé .secret, hum je vais voir ce qu’il peut bien contenir :
Yes ! premier flag validé les amis : You made it till here, well done.
Ok ! maintenant je dois passer à la phase d’escalade de privilèges, pour cela il y a une commande que j’exécute machinalement : sudo -l
Sans trop de succès cette fois , je vais me rabattre sur une autre commande en lien avec le SUID ( il y a un article que j’ai déjà écrit sur les permissions Linux) :
find / -perm /4000 -type f -exec ls -ld {} \ ; 2>/dev/null
/ : Rechercher des fichiers de manière récursive à partir du dossier racine et ainsi de suite.
-perm /4000 : représentation numérique du bit SUID activé
-type : Il spécifie quel type de fichiers à rechercher. f pour les fichiers, d pour les répertoires
-exec : exécute une commande avec les résultats de find dans un tableau, j’ai utilisé ls -ld pour afficher le propriétaire des fichiers trouvés et la date de création ( très pratique) !!
2>/dev/null : qui redirige toutes les (erreurs) vers /dev/null et garde la sortie propre (lisible).
Intéressant ! la commande find ???? je vais chercher sur GTFObins si je peux trouver quelque chose d’utile :
Bingo ! j’ai trouvé ce qu’il me faut, en fait en exécutant la commande :
/usr/bin/find . -exec /bin/sh -p \ ; -quit je vais augmenter mes droits vers root !
Et voilà le travail, j’ai réussi à être le super utilisateur root et en accédant sur le répertoire /root j’ai obtenu le dernier flag.
Qu’avez-vous exploité pour obtenir l’utilisateur privilégié ?
La réponse est : find
Flag root.txt : It wasn’t that hard, was it ?
#Conclusion
C’est terminé pour ce CTF les amis, franchement les débutants qui ont des bases solides peuvent faire ce challenge sans trop de difficulté ! je vous conseille de le faire par vous-même et de vous aider de cet article si vous êtes coincés.
Si vous avez des questions n’hésitez pas à me contacter ou de laisser un commentaire.
Je vous dis à très vite pour de nouvelles aventures PEACE !
Cet article BOILER – TryHackMe – Writeup est apparu en premier sur HackinGeeK.