Catégories
HackTheBox Machines

HTB{Jarvis}

Aujourd’hui, je me lance sur la machine Jarvis, classé Médium sur HTB.

Après un scan de port, 3 ports sont ouverts. Le port 22 ssh, le port 80 http et le port 64999 aussi http.

Le site en port 80 nous affiche un site appelé Stark Hotel.

Il a plusieurs pages. En les affichant je tombe sur un rooms-suites.php qui affiche une liste de chambres à louer.

En cliquant sur une de ces chambres, l’on est redirigé vers une page room.php avec un paramètre cod qui a pour valeur 1. En entrant une autre valeur, 2 par exemple, nous sommes redirigé vers une autre chambre.

Cela indique très certainement que la page room.php interroge une base de données avec comme paramètre cod qui doit être l’id de la chambre dans la base de données.

En entrant le symbole ‘ à la suite du chiffre, rien ne nous est affiché. Ce qui indique certainement qu’une injection SQL est possible.

En utilisant la commande Order by, il est possible de savoir combien de paramètres sont utilisés dans la page pour afficher les informations de la chambre.

Ici l’on voit qu’à 8, il ne nous affiche rien, donc il y a 7 paramètres utilisés.

Pour pouvoir afficher des informations utiles, nous allons remplacer l’identifiant valide par un identifiant invalide de sorte que la seule ligne restante après l’union sera la sortie de notre requête injectée.

Grâce a certaines commandes il est possible de connaître la version, l’utilisateur et la base de données utilisé. Ici la base de données s’appelle hôtel. L’utilisateur s’appelle DBadmin.

Comme nous arrivons à voir cela, il est surement possible de lire des fichiers à l’intérieur. Et peut être même d’en injecter. Ici je demande à lire le fichier /etc/passwd.

Avec une injection de code, il est possible de créer un fichier en php à la racine du serveur que nous pourrons utiliser pour avoir un reverse shell.

Et voila notre shell.

Premiere chose à faire pour élever nos privilèges. sudo -l.

Celui ci fonctionne et nous donne quelques informations utiles.

Un script en python peut être lancé avec l’utilisateur pepper sans mot de passe.

En regardant ce que contient ce script, on remarque que la fonction exec_ping vérifie que certains caractères ne sont pas entrés.

Heureusement pour nous, il ne vérifie pas tout. Grâce à cet oubli, on peut injecter une commande assez facilement.

Et nous voila avec l’utilisateur pepper.

Nous recommençons le sudo -l, sans succès.

Je décide de regarder les logiciels avec la permission SUID.

Le /bin/systemctl est vulnérable après une recherche sur GTFObins.

Pour cela je créé un fichier shell.sh qui est un payload pour un reverse shell.

Un autre fichier pwn.service qui servira à lancer le payload via le logiciel systemctl. Je modifie les droits du fichier shell.sh pour le rendre exécutable. Je lance un listener et je lance la commande.

Et voila, je suis root.

Laisser un commentaire

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