Kali-linux distribution GNU/Linux spécialisée dans l'audit et le pentest.
Kali-linux.fr Communauté française de kali-linux
writeup vulnhub en francais bluemoon

writeup VulnHub : BlueMoon

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.

découverte des pages cachées

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

aperçu du répertoire hidden_text

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.

texte décodé

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.

connexion et téléchargement de fichier par FTP

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

contenu des fichiers téléchargés

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

attaque par dictionnaire avec hydra

Nous obtenons ainsi le mot de passe de l’utilisateur en question.

Après connexion au serveur ssh, nous pouvons lire le premier flag !

lecture du 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
lecture du second flag

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
obtention de l’accès root

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 !

Leave a Comment

Time limit is exhausted. Please reload CAPTCHA.