Chemistry HackTheBox (Writeup)

Reconnaissance:

Création de l'espace de travail :

Nous établirons notre espace de travail en créant trois dossiers pour stocker les contenus importants, les exploits et les résultats de la reconnaissance à l'aide de Nmap.

Vérification de la Connectivité VPN

Vérification de la connexion VPN pour assurer une communication stable avec la machine cible.

Recherche des ports ouverts avec Nmap :

Exploration des ports ouverts et exportation dans le fichier "allPorts" dans le répertoire Nmap:

Analyse des ports ouverts avec extractPorts:

Utilisation de la fonction extractPorts pour afficher de manière synthétique les ports ouverts et les copier dans le clipboard (22,5000)

Scan de la version des ports avec Nmap:

Utilisation de Nmap pour scanner la version des ports et extraction des informations dans le fichier "targeted" :

Pour résoudre les noms de domaine en adresses IP via DNS, on insère dans le fichier /etc/hosts le nom de domaine associé à son adresse IP:

Premièrement, nous nous inscrivons sur le site cible.

Vulnérabilité File Upload Abuse (.cif file)

Le site nous demande de téléverser un fichier .CIF.

Tentative cmd.php

Pour tous les scénarios ci-dessous, nous allons utiliser le fichier PHP suivant, nommé "cmd.php", qui nous permettra d'injecter des commandes au niveau du système du serveur :

Cependant, nous rencontrons un code d'erreur. "Method Not Allowed"

Nous interceptons la requête avec BurpSuite.

Nous essayons plusieurs types d'exploitations (validation côté client, extension personnalisée avec .htaccess, le nom du fichier devant contenir "cif", vérification du type de fichier, conversion en MD5, etc.), mais aucun n'a fonctionné.

CIF Code Injection:

Après une recherche sur Internet, nous trouvons la possibilité d'injecter du code malveillant dans un fichier .cif.

Voici le contenu du fichier cmd.cif pour nous verser une revershell:

Nous nous connectons ensuite avec netcat (nc) sur le port 4444.

Élévation de privilèges :

Une fois que vous avez accès au serveur Linux, voici les commandes à effectuer pour le traitement en terminal :

Cela permettra de travailler de manière beaucoup plus efficace et surtout plus confortable.

Nous découvrons une base de données nommée database.db.

Exploration de la base de données :

Avec sqlite3, nous accédons au contenu de la base :

L'objectif est de trouver le mot de passe de l'utilisateur rosa.

Mots de passe déchiffrés en MD5 :

rosa:63ed86ee9f624c7b14f1d4f43dc251a5 -> unicorniosrosados

Nous nous connectons ensuite via SSH :

Flag User.txt:

Vulnérabilité LFI http Python 3.9

Si l'on utilise curl pour afficher le contenu du port interne web 8080, on remarque qu'une version vulnérable de Python 3.9 est en cours d'exécution, précisément aiohttp/3.9.1.

Lister le contenu de /etc/passwd

Nous pouvons lister le contenu du fichier /etc/passwd en utilisant la commande suivante :

Accéder à la clé SSH privée de root

Étant donné que l'on peut parcourir les fichiers du système, nous allons maintenant tenter de récupérer la clé SSH privée de l'utilisateur root :

Flag root :)

Connexion SSH avec la clé récupérée

Une fois la clé récupérée, nous pouvons nous connecter en SSH à la machine cible en utilisant la commande suivante :

Mis à jour

Ce contenu vous a-t-il été utile ?