CTF-Bulldog : Source Password Disclosure

Installation sur mon réseau local d’un nouveau CFT qui s’appelle Bulldog. Le but du jeu est d’essayer de trouver des vulnérabilités sur le site afin de prendre le contrôle total du serveur puis de trouver un message de félicitation, à savoir que le site à déjà été pirater par un groupe de hackers qui se fait appeler German Shepherd Hack Team. Voilà à quoi ressemble le site sur l’image ci-dessous.

L’attribut alt de cette image est vide, son nom de fichier est bulldog-1-1024x577.png.

Commençons analyse notre site avec un scan Nmap afin de trouver des ports ouverts sur notre machine. Voici le résultat de notre recherche sur les services et ports ouverts, nous remarquons le service SSH et sur le port 23 alors que par défaut il se trouve sur le port 22, mais cela n’a pas d’importance, je vois une version du SSH qui est la 7 .2p2 donc je fais une recherche sur internet et nous voyons que les personnes en charge du site utilisent une ancienne version de SSH. À savoir que cette version du SSH est vulnérable aux attaques dites « Username Enumeration« , donc on pourra faire du brute force si on ne trouve pas d’information.

L’attribut alt de cette image est vide, son nom de fichier est services.png.

Puisque nous n’avons pas d’autre information, nous allons utiliser un autre outil qui se nomme Gobuster, c’est un scanner de brute force de répertoire, par exemple il cherche des fichiers cachés à l’oeil de l’utilisateur.

L’attribut alt de cette image est vide, son nom de fichier est gobuster.png.

En début de scan notre Gobuster a découvert pour le moment 3 fichiers « /admin, /notice, /dev« , donc on est parti pour visiter les pages caché et je commence pas le répertoire /admin. Pas de surprise je me retrouve sur une page de connexion « Django administration« , Bete est discipliné je teste une connexion « Username: admin & Password: admin« , oui des mot de passe souvent utilisé 🙂 mais cela ne marche pas. Je regarde le code source de la page pour voir s’il y a quelques informations concernant le CMS Django « numéros de version … » je n’ai rien trouvé pour le moment, peut-être que sur le net on trouvera quelque chose, je decide de mettre ça de côté et de passer au répertoire /dev puisque le répertoire /notice et indiqué au début du site.

L’attribut alt de cette image est vide, son nom de fichier est django-1024x576.png.
L’attribut alt de cette image est vide, son nom de fichier est dev-1024x576.png.

Sur notre page de nous trouvons quelques trucs intéressants comme des adresses email des employés et un lien Web-Shell que j’ai visité mais cela n’a rien donner, donc je mets ceci de coté puis je continue mon analyze de la page /dev et j’étudie son code source.

L’attribut alt de cette image est vide, son nom de fichier est webshell.png.
L’attribut alt de cette image est vide, son nom de fichier est infos-1024x577.png.

Aprés analyze du code source de la page /dev, je vois en commentaire des series de chiffres et de lettre pour chaque adresse email, pour moi cela ressemble clairement à des mots de passe chiffrée en format que je connais bien « SHA1« . Pour déchiffrer les mots de passe nous allons utiliser le logiciel John The Ripper.

L’attribut alt de cette image est vide, son nom de fichier est john-1.png.

John The Ripper a déchiffré l’un des mots de passe de l’utilisateur nick, son mot de passe est bulldog. À partir de ce moment je retourne sur la page de connexion et je m’identifie avec le login: nick et password: bulldog.

L’attribut alt de cette image est vide, son nom de fichier est panel-1024x576.png.
L’attribut alt de cette image est vide, son nom de fichier est panel2-1024x578.png.

Ha cest bon! nous sommes connectés au panel administration, puis je remarque vite que malheureusement nous ne pouvons rien faire à partir de la, je ne peux rien modifié ou uploadé mon shell. Dommage ! donc je retourne analysé les pages du site et je constate que la page du Web-Shell est activée, si je comprends bien nous ne pouvons rien faire depuis le panel administration mais nous pouvons utiliser leur web-Shell.

L’attribut alt de cette image est vide, son nom de fichier est ws1-1024x575.png.

Nous sommes sur un WebShell limité, on ne peut pas tout faire mais il y a quelques commandes autorisées comme (ifconfig, ls, écho, pwd, cat, rm) donc cela devrait être suffisant pour se balader sur le serveur et regarder ce qu’il y a dedans. Premièrement il faut savoir déjà qui nous sommes donc je tape « echo & whoami« , nous sommes l’utilisateur Django 🙂 hey non je ne suis pas root encore :), puis je me rends dans le /home et je remaque que j’ai un dossier qui se nomme bulldogadmin :p intéressant.

L’attribut alt de cette image est vide, son nom de fichier est wsh1.png.
L’attribut alt de cette image est vide, son nom de fichier est wsh2-1024x576.png.

Bon pour ceux qu’ils veulent faire ce CTF je ne vais pas donner toutes les réponses 🙂 , enfin quoi qu’il en soit j’ai réussi à mettre la main sur un mot de passe donc je vais essayer de me connecter au SSH.

L’attribut alt de cette image est vide, son nom de fichier est sshc-1.png.
L’attribut alt de cette image est vide, son nom de fichier est sshc2.png.

Bingo ! donc je suis connecté au SSH avec l’utilisateur Django, mais je vais lancer une commande pour essayer de passer root car souvenez-vous, le flag est dans fichier et je suppose que seul root peut lire le contenu. Je lance la commande soudo -i et on me demande le mot passe root, j’essaie le mot de pas de Django et la ça fonctione 🙂 je suis root de la machine je peux faire ce que je veux dessus.

L’attribut alt de cette image est vide, son nom de fichier est root1.png.

Je tape la commande ls -la pour afficher le répertoire et je vois un fichier congrats.txt, je l’ouvre 🙂 voila j’ai trouvé le message, le CTF est terminé.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *