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

On ajoute ensuite l'IP à notre fichier /etc/hosts :

Analyse du port 80 (HTTP)

Analyse du port 80 (HTTP)

Détection des technologies

Avec wappalyzer, on identifie que le site utilise Flask et Python

Local File Inclusion (LFI)

Le site propose une option pour commander un voyage, qui retourne un fichier JSON.

En interceptant la requête avec Burp Suite, on remarque un paramètre download qui permet d'accéder aux fichiers :

On teste une inclusion de fichier :

Avec curl :

On récupère les utilisateurs système, dont developer.

Fuzzing des sous-domaines

On recherche des sous-domaines avec Gobuster :

On découvre dev.titanic.htb, qu'on ajoute à /etc/hosts.

Exploitation de Gitea

Sur le sous-domaine dev, on trouve une instance Gitea.

Création d'un utilisateur

On trouve un mot de passe stocké en clair (base de donnée):

En explorant la base SQLite de Gitea, on trouve son chemin :

/home/developer/gitea/data/gitea/gitea.db

On s'y connecte :

Puis on extrait les hashs des mots de passe :

Bruteforce des Salted Hashes

Hash:

Salt:

On utilise un script Python pour casser le hash :

- Le mot de passe trouvé est 25282528.

On se connecte en SSH :

Flag user.txt :)

Élévation de privilèges

Cron Job - Exploitation d'ImageMagick

Dans /opt/, on trouve un script script.sh exécuté automatiquement

Ce script shell commence par se déplacer dans le dossier /opt/app/static/assets/images, puis il vide le fichier metadata.log s'il existe. Ensuite, il recherche tous les fichiers .jpg dans ce répertoire et utilise la commande identify d'ImageMagick pour extraire leurs métadonnées (taille, format, profondeur de couleur, etc.). Ces informations sont ensuite enregistrées dans metadata.log. Ainsi, ce script permet de générer un fichier de métadonnées mis à jour pour toutes les images JPG présentes dans le dossier spécifié.

Le script utilise ImageMagick, une version vulnérable.

Exploitation via LD_PRELOAD

On crée un fichier a.c :

Compilation :

On l'ajoute au répertoire surveillé et exécutable par ImageMagick. Ensuite, on exécute :

Flag root.txt :)

Mis à jour

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