what’s up guys, all is ok ?
Un petit CTF a attiré mon attention, je dois avouer que je le trouve assez complet pour tester ses bases en pentesting et hacking !! je vais vous montrer comment procéder et les outils que je vais utiliser dans ma valise. Go !!!
Phase de récolte d’informations
Toujours commencer par un scan réseau avec nmap afin de connaître les ports ouverts et les services correspondants qui s’exécutent sur votre cible :
nmap -A 10.10.120.54
À première vue c’est intéressant comme résultat je vois les services ssh, http et Samba. Ce qui me saute aux yeux c’est Samba mais je vais le checker tout à l’heure. D’abord je commence par voir l’interface web depuis mon navigateur :
Simple serveur Apache… ce n’est pas grave je continue en essayant d’énumérer les sous domaines avec gobuster :
Gobuster dir -u http://10.10.120.54/ -w /usr/share/wordlists/dirb/big.txt
Bingo ! 2 path de trouvés : /test et /wordpress.
Dans l’ordre :
10.10.120.54/test
Honnêtement rien d’intéressant, juste des pop-up…, donc je vais voir dans le path wordpress :
Nothing !!! ahrgg c’est le moment de jeter un coup d’œil du côté de Samba.
Pour cela, il y a un outil très puissant : enum4linux (n’hésitez pas à regarder le man)
enum4linux -a 10.10.120.54
Une fois le processus terminé, il faut analyser le résultat pour dénicher des informations capitales ! Et sans trop chercher je tombe sur quelque chose d’intéressant :
Il y a un dossier de partage appelé websvr, je vais essayer d’y accéder :
smbclient //10.10.120.54/websvr (sans mot de passe il suffit d’appuyer sur Enter)
Cool !! il y a un fichier enter.txt, à l’aide de la commande get je le télécharge et je peux lire le contenu avec cat. Deux informations importantes :
- Un subdomain : /subrion
- Id et password
En lisant attentivement, je vois qu’il y a un panel pour ce sous-domaine ! donc il faut le prendre en compte. Je vous montre :
10.10.120.54/subrion/panel dans la barre de recherche.
Lorsque j’ai essayé les informations d’authentification au-dessus ça n’a pas fonctionné, en fait je n’avais pas vu le détail subtile concernant l’encodage du password : magic.
Après quelques recherches sur le net j’ai trouvé un site permettant de décoder le mot de passe :
Nickel ! donc je vais utiliser le mot de passe Scam2021.
Et voilà le travail je suis connecté, très important il faut toujours vérifier la version du CMS utilisé. Dans mon cas : subrion CMS version 4.2.1
Note : lorsque vous trouvez la version d’un CMS pensez bien à chercher s’il existe une vulnérabilité ou un exploit, pour cela vous avez Exploit DB, searchsploit…
Maintenant que j’ai la version, je vais chercher si je peux trouver un exploit :
searchsploit subrion
Il me propose plusieurs exploit de disponible, celui qui m’intéresse c’est le 49876.py. Alors, soit je décide de le télécharger directement sur le net depuis Exploit DB, soit je le copie depuis le répertoire mère.
Phase d’exploitation
Maintenant que tout est prêt, je peux commencer à exploiter mon serveur cible. Pour utiliser l’exploit que j’ai téléchargé au préalable je tape la commande suivante :
python3 49876.py -u http://10.10.120.54/subrion/panel -l admin -p Scam2021
Normalement, si tout se passe bien j’obtiendrai un reverse shell.
C’est génial ! après avoir obtenu mon shell, j’ai fouiné dans quelques répertoires afin de trouver des informations qui pourraient me permettre de basculer vers un shell plus stable.
Pourquoi ? car actuellement mon shell n’est pas stable !
Et finalement, dans le répertoire /var/www/html/wordpress/ j’ai trouvé un fichier de configuration… Ce n’est pas étonnant souvent avec l’habitude des CTFs on retrouve ce genre de situation.
En regardant de plus près ce fichier, j’ai pu obtenir les données d’authentification. Je teste pour savoir si ça fonctionne : depuis ssh
Mince ! ça ne marche pas, je vais donc revenir sur mon résultat de enum4linux pour voir si j’ai un user.
Bingo ! user = scamsite
Je vais essayer avec le mot de passe précédent :
Yessss, là j’ai un shell plus stable en plus. Franchement je me suis déplacé dans quelques répertoires dans le but de trouver quelque chose me permettant d’escalader mes privilèges, mais rien. C’est pourquoi j’ai utilisé une commande qui doit être un réflexe : sudo -l
Alors dans ce cas de figure, le script /usr/bin/iconv peut être exécuté sans mot de passe et on deviendra root 😊.
Pas si vite, il faut d’abord que je visite une de mes pages favorites GTFOBins :
Voilà, il suffit de lire et comprendre la commande :
LFILE=/root/root.txt (pour annoncer le fichier que l’on veut lire)
./iconv -f 8859_1 -t 8859_1 « $LFILE » (va nous afficher le contenu du fichier en question)
Conclusion
Voilà les amis, c’est la fin de ce CTF ! j’espère que vous vous êtes bien amusés. N’hésitez pas à revenir en arrière s’il y a des points que vous n’avez pas compris, surtout ne sautez pas les étapes sinon votre pentesting va se terminer en échec…
Si vous avez besoin ou des suggestions je suis à votre disposition, à très vite PEACE 😊 !!!