Harpagon et le magot

Catégorie: Cloud - Difficulté: Moyen

Description:

SSH : ssh 404ctf@challenges.404ctf.fr -p 31284 / Mdp : T8h2UKEstg

Solution:

Pour ce challenge, nous ne savons pas vraiment ce que nous devons chercher... Il va donc falloir investiguer un peu pour voir ce que cette machine fait.

Dans un premier temps, regardons si nous pouvons connaitre les anciennes commandes exécutées

Voilà, avec ça nous allons pouvoir comprendre un peu plus ce qu'il s'est passé plus tôt. Avec cela nous comprenons qu'il créé un espace avec kubectl et qu'il installe puis modifie Bitwarden à l'aide de helm.

Il faut donc que nous nous intéressions à l'utilisation de helm afin de voir ce qui a été créé. Pour ce faire, j'ai utilisé la documentation du site car je ne connaissais pas du tout cette techno.

En regardant les commandes de bases, nous pouvons voir que la commande helm list --all permets de lister tous les projets en cours d'exécution sur la machine :

Nous pouvons donc voir qu'il y a un projet nommé "cassette" qui tourne depuis le 13/05/2023. Maintenant nous allons passer à l'analyse du fichier qui ont servi à l'initalisation du projet : values.yaml. En regardant son contenu nous pouvons voir quelque chose d'intéressant :

Nous avons le token de l'utilisateur admin. Mais il faut bien faire attention au commentaire juste à côté qui nous alerte sur le fait qu'il ne se trouve plus ici. Il va donc falloir trouver un moyen de le retrouver.

Si nous revenons sur ce qu'il y a juste avant la date avec la commande helm list --all, nous voyons le mot "REVISION" qui à pour valeur 2. Cela signifie, que c'est la 2e version du projet. Cela indique donc que le fameux token était présent dans la version n°1 et donc avant la modification du fichier values.yaml (vu dans l'historique des commandes).

Alors retournons dans la doc de helm pour trouver la commande qui nous permettra de retrouver la version initiale. Très rapidement nous trouvons la commande suivante helm rollback cassette 1 :

Nous voyons ici que tout a bien fonctionné car les valeurs de "REVISION" et de date ont changée. C'est parfait tout ça, nous allons donc pouvoir continuer.

Seulement tout à l'heure nous avons avons fait un cat values.yaml. Mais avec le changement de version du projet helm, le contenu du fichier n'a pas changé lui... Il va donc falloir trouver une méthode pour récupérer toutes les données disponibles dans le projet cassette. Pour ça, la commande helm get values cassette --all est parfaite et permet de récupérer l'intégralité des paramètres/valeurs du projet :

Et là, que voyons-nous ? Un token qui ressemble fortement à un flag 😆 La dernière étape va être d'inverser le sens du texte pour avoir le flag dans le bon sens :

🚩 FLAG
404CTF{l@v4r1c3_3s7_1_fl3@u_d0n7_1l_3s7_vict1me}

Last updated