Tryhackme CTF Write-Up : Anonymous

Dans ce write-up, nous verrons comment compléter Anonymous de TryHackMe, Un challenge CTF de niveau débutant qui requiert plusieurs techniques : nmap, ftp, lxd

Enumération

Commençons par un scan Nmap pour voir les ports ouverts puis un second sur ceux ouverts pour voir les services qui tournent dessus ainsi que le script par défaut de nmap sur ces ports

Dans ce scan nous trouvons que quatres ports sont ouverts :

  • 21 : un service ftp vsftpd 2.08 ou +

  • 22 : Un service ssh OpenSSH 7.6p1

  • 139 : un service smb Samba

  • 445 : un service smb Samba 4.7.6

Nous voyons que l'accès ftp en tant qu'anonymous est autorisé, et qu'il y a un dossier script

Nous récupérons 3 fichiers, to_do.txt, removed_files.log et clean.sh

Nous voyons que le to_do.txt ne servira pas à grand chose, un simple reminder

nous voyons dans le fichier log qu'un script, très probablement clean.sh à l'air de s'executer fréquemment

nous allons alors modifier clean.sh pour y ajouter un reverse shell le remettre dans le serveur ftp et attendre que le fichier soit executer par son propriétaire

ajoutons le reverse shell

Nous voyons que clean.sh ne perd pas ses droits d'éxécutions, parfait

configurons un listener sur le même port du reverse shell et attendons

Nous recevons bien la connexion, et pouvons récupérer le flag user,

Elevation de privilèges :

En tapant id je vois que l'utilisateur est dans le groupe lxd, je sais que nous pouvons abuser de ces privilèges de ce groupe pour devenir root ( cf gamingserver ctf)

Je vous invite à suivre cette exploitation :

Nous clonons d'abord sur notre machine attaquante https://github.com/saghul/lxd-alpine-builder

puis dans le dossier créer nous faisons sudo ./build-alpine

Nous obtenons un fichier .tar.gz que nous transferrons sur la machine victime

Ensuite nous importons l'image dans lxc

nous faisons l'initialisation de l'image vous pouvez laisser tout par défaut

lors de lxc exec mycontainer /bin/sh on lance un shell avec les privilèges root :)

Nous sommes alors root et pouvons sortir du container et nous rendre dans le /mnt/root/root où se trouve le root.txt

J'espère que vous aurez appris quelque chose et apprécié mon write-up

N'hésitez pas à faire la room sur tryhackme : https://tryhackme.com/room/anonymous

mon profil tryhackme : https://tryhackme.com/p/Frozzinours

Last updated