Titanic HackTheBox (WriteUp)
Skills:
Local File Inclusion (LFI)
Gitea Database Extraction
ImageMagick Exploit [ Privilege Escalation ]
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 fichiermetadata.logs'il existe. Ensuite, il recherche tous les fichiers.jpgdans ce répertoire et utilise la commandeidentifyd'ImageMagick pour extraire leurs métadonnées (taille, format, profondeur de couleur, etc.). Ces informations sont ensuite enregistrées dansmetadata.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
LD_PRELOADOn 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 ?