[HA Joker][CTF][TryHackMe]

Challenge niveau medium du site TryHackMe

[HA Joker] CTF Thumbnail

" Batman hits Joker"

lien vers TryHackMe.com

[Task 1] Enumération des Services

Commençons comme d'habitude avec les classiques Nmap et Gobuster

1. Nmap

Ces deux scans nous permettre de répondre aux premières questions du challenge.

3. Réponses aux questions

Question
Réponse

What version of Apache is it?

2.4.29

What port on this machine not need to be authenticated by user and password?

80

There is a file on this port that seems to be secret, what is it?

secret.txt

There is another file which reveals information of the backend, what is it?

phpinfo.php

When reading the secret file, We find with a conversation that seems contains at least two users and some keywords that can be intersting, what user do you think it is?

joker

What port on this machine need to be authenticated by Basic Authentication Mechanism?

8080

[Task 2] Bruteforce

Voici l'écran de 'Login' que nous allons attaquer

Ecran de login

1. Burp

Lançons Burp avec "Proxy Interception" sur "on" et entrons "joker" et "password".

Ecran de Burp Suite avec essai de login joker:password

Nous constatons que la validation du login est du type basic user:password en base 64.

Nous pouvons alors lancer hydra en mode http-get

Maintenant que nous avons l'utilisateur joker avec son password hannah, nous pouvons lacer une exploration plus poussée du site en port 8080 avec Nikto et Gobuster.

3. Nikto

Pour nous simplifie la vie, nous pouvons filtrer les résultats et ne montrer que les infos 'interesting'

4. Gobuster

Dans les deux cas, nous détectons la présence d'un répertoire '/administrator/' ainsi que l'existence d'un fichier 'backup.zip' comme évoqués dans le challenge.

5. John The Ripper

Téléchargeons le fichier backup.zip et attaquons-le avec John The Ripper

Decompressons backup.zip localement

Backup.zip extract here
Backup.zip password

Après avoir extrait le fichier backup.zip, intéressons-nous au fichier joomladb.sql trouvé dans le sous-répertoire backup/db

Comme suggéré dans le challenge, cherchons les infos concernant un 'Super Duper User'

Nous savons maintenant que l'id de ce Super Duper User est 'admin' et nous avons un hash de son password.

Confions ce hash à John The Ripper

Nous pouvons désormais répondre à toute une série de questions et toutes ces infos vont nous permettre de prendre pied sur la machine cible dans la phase d'exploitation.

6. Réponse aux questions (suite)

Question
Réponse

At this point we have one user and a url that needs to be aunthenticated, brute force it to get the password, what is that password?

hannah

Yeah!! We got the user and password and we see a cms based blog. Now check for directories and files in this port. What directory looks like as admin directory?

/administrator/

We need access to the administration of the site in order to get a shell, there is a backup file, What is this file?

backup.zip

We have the backup file and now we should look for some information, for example database, configuration files, etc ... But the backup file seems to be encrypted. What is the password?

hannah

Remember that... We need access to the administration of the site... Blah blah blah. In our new discovery we see some files that have compromising information, maybe db? ok what if we do a restoration of the database! Some tables must have something like user_table! What is the super duper user?

admin

Super Duper User! What is the password?

abcd1234

[Task 3] Exploitation

Passons à l'exploitation des données récoltées pour prendre pied dans la machine cible.

Commençons par nous connecter à Joomla avec les crédentiels admin:abcd1234.

administrator login
joomla control panel
Beez3 style page

template customisation
reverse shell PentestMonkey
reverse shell paste dans error.php

Affichons la page error.php dans firefox

http://10.10.238.221:8080/templates/beez3/error.php

reverse shell firefox

Comme à chaque fois, consolidons ce shell

[Task 4] Escalade des privilèges [lxd]

A priori nous devrions passer par ma méthode d'escalade des privilèges habituelle mais comme nous avons constaté que l'utilisateur courant [www-data] était membre du groupe [lxd], nous allons pouvoir faire une escalade de privilèges en utilisant une faille dans la mise en place de conteneurs LXD

1. Sur la machine Kali

2. Sur la machine cible

Ne pas oublier d'aller dans le répertoire /mnt/root du conteneur pour y retrouver tous les fichiers de la machine cible.

3. Réponse à la dernière question

Question
Réponse

What is the name of the file in the /root directory?

final.txt

Mis à jour

Ce contenu vous a-t-il été utile ?