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

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:

Port 80 - HTTP

En accédant au site http://cat.htb, on trouve un formulaire d’enregistrement.

On remarque également une fonctionnalité de vote.

Fuzzing des répertoires

On lance gobuster pour découvrir des chemins cachés :

Cela révèle plusieurs fichiers intéressants, notamment un répertoire .git.

Dump du dépôt Git

On utilise git-dumper pour récupérer le contenu du dépôt :

En inspectant le code source, on identifie une vulnérabilité SQL ainsi qu’une possibilité de XSS stockée.

Vulnérabilité XSS

L’application accepte les champs nom d’utilisateur et email sans filtrage approprié. Cela permet l’injection de scripts malveillants.

Payload XSS

On crée un utilisateur avec le nom suivant :

Réception du cookie admin

On écoute sur le port 8081 :

Une fois le cookie capturé, on obtient la session de l’administrateur :

On modifie notre cookie de session pour celui de l’admin et accédons à la console d'administration.

Injection SQL (SQLite)

Avec un accès admin, on lance sqlmap sur un formulaire vulnérable

Récupération des hashes

On obtient les hashs des mots de passe des utilisateurs. Voici quelques exemples :

Crack des mots de passe

À l’aide de CrackStation, on réussit à identifier le mot de passe de l’utilisateur rosa :

  • username : rosa

  • password : soyunaprincesarosa

Connexion SSH avec les identifiants récupérés :

Pivoting User Axel

Enumeration LinPEAS:

Rosa est dans le groupe adm, accès à:

Identifiants trouvés :

  • Username: axel

  • Password : aNdZwgC4tI9gnVXv_e3Q

Flag user.txt :)

Escalade de privilège

Découverte de ports internes :

  • Node.js (port 3000)

  • SMTP (587, 25)

Services identifiés

Redirection de ports

Vulnérabilité XSS sur Gitea (v1.22.0)

Sur http://localhost:3000Gitea accessible.

Connexion avec les identifiants d’Axel.

Vulnérabilité XSS connue.

On crée un projet avec une description contenant :

  • Résultat:

Mail intercepté via LinPEAS

Contenu d’un email :

  • jobert@localhost doit vérifier le dépôt Gitea

On envoie un lien XSS contenant un script d’exfiltration qui lit le contenu de la page index.php du dépôt Gitea, l’encode en Base64, puis l’envoie vers notre serveur web

Via notre serveur web

Contenu exfiltré (base64 décodé) :

  • $valid_username = 'admin';

  • $valid_password = 'IKw75eR0MR7CMIxhH0';

Escalade root

Il y a une réutilisation d'identifants pour l'user root

Flag root.txt :)

Mis à jour

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