[Willow][CTF][TryHackMe]
Challenge niveau medium du site TryHackMe

[Task 1] Enumérations
Commençons les énumérations de façon classique avec Nmap et Gobuster.
1. Nmap
Nous constatons qu'en plus du port 22/tcp open ssh et du port 80/tcp open http, nous touvons le port 2049/tcp open nfs qui nous indique une possibilité de partage de fichiers via le réseau.
2. Gobuster
L'énumération Gobuster ne nous mène à rien.
[Task 2] Exploitation
1. Exploitation de la première page
Rendons-nous sur le site

Faisons un copier coller des data vers cyberchef et utilisons la baguette magique proposée


Sauvegardons le résultat dans un fichier first-page.txt
Nous pouvons constater que le code résultant pourrait bien correspondre à une clé privée SSH de par la présence de 2367 2367 2367 2367 2367 en début de code et qui pourrait bien correspondre aux cinq tirets du début d'une clé privée SSH
-----BEGIN RSA PRIVATE KEY-----
(idem pour les cinq tirets à la fin)
Profitons-en pour nettoyer le fichier first-page.txt de sa première ligne pour conserver uniquement les data que nous sauvegardons dans un fichier private-key.tx
2. Exploitation du port NFS
Nmap nous a montré que le port 2049/tcp open nfs était ouvert et qu'il existait une possiblité de partage de fichiers via le réseau.
Explorons les partages nfs disponibles
Faisons un mount de ce répertoire dans notre machine kali
et voyons ce qu'il contient
Nous avons maintenant à notre disposition deux paires de clés RSA
3. Décodage RSA
Commençons par nous intéresser au codage décodage comme présenté dans le site https://muirlandoracle.co.uk/2020/01/29/rsa-encryption/ donné en indice
extrait du site

En français: le <caractère décodé> = <caractère encodé> exposant <première clé privée> modulo <deuxième clé privée>.
Ce qui nous donne en python: answer = (int(chunk) ** d) % n
Écrivons notre propre script python decode_rsa.py pour décoder la clé privée SSH
Faisons un copier coller vers un fichier id_rsa ( ou python3 decode_rsa.py > id_rsa) .
Remarquons au passage que la clé est Proc-Type: 4,ENCRYPTED et qu'il nous faudra donc utiliser John The Ripper pour pouvoir l'utiliser.
4. Alternative de décodage RSA
Nous aurions tout aussi bien pu utiliser un calculateur RSA en ligne sans trop se préoccuper du mécanisme codage/décodage RSA comme nous l'avons fait.
Le RSA Express Encryption/Decryption Calculator fait très bien l'affaire et son utilisation est évidente.

[Task 3] Prise pied sur la machine cible
1. Décryptage de la clé SSH
Nous avons maintenant un utilisateur willow avec sa clé privée id_rsa dont le password est wildflower
2. Prise pied sur la machine cible
Récupérons le fichier user.jpg sur notre machine kali

Extrayons le texte de l'image avec tesseract (au besoin: sudo apt install tesseract-ocr)
[Task 4] Escalade de privilèges
1. Sudo -l
Nos constatons que willow peut monter le répertoire /dev avec des privilèges sudo sans devoir entrer de mot de passe.
Voyons ce qu'il y a dans /dev

Le répertoire hidden_backup paraît très intéressant. Montons-le avec sudo
Nous avons maintenant les crédentiels de root:7QvbvBTvwPspUK et de willow:U0ZZJLGYhNAT2s.
Le contenu de root.txt nous dit que nous avons déjà reçu le root flag auparavant or la seule chose que nous ayons déjà reçue est le fichier user.jpg.
2. Root flag
Utilisons steghide pour explorer le fichier user.jpg
Contenu de root.txt
And this complete the vote of the Belgian jury ☺️✌️
[Task 5] Réponses aux questions
User Flag:
Root Flag:
Mis à jour
Ce contenu vous a-t-il été utile ?