Union HackTheBox (Writeup)
Skills:
SQLI (SQL Injection) - UNION Injection
SQLI - Read Files
HTTP Header Command Injection - X-FORWARDED-FOR [RCE]
Abusing sudoers privilege [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 (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 ?