---
description: >-
  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
---

# Tryhackme CTF Write-Up : Anonymous



<mark style="color:yellow;">**Enumération**</mark>

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&#x20;
* 445 : un service smb Samba 4.7.6



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2Fn8Xka5w2AerSjKtIBJKo%2FScreenshot_1.png?alt=media&#x26;token=37446b28-2c10-41fa-8f04-102d5b72f2aa" alt=""><figcaption></figcaption></figure>



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



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2F5O1zk7COlPhV8Rfb2iJA%2FScreenshot_2.png?alt=media&#x26;token=f88abbd8-6e85-486e-989a-859d24b875a8" alt=""><figcaption></figcaption></figure>

Nous récupérons 3 fichiers, to\_do.txt, removed\_files.log et clean.sh



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FIW4LJgdo4XEFRbe9iA69%2FScreenshot_3.png?alt=media&#x26;token=dbdd7995-343a-44a0-9096-d0beff542cf0" alt=""><figcaption></figcaption></figure>



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



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FXOMStTFv71xXaMkF3wHY%2FScreenshot_4.png?alt=media&#x26;token=9ab46556-73be-4556-9e88-cd5eb6476aef" alt=""><figcaption><p>ajoutons le reverse shell</p></figcaption></figure>



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FC7FPpEDEkMfuTTuRTSEj%2FScreenshot_5.png?alt=media&#x26;token=3a508b9f-ecfa-46a5-815b-4c75904b10d4" alt=""><figcaption></figcaption></figure>

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



<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FOPANN4aNS6NpFl7HhKik%2FScreenshot_6.png?alt=media&#x26;token=9988e14e-03fc-4c43-8d5c-ac9e5e9783c8" alt=""><figcaption></figcaption></figure>

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

<mark style="color:yellow;">**Elevation de privilèges :**</mark>

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](tryhackme-ctf-write-up-gamingserver))



Je vous invite à suivre cette exploitation :&#x20;

{% embed url="https://steflan-security.com/linux-privilege-escalation-exploiting-the-lxc-lxd-groups/" %}

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

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

<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FgNVrsYyX670rmzHKlj3G%2FScreenshot_7.png?alt=media&#x26;token=bd5e95fe-e2f2-425b-aa60-64e38935bdf8" alt=""><figcaption></figcaption></figure>

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

Ensuite nous importons l'image dans lxc

<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FeVKUy0bo3bYHYzxqadxV%2FScreenshot_8.png?alt=media&#x26;token=dc76ffdd-fb42-4e40-be88-8d5d103ceddb" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2FJYS5R3XbzLrj3cvPC8Hj%2FScreenshot_9.png?alt=media&#x26;token=940cdd9f-add6-49d7-a8cc-94fbbad2ae52" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2F1L73epvxMsfj1uPLUSvB%2FScreenshot_10.png?alt=media&#x26;token=70323809-da18-408b-8c55-310177c65563" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://3839766064-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxQeXO8rMJOSwaAmFiOY8%2Fuploads%2F53ybxWW75h9VfOZMWBpn%2FScreenshot_11.png?alt=media&#x26;token=4577d419-0994-43e9-8077-dfeda8701d3a" alt=""><figcaption></figcaption></figure>



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](https://tryhackme.com/room/anonymous)

mon profil tryhackme : [https://tryhackme.com/p/Frozzinours](https://tryhackme.com/p/Frozzinours)
