leHACK 2025 : Writeup kubain (easy)
Writeup sur le challenge kubain (easy) 👍
En réalité il y avait 2 challenges sur kubain, l'un en easy et l'autre en medium. On s'attaque ici au premier, où l'on dispose d'une URL. Après une navigation rapide et d'une certaine déduction, on s'aperçoit d'une RCE facile à exploiter :

Ce stock?cigar=../$(ls)
est très intéressant. D'une part il affiche un ensemble de fichiers tel que le Dockerfile
(pas dans le screenshot) et ce que je suppose être le kubain.go
, et quelques informations comme le chemin (/stock/
qui revient au stockPath
dans le script). A ce stade, on arrive clairement à définir comment ce programme fonctionne et comment bien exploiter cette RCE. Je n'ai malheureusement pas pris en screenshot le Dockerfile
mais c'est la compilation du programme Go et surtout l'installation d'un kubernetes-client
qui me met la puce à l'oreil, car c'est pas le genre de truc que kubain à besoin.
Donc à la place d'un $(ls)
je tente un $(kubectl can-i --list)
:

Des choses intéressantes du côté des CRDs (dont le kubains.kubain.b0uz.in
mais j'en parlerai dans un prochain article). Plusieurs longues minutes de recherches, c'est finalement du côté des secrets qu'il faut se pencher, en particulier le flag-part-1
:

Le secret étant en base64, il suffit simplement de le décoder :
echo -n 'TGVIYWNre2hhY2tpbmdfYV9wb2RfaXNfbmljZX0K' | base64 -d
LeHack{hacking_a_pod_is_nice}