Stratosphere HackTheBox (Writeup)
Skills:
Apache Struts Exploitation (CVE-2017-5638)
Python Library Hijacking (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 (22,80,8080)
Utilisation de la fonction extractPorts pour afficher de manière synthétique les ports ouverts et les copier dans le presse-papiers.

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"


Exploration des services web (Ports 80 et 8080)
Les ports 80 et 8080 hébergent le même site web.

Fuzzing avec Gobuster
Nous lançons Gobuster pour rechercher des répertoires intéressants
Nous découvrons les routes suivantes :
/manager- Interface Tomcat Manager/monitoring- Section de monitoring

Manager - Tomcat :

Monitoring:

Apache Struts Exploitation (CVE-2017-5638)
Exploration du répertoire Monitoring
En tentant de nous inscrire, nous obtenons un message d'erreur. Nous observons également une extension .action, indiquant potentiellement une application basée sur Apache Struts

Nous utilisons struts-pwn.py pour tester l'exécution de commandes à distance :
La commande fonctionne, confirmant la vulnérabilité.

Shell inversé
Mise en écoute avec Netcat :
Création d'un fichier
index.htmlcontenant notre reverse shell :
Hébergement du fichier avec un serveur web Python :
Exécution du reverse shell via l’exploit :
Malheureusement, cette approche échoue.
Extraction d'informations sensibles
Nous listons les fichiers sur le serveur :

Nous découvrons un fichier db_connect. En l'affichant, nous obtenons des identifiants :

Les informations récupérées des identifant de mysql :
user: ssn_admin / admin
pass=AWs64@on*& / admin

Extraction info - mysqlshow
Enumération des bases de données
Nous utilisons mysqlshow pour lister les bases accessibles avec l'utilisateur admin en exploitant une vulnérabilité Struts via struts-pwn.py :

Cela nous permet d'identifier la base de données users.
Enumération des tables
Ensuite, nous listons les tables de la base users :

Enumération des colonnes et extraction des identifiants
Nous listons maintenant les colonnes de la table accounts et tentons d'extraire son contenu

Nous obtenons les informations suivantes :
Nom d'utilisateur :
richardMot de passe :
9tc*rhKuG5TyXvUJOrE^5CK7k

Nous utilisons les informations trouvées pour nous connecter en SSH sur la machine cible :

Flag user.txt :)

Élévation de privilèges
Python Library Hijacking Privilege Escalation
On commence par exécuter la commande suivante pour lister les droits sudo :

On remarque que nous avons la permission d'exécuter un script Python en tant que root :

En analysant le script /home/richard/test.py, on observe qu'il importe un module sans spécifier son chemin absolu, par exemple :
Ensuite, nous exécutons le script en tant que root :
Une fois le script lancé, notre version malveillante de
hashlib.pyest chargée, exécutant ainsi un shell avec les privilègesroot.

Flag root.txt :)


Mis à jour
Ce contenu vous a-t-il été utile ?