Table of contents



Note

Il s’agit d’un des premiers write-ups que j’ai Ă©crit de ma vie, j’ai attendu que la machine retire avant de le poster. C’est possible que je n’utilise pas les bons termes Ă  certains endroit, je n’ai pas relu tout le write-up pour me corriger (j’ai bien trop la flemme).

Vous allez aussi pouvoir voir Ă  quoi ressemblait mon mAgniFiQuE Ubuntu Ă  cette Ă©poque (pas si lointaine)

Recon

On arrive sur une page vide, avec un timer de 349 jours, et un message “Shoppy beta coming soon ! Stay tuned for beta access !

Il s’agit donc d’une application qui n’est pas encore dĂ©ployĂ©e, on peut s’attendre Ă  un docker ou quelque chose du type

page.png

On lance un dirbuster pour essayer de trouver des directories sur le site, et un wfuzz pour les sous domaines

Le dirbuster nous donne http://shoppy.htb/admin et http://shoppy.htb/login

Le wfuzz nous donne http://mattermost.shoppy.htb

dirbwfuzz.png

Foothold

On commence par aller voir le /login, c’est un form de connection classique avec un input et un username

On peut tenter une injection SQL: username=admin' or1=1-- et password=admin

La requĂŞte prend beaucoup de temps, puis le serveur me renvoie un gateway timeout…

On tente cette fois une injection NoSQL: username=admin'||'1==1 & password=admin

Et….. on est connectĂ©s en tant qu’admin

admin.png

On est redirigĂ©s sur le /admin, qui est… vide

Il y a quand mĂŞme un bouton Search for users, qui redirige vers /admin/search-users

panel.png

On a juste un input, en partant du principe que c’est le mĂŞme backend qui gère ça aussi, j’entre la mĂŞme injection NoSQL que pour le login, qui renverra True, soit tout les utilisateurs J’entre donc a'||'1==1 dans l’input, et j’appuie sur le bouton Download export qui apparaĂ®t

search.png

On voit deux utilisateurs: admin et josh

On a aussi les deux hash de leurs mot de passe, en md5

export.png

Qui dit hash, dit hashcat, on prend le hash de josh, et on lance hashcat avec le hash 6ebcea65320589ca4f2f1ce039975995 et rockyou en wordlist

hashcat.png

On a maintenant le mot de passe de josh

Note: Je suis allĂ© me connecter au /admin avec ses logins, ça a fonctionnĂ© mais il avait le mĂŞme panel que l’utilisateur admin

Je vais sur le mattermost pour me connecter avec le compte de josh

mattermost.png

En se balandant un peu sur le mattermost, on trouve un channel privĂ© “deploy machine”, dans lequel on trouve des identifiants, probabelement pour se connecter au ssh de la machine

ssh.png

Lateral Move

ssh jaeger@10.10.11.180

On est connectés au SSH, on cat user.txt pour flag le user

user.png

On fait un sudo -l pour voir si on a des accès particuliers

sudol.png

On voit qu’on peut Ă©xĂ©cuter password-manager en tant que deploy sur la machine, on va d’abord aller voir ce qu’il y a dans ce dernier

cat /home/deploy/password-manager

password.png

C’est très peu lisible puisqu’il s’agit d’un ELF mais on voit, sur la ligne au milieu du screen, que si on entre Sample quand il demande le password, il nous autorise l’accès

On va donc lancer password-manager en tant que deploy puis entrer le mot de passe

sudo -u deploy /home/deploy/password-manager

deploy.png

On a les identifiants de l’user deploy, on va s’y connecter

Privilege Escalation

Une fois connecté, on voit, en faisant id que deploy est dans le groupe docker

docker.png

On va donc partir sur une docker escape, qu’on rĂ©cupère sur GTFObins:

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

root.png

back to top