HTB Academy writeup
HTB-fr

HTB Academy [FR]

HTB Academy

Introduction

HTB Academy est une machine simple à pénétrer, idéale pour un débutant.
Nous avons un site web fonctionnant sur le port 80 où nous pouvons trouver une vulnérabilité de base dans l’enregistrement.
Après avoir changé le paramètre d’identification du rôle lors de l’enregistrement, le panneau d’administration est accessible et nous donne plus d’informations.

Depuis le panneau d’administration, nous constatons qu’il y a une version de test du site web qui tourne sur un autre hôte virtuel.
Nous pouvons alors constater sur la page web de cet hôte virtuel qu’il tourne sous Laravel et nous obtenons également la APP_KEY.
Après quelques recherches, nous trouvons une vulnérabilité RCE (Remote Code Execution) sur Laravel lorsque nous avons l’APP_KEY. Nous pouvons alors obtenir un shell distant et trouver le premier mot de passe utilisateur dans le fichier .env du domaine principal.

Après cela, nous voyons que le premier utilisateur est un membre du groupe ADM, ce qui signifie qu’il peut accéder aux journaux à /var/log.
Dans un certain journal d’audit, nous pouvons trouver le mot de passe du second utilisateur au format hexadécimal.

Le deuxième utilisateur est sudoer et peut exécuter le composer en tant que root.
Une recherche rapide sur gtfobins nous donne un moyen d’obtenir un shell en tant que root en utilisant le composer.

Dénombrement

Commençons par un balayage rapide avec nmap

nmap scan HTB Academy

2 ports sont ouverts, le port ssh n’accepte pas la connexion anonyme, mais il ne nécessite pas de clé, nous l’utiliserons plus tard pour nous connecter aux utilisateurs lorsque nous aurons leurs mots de passe.

Pieds de page

Un serveur web fonctionne sur le port 80 ; il est nécessaire d’ajouter l’adresse IP de la machine au fichier /etc/hosts pour accéder au site web academy.htb.

Une fois cela fait, nous pouvons enregistrer un nouvel utilisateur et nous connecter à l’application web, rien d’intéressant sur l’application web elle-même.


En cherchant dans les chemins habituels, on trouve le chemin academy.htb/admin.php. Mais nous n’avons pas la permission d’y accéder.

Exécutons le processus d’enregistrement d’un nouvel utilisateur en passant par Burp.

Apparemment, un paramètre roleid est défini par défaut à 0 lors de l’enregistrement. Nous pouvons donc essayer de le mettre à 1 et de faire suivre la requête.

Nous pouvons alors nous connecter à la page academy.htb/admin.php.

Il y a un hôte virtuel de staging sur dev-staging-01.academy.htb, ajoutons-le au fichier /etc/hosts et accédons-y.
Nous pouvons aussi noter les deux chaînes de caractères : cry0l1t3, mrb3n qui peuvent être des noms d’utilisateurs potentiels, pour plus tard.

Sur l’hôte virtuel, nous apprenons que le site web tourne sous Laravel et nous avons l’APP_KEY du site web de la mise en scène.

Premier utilisateur

Lancez searchsploit pour Laravel

Une exécution de commande à distance est disponible mais je n’ai trouvé qu’un code d’exploitation utilisant metasploit, alors démarrons la console du framework metasploit.

Voici les options pour lancer le script metasploit, n’oubliez pas de régler le VHOST et l’APP_KEY.

Après avoir réalisé l’exploit, nous sommes l’utilisateur www-data.

Nous pouvons naviguer vers le dossier /var/www/html/academy.

Et dans le fichier .env, on peut trouver un mot de passe.

Nous pouvons nous connecter à l’utilisateur précédemment trouvé cry0l1t3 via ssh en utilisant ce DB_PASSWORD.

Second utilisateur

L’utilisateur ne peut pas exécuter sudo mais il est membre du groupe adm, ce qui signifie qu’il a accès aux fichiers journaux dans /var/logs.

Après avoir exploré les journaux pendant longtemps en utilisant grep, nous pouvons constater qu’un utilisateur a exécuté la commande su.

En mettant les données dans cyberchef, on sait qu’elles sont chiffrées en hexadécimal et que la valeur des données est mrb3n_Ac@d3my!

Nous pouvons alors nous connecter à l’utilisateur mrb3n avec le mot de passe mrb3n_Ac@d3my !

Root

L’utilisateur mrb3n peut exécuter le composer en tant que root, recherchons ce binaire sur gtfobins.

En exécutant cette commande, nous obtenons l’accès à root et au drapeau.

Si vous avez une question concernant cette machine, n’hésitez pas à laisser un commentaire ci-dessous.

Laisser un commentaire

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