Salut à tous. Cet article nous emmène une fois encore sur la planète VulnHub pour pirater la machine nommée BlueMoon.
Reconnaissance
Premièrement, nous allons identifier l’adresse IP associée à notre machine. Notre machine physique est dans le réseau 192.168.43.0/24. La machine vulnérable étant connectée au réseau de la machine physique via pont, la commande ci-après nous permet d’identifier son adresse IP.
nmap -sV 192.168.43.0-255

Nous pouvons donc remarquer que notre machine cible possède l’adresse IP 192.168.43.152.
Nous allons, dans un premier temps, nous intéresser au port web (80).
En effet, sur la page web nous obtenons ceci:

Nous avons procédé à l’inspection du code source mais aucune information utilie n’a été trouvée. Passons à la découverte des pages cahées.
Découverte des pages cachées
Pour ce faire, nous utiliserons cette fois-ci l’outil gobuster.
En effet, gobuster est un outil qui permet de faire le bruteforce de plusieurs éléments. Il s’agit du bruteforce des:
- répertoires et fichiers d’un site web
- sous-domaines (une alternative de Sublist3r)
- hôtes virtuelles d’un site web
- buckets Amazone S3
Vous en saurez d’avantage à partir de ce lien.

Nous découvrons effectivement le fichier/hidden_text. En visualisant dans le naviguateur, nous obtenons ce qui apparaît sur l’image suivante.

En cliquant sur le lien Thank You… nous obtenons un code QR que nous téléchargerons. Poussons notre curiosité ! Que cache ce code QR ?
Décodage du code QR
Pour le décodage, ce site web (https://zxing.org/w/decode.jspx) nous permettra de le faire.

Après soumission du fichier du code QR sur le site, nous obtenons des identifiants de connexion au serveur FTP.

Connexion et téléchargement de fichiers sur le serveur FTP
Nous avons pu nous connecter avec les identifiants trouvés puis téléchargés les deux fichiers trouvés sur le serveur à l’aide de la commande get
.

Nous lisons par la suite le contenu des fichiers en question.

Nous pouvons remarquer qu’il y a un utilisateur qui utilise un mot de passe faible et il est sommé d’en utiliser un figurant dans le fichier p_lists.txt
Sur ce, nous allons procéder à une attaque par dictionnaire sur le serveur ssh.
Attaque par dictionnaire
Pour y arriver, nous utiliserons l’outil bien connu de tous: hydra (en savoir plus ici).
La syntaxe est la suivante:
hydra -l username -P /chemin/wordlist ssh://x.x.x.x
avec
username le nom d’utilisateur trouvé dans le fichier information.txt
/chemin/wordlist pour l’emplacement du fichier p_lists.txt
x.x.x.x pour l’adresse IP de la machine cible

Nous obtenons ainsi le mot de passe de l’utilisateur en question.
Après connexion au serveur ssh, nous pouvons lire le premier flag !

Enumération
Notre prochain but est d’avoir des privilèges autres qu’on en possède.
Alors il faut procéder à une énumération.
En vérifiant les privilèges sudo de l’utilisateur robin, nous pouvons constater que l’utilisteur jerry peut aussi exécuter le script /home/robin/project/feedback.sh (appartenant à l’utilisateur robin) sans mot de passe.
Que fait donc ce script ?
#!/bin/bash clear echo -e "Script For FeedBack\n" read -p "Enter Your Name : " name echo "" read -p "Enter You FeedBack About This Target Machine : " feedback echo "" $feedback 2>/dev/null echo -e "\nThanks For Your FeedBack...!\n"
A l’exécution du script, notre nom est demandé puis notre avis sur la machine (feedback).
Le contenu de la variable feedback est exécutée comme commande système et dont le retour est envoyé dans le vide (/dev/null
)
Cette analyse nous permettra de faire une escalade de privilège horizontale !
Escalade de privilège horizontale
A ce niveau, nous allons exécuter le script feedback.sh en tant que l’utiisateur jerry en utilisant la commande ci-après:
sudo -u jerry /home/robin/project/feedback.sh

Sur ce, nous venons d’avoir le shell en tant que l’utilisateur jerry et ainsi la lecture du deuxième flag.
La prochaine étape est d’avoir l’accès root.
Escalade de privilège verticale
Il faut remarquer que l’utilisateur jerry appartient au groupe docker.

Nous pouvons donc exploiter cela et monter le répertoire racine dans un conteneur docker qui nous donnera le shell root en utilisant la commande suivante :
docker run -v /:/mnt --rm -it alpine chroot /mnt sh

Eh Voilà ! Nous venons de réussir le challenge.
Conclusion
En somme, cette machine vulnérable nous a permis de découvrir de nouvelles choses. Entre autres, nous pouvons noter:
- le bruteforce des pages web avec gobuster
- le décodage des codes QR
- le bruteforce avec hydra ( en savoir plus ici)
- le téléchargement de fichiers par FTP
- exploitation des droits sudo et docker
C’est tout pour aujourd’hui. A très bientôt !