Union 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 (80)

Port 80 - HTTP

Énumération de Fichiers

avec gobusteron va faire une enumeration de fichier avec extensions php

il y a deux fichiers qui ne sont pas accesible depuis l'exterrieurs (config.php et firewall.php)

Index.php si on ajoute un nom dans le formulaire il s'afiche a la reponse

le fichier challenge nous demande une flag

Vulnérabilité SQLI - UNION Injection

Nous interceptons la requête avec Burp Suite et altérons la variable player :

Le nom de la base de données est november.

Pour lister toutes les bases de données :

Résultat : mysql,information_schema,performance_schema,sys, november

Lister les tables de november :

Lister les colonnes de la table players :

Colonnes trouvées : player

Extraction des Données Utilisateur

Players trouvées : ippsec,celesian,big0us,luska,tinyboy

Extraction du flag :

  • Flag trouvé : UHC{F1rst_5tep_2_Qualify}

SQLI - Read Files

Lecture de /etc/passwd :

Nous trouvons un utilisateur uhc.

Flag user.txt

Lecture de user.txt :

Lecture de config.php, nous trouvons les identifiants de la base de données :

Lecture de firewall.php, nous comprenons que soumettre le flag ouvre le port SSH :

Nous soumettons le flag : UHC{F1rst_5tep_2_Qualify}.

Le port 22 est maintenant ouvert.

Connexion SSH

Nous utilisons les identifiants trouvés pour nous connecter :

Élévation de privilège

HTTP Header Command Injection - X-FORWARDED-FOR [RCE]

Si on observe le fichier firewall.php, on remarque qu'il récupère l'en-tête HTTP_X_FORWARDED_FOR et l'utilise avec sudo pour exécuter une commande :

Étant donné que cette variable est contrôlable via une requête HTTP, nous pouvons injecter une commande arbitraire.

rxploitation

Comme il s'agit d'un en-tête HTTP, nous pouvons injecter une commande, par exemple en utilisant curl pour contacter notre serveur web.

Mise en place d'un serveur web :

Commande d'injection avec curl :

Reverse Shell

Écoute sur le port 443 :

Commande pour obtenir un shell distant :

Une fois connecté, nous sommes l'utilisateur www-data.

Traitement Terminal

SUDO - (ALL:ALL)

Avec la commande suivante, nous vérifions les permissions sudo :

Si nous voyons que www-data peut exécuter n'importe quelle commande en tant que n'importe quel utilisateur ((ALL : ALL) ALL), nous pouvons alors exécuter un shell root avec :

Flag root.txt :)

Mis à jour

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