Catégories
HackTheBox Machines

HTB { Academy }

Salut à tous, ceci est mon premier Writeup sur une machine HackTheBox. Si vous ne le savez pas déjà, Hack The Box est un site web qui vous permet d’approfondir vos connaissances en matière de cybersécurité en piratant toute une série de machines différentes.

Aujourd’hui, je vais vous parler de la machine Academy, qui est classé facile sur le site et n’est plus en live donc ne permet plus d’avoir des points pour augmenter son niveau sur HTB.

1 – Phase d’énumération

Pour commencer j’utilise le logiciel Nmap pour effectuer un Scan de port sur la machine.

Lors de ce Scan, je vois que l’adresse IP a deux ports d’ouvert:

  • le port 22 qui est un port ssh en version OpenSSH 8.2p1
  • le port 80 qui est un port HTTP en version Apache httpd 2.4.41

Aucune faille connue sur ces versions. Je vais aller sur le site web en port 80 pour voir le site web accessible.

En accédant au site, l’url change. J’ajoute l’url donné dans le fichier /etc/hosts pour y avoir accès.

Voila, nous avons accès au site web. Il y a deux liens en haut de cette page, un pour se connecter et un autre pour s’enregistrer.

Je décide d’utiliser un autre logiciel pour découvrir des pages web et dossiers qui ne sont pas connus directement par cette page.

Avec ce logiciel, nous voyons une page intéressante: admin.php, mais celle ci n’est pas accessible.

Je m’inscrits sur le site pour voir « l’entièreté » du site web accessible en s’inscrivant.

En m’inscrivant j’ai accès au site, mais rien de vraiment intéressant. Malgré notre inscription, nous n’avons pas accès à la page admin.php, ce qui est normal car elle doit être normalement protégée pour un utilisateur lambda.

Je décide donc de me déconnecter et de regarder le code source des premières pages et en particulier la page d’inscription car c’est la seule avec la page d’inscription qui envoie des données au serveur.

En regardant le code source de la page d’inscription, je vois un champ caché nommé roleid. Ce champ caché nommé rôle peut peut être permettre de changer le rôle de l’utilisateur et lui permettre de devenir administrateur.

Après la création d’un nouvel utilisateur avec le roleid à 1, j’essaye d’accéder à la page admin.php et Bingo, nous y avons accès.

La page admin.php est une page de liste de taches à effectuer.

Toutes les taches ont étés effectuées sauf une.

Il est écrit de fixer les issues sur le site dev-staging-01.academy.htb

J’ajoute ce nom de domaine dans le fichier /etc/hosts

Une fois ajouté, j’ai accès a cette page ci dessous.

Cette page est une page de debug d’un framework, en particulier laravel.

Une rapide recherche sur google me montre que le mode debug est activable via le fichier .env contenu dans le dossier du site. la variable d’environnement APP_DEBUG est à true. Cette variable est très utilise lors du développement d’un site mais doit être désactivé lors de la mise en production d’un site.

Le style de la page après recherche me fait penser à une version 5.X de Laravel.

Une recherche sur google nous montre qu’une faille de type RCE (Remote Code Exécution) existe avec le framework Laravel en version 5.X. Celle ci est disponible sur le logiciel Metasploit. Lançons le et regardons de quoi avons nous besoin pour lancer cette exploit.

2 – Exploitation de la faille

Pour que l’exploit fonctionne, nous avons besoin de l’APP_KEY, de l’adresse ip de la cible et pour ce cas du VHOST, de plus nous avons besoin de notre adresse ip pour le reverse Shell.

Nous avons accès a tout, y compris l’APP_KEY qui se trouve dans la page d’erreur.

Une fois les options entrées, je lance l’exploit.

Et voila, je suis connecté à la machine. Je n’ai cependant pas encore les droits pour exploiter pleinement la machine.

J’ai dans la page d’erreur du framework accès au mot de passe de la base de données, j’essaye de me connecter à la base de données mysql, malheureusement sans succès.

Après quelques recherches sur les dossiers web, j’ai trouvé un fichier .env. En le regardant de plus près, il y a un mot de passe en clair sur ce fichier.

Comme le mot de passe se trouve dans la case db pour base de données, j’ai réessayé de me connecter à la base de données, sans succès.

Peut être que le mot de passe nous permettra de nous connecter au compte de l’un des utilisateurs.

3 – Escalade de Privilège

Pour cela je décide d’aller voir dans /etc/passwd et dans le dossier /home pour voir les différents utilisateurs sur cette machine.

Avec ces informations, je crée un fichier contenant une liste des utilisateurs présents sur la machine.

Avec un logiciel appelé Hydra, je vais pouvoir tester ce mot de passe avec la liste des utilisateurs pour voir si je peux me connecter sur la machine avec un des utilisateurs présents.

Bingo, l’utilisateur cry0l1t3 a ce mot de passe.

Je me connecte avec cet utilisateur sur le ssh de cette machine.

Je suis connecté au compte cry0l1t3 et j’ai accès au premier flag nous permettant de valider sur le site hack the box notre progression sur la machine.

En lançant la commande id, nous voyons que l’utilisateur est dans le groupe adm.

En effectuant une recherche sur google, nous voyons que le groupe adm permet à ses membres de lire le contenu des fichiers journaux. Allons sur /var/log et enquétons.

Nous voyons ici différents fichiers de log, en les regardant de plus près, nous voyons qu’a l’intérieur de ces fichiers le paramètre comm enregistre des commande linux, en essayant de trouver des commandes pour se connecter en mysql ou en sudo, nous voyons qu’une commande su est entrée dans un fichier. Le data est une donnée envoyée en Hexadécimal.

Grace à un site, nous voyons le mot de passe.

Encore une fois essayons avec le logiciel Hydra avec ce mot de passe spécifique.

Bingo, l’utilisateur mrb3n utilise ce mot de passe.

En essayant la commande sudo -l pour voir les logiciels utilisés en sudo par l’utilisateur, je vois que le logiciel « composer » est autorisé à être utilisé en sudo sans demande de mot de passe. Une rapide recherche sur le web nous montre une commande permettant de lancer un Shell en root.

Et voila, nous voila administrateur de la machine.

J’espère que ce write up vous a plu. J’essayerai d’en écrire dès que je le peux.

Merci à tous de m’avoir lu

Sese

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.