TryHackMe CTF Write-Up : RootMe
Dans ce write-up, nous verrons comment compléter le lab RootMe de TryHackMe , Un challenge CTF de niveau débutant qui requiert plusieurs techniques : Nmap, gobuster, élévation de privilèges...
Last updated
Dans ce write-up, nous verrons comment compléter le lab RootMe de TryHackMe , Un challenge CTF de niveau débutant qui requiert plusieurs techniques : Nmap, gobuster, élévation de privilèges...
Last updated
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 7.6p1 d’OpenSSH
80 : Un serveur Apache 2.4.29
Essayons maintenant d’énumérer les dossiers de ce site web avec Gobuster
Gobuster dir -u http://ip-tryhackme -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt
Nous avons deux dossiers intéressants : /panel et /uploads, allons-y
Obtenir un shell
Sur /panel, On a ce qui semble être un uploader de fichier, je tente d’upload un fichier bénin « todo.txt »
Un message de couleur vert s’affiche en ce qui semble être du portugais et lorsque l’on se rend dans /uploads, le fichier « todo.txt » s’affiche correctement 😊
Nous allons alors upload un reverse shell php (de Pentest-monkey)
Vérifiez bien d’avoir mis votre adresse IP tryhackme et de connaitre le port que vous utilisez,
On upload et cette fois un message d’erreur s’affiche :
Apparemment les extensions .php sont bloquées, essayons alors un trick en changeant l’extension
Je change donc l’extension reverse-shell.php par reverse-shell.jpg.Php5 pour essayer de contourner diverses filtres
Et cette fois ci, pas de message d’erreur, l’upload à l’air de fonctionner
Je check le /uploads et effectivement le fichier est là, il ne me reste plus qu’à setup un listener et de clicker sur le reverse-shell dans le dosser /uploads
Nous avons maintenant accéder au compte de service www-data, avant de passer à l’élévation de privilège je récupère le flag user.txt qui est surement dans le dossier /var/www
Elévation de privilège
Regardons les permissions SUID avec cette commande :
find / -type f -perm -u=s > 2/dev/null
Nous y trouvons un binary intéressant : /usr/bin/python
Il ne reste plus qu’à copier la commande et nous aurons les permissions root, nous pouvons récupérer le flag
J'espère que vous aurez appris quelque chose et apprécié mon write-up
Regardons sur pour trouver s’il y a une technique de d'élévation de privilège pour python avec le bit SUID d’activé et en effet
N'hésitez pas à faire la room sur tryhackme :
mon profil tryhackme :