> For the complete documentation index, see [llms.txt](https://writeups.ayweth20.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://writeups.ayweth20.com/2023/404ctf-2023/cloud/le-cluster-de-madame-bovary.md).

# Le Cluster de Madame Bovary

**Catégorie:** Cloud - **Difficulté:** Facile

Fichier : [Google Drive - ](https://drive.google.com/drive/folders/1WOU7b58-nxiUyv5AEPDkcKifNnuQk6Vm?usp=share_link)[Le Cluster de Madame Bovary](https://drive.google.com/drive/folders/1YD944ooqmz2J8wGfADQnwzGBF1TmIQcW?usp=sharing)

**Description:**

<figure><img src="/files/v5XvCEtxEewdtqjlZ3Sr" alt=""><figcaption></figcaption></figure>

**Solution:**

Pour ce challenge, il faut utiliser une machine virtuelle VirtualBox fournie. Un cluster Kubernetes y est installé. N'y connaissant pas grand chose, j'ai utilisé [cette cheatsheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/).

On va commencer à lister les différents pods sur la machine en utilisant kubectl :&#x20;

<figure><img src="/files/1BzehOPs6BCNLF7Vmrwr" alt="" width="313"><figcaption></figcaption></figure>

Il y a donc un pod nommé *agent*. Nous allons récupérer des infos sur ce dernier : <br>

<figure><img src="/files/RvZxUEZKg5eXzFfMUM2n" alt="" width="563"><figcaption></figcaption></figure>

Nous voyons que l'image [404ctf/agent](https://hub.docker.com/r/404ctf/agent) disponible sur le Docker Hub a été utilisée.\
En regardant l'entrypoint, nous voyons que pour lancer le pod, il suffit d'exécuter la commande `/opt/agent` une fois connecté au shell du pod.

Pour se connecter au shell, il faut utiliser cette commande :&#x20;

<figure><img src="/files/mSs9Ka3moXJyZnofs7IQ" alt="" width="446"><figcaption></figcaption></figure>

Maintenant que nous sommes connecté au pod, nous allons pouvoir exécuter la commande pour déployer le container :&#x20;

<figure><img src="/files/25Oz4fmWaUQMSNwGYn45" alt="" width="302"><figcaption></figcaption></figure>

Il va donc falloir enlever cette erreur. Pour cela, il suffit de faire ce qui nous est demandé, c'est à dire deployer le container 404ctf/the-container en suivant plusieurs étapes :&#x20;

<figure><img src="/files/M9lF1OKaHcsUFgF5mcRv" alt="" width="563"><figcaption></figcaption></figure>

Une fois cela fait, nous pouvons nous y connecter au shell de nouveau pod. Maintenant nous allons tenter de relancer le container agent : <br>

<figure><img src="/files/AYTBiCJhzT3r60f8QGli" alt="" width="269"><figcaption></figcaption></figure>

Maintenant nous allons devoir régler tous les petits soucis pour pouvoir tout lancer correctement :&#x20;

<figure><img src="/files/vwdlQggpDLTOW4EK7cOh" alt="" width="405"><figcaption></figcaption></figure>

Une fois toutes les phases nécessaires terminées, nous pouvons récupérer la première partie du flag.\
Maintenant nous allons refaire exactement les même étapes avec le nouveau container web-server&#x20;

<figure><img src="/files/xUl5R0OPg0XxHQICrYWV" alt="" width="563"><figcaption></figcaption></figure>

Maintenant que nous sommes connecté au shell du container, nous allons pouvoir l'explorer :&#x20;

<figure><img src="/files/IifDHq9BXab3sTeKoCtF" alt="" width="392"><figcaption></figcaption></figure>

Nous avons plusieurs fichiers à exploiter mais le plus intéressant est le fichier *web-server.go* :&#x20;

<figure><img src="/files/VhuFaZYNKJjhZGjYbMAQ" alt="" width="563"><figcaption></figcaption></figure>

Nous avons donc toutes les parties nécessaires pour valider ce challenge.

<details>

<summary>🚩 FLAG</summary>

```
404CTF{A_la_decouverte_de_k8s}
```

</details>
