LinkVortex HackTheBox (Writeup)
Skills:
Subdomain Enumeration
Extracting Information from .git Directory (Git-Dumper)
Information Leakage
LFI Exploitation (Ghost)
Abusing Sudo Privileges via Script (Double Symbolic Link)
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.

Configuration du fichier /etc/hosts
Nous ajoutons l'adresse IP de la cible à notre fichier /etc/hosts pour faciliter les résolutions DNS locales.

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,80)

Port 80

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" :

Reconnaissance des Répertoires

Panel Admin - Ghost

Découverte d'un Sous-Domaine
Nous recherchons des sous-domaines associés à linkvortex.htb en utilisant gobuster.
Nous trouvons le sous-domaine dev.linkvortex.htb. Voici la commande pour effectuer cette recherche :

Une fois le sous-domaine trouvé, nous l'ajoutons au fichier /etc/hosts pour faciliter l'accès :


Recherche de Répertoires dans le Nouveau Sous-Domaine
Nous effectuons une recherche des répertoires existants sur le sous-domaine dev.linkvortex.htb à l'aide de gobuster :
Nous découvrons le répertoire .git, ce qui pourrait indiquer un dépôt Git exposé.


Extraction de Fichiers avec Git-Dumper
Nous utilisons l'outil git-dumper pour extraire les fichiers du répertoire .git et les analyser :


Cela nous permet d'obtenir des fichiers sensibles, dont un fichier de test situé dans ghost/core/test/regression/api/admin/authentication.test.js, où nous trouvons un mot de passe :

Mot de passe trouvé :

Connexion au Panel Admin Ghost
Avec ce mot de passe, nous tentons de nous connecter au panneau d'administration de Ghost en utilisant l'adresse email [email protected] :
Email :
[email protected]Mot de passe :
OctopiFociPilfer45

Vulnérabilité GHost - LFI

Lors du scan des ports, nous avons identifié que la version de Ghost utilisée (v5.58) est vulnérable à une vulnérabilité LFI (Local File Inclusion), identifiée par la CVE-2023-40028. Pour exploiter cette vulnérabilité, nous téléchargeons le script d'exploitation et modifions l'URL cible pour qu'elle pointe vers notre instance de Ghost.

Voici la commande pour exécuter l'exploit :
Nous obtenons alors une shell et pouvons afficher des fichiers, comme /etc/passwd.

Accès à une Route Interne via LFI
Dans le répertoire .git, nous avons repéré un fichier Docker qui nous fournit une route interne permettant d'accéder à une session : /var/lib/ghost/config.production.json.

Nous utilisons LFI pour lister les fichiers et trouvons les identifiants d'un utilisateur nommé Bob :

Identifiants de Bob :
Utilisateur :
[email protected]Mot de passe :
fibber-talented-worth
Nous nous connectons à la machine cible en SSH en utilisant les identifiants de Bob :
Flag user.txt :)
Nous utilisons le mot de passe fibber-talented-worth pour nous connecter et accédons au fichier user.txt, où nous trouvons le flag.

Flag root.txt :)
SUDO - Clean_synLink.sh
Nous recherchons une vulnérabilité permettant une élévation de privilèges. Nous découvrons un fichier avec des permissions SUID.

Analyse du Script de Nettoyage de Symlink
Nous analysons un script nommé
clean_symlink.sh, qui vérifie si le fichier fourni en argument est un symlink pointant vers un fichier.png. Si le symlink pointe vers un fichier critique, le script le supprime. Sinon, il déplace le symlink dans le répertoire/var/quarantined/. Si la variable d'environnementCHECK_CONTENTest définie surtrue, le script tente de lire le contenu du fichier.
Voici la commande pour créer les symlinks nécessaires à l'exploitation :
Ensuite, nous exécutons le script avec la commande suivante pour obtenir le flag root :
Nous obtenons ainsi le flag root.txt.


Mis à jour
Ce contenu vous a-t-il été utile ?