PermX 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.

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

Recherche de répertoires possibles avec Gobuster :

Utilisation de Gobuster pour scanner les répertoires possibles sur le site Web avec le fichier de liste de répertoires moyen.

Recherche de répertoires avec Gobuster:

Utilisez Gobuster avec une dictionnaire pour trouver des fichiers d'accès cachés.

Énumération des sous-domaine

Pour énumérer les sous-domaines d'un site web à l'aide de l'outil Wfuzz via la console, vous pouvez utiliser la commande suivante :

Assurez-vous de mettre à jour le fichier /etc/hosts pour inclure les sous-domaines découverts :

Vulnérabilité Chamilo (gestionnaire de contenu):

Chamilo présente une vulnérabilité, identifiée sous CVE-2023-4220, permettant l'exécution de code à distance (RCE). Pour exploiter cette faille, vous pouvez utiliser le script suivant disponible sur GitHub :

Clonez le dépôt GitHub :

  1. Effectuez une vérification pour voir si la vulnérabilité est présente sur la cible :

Webshell:

Si la vulnérabilité est présente, injectez un webshell PHP dans Chamilo :

Une fois le webshell injecté, vous pourrez exécuter des commandes sur la machine cible.

Reverse Shell:

Pour établir une connexion reverse shell et obtenir un accès à la machine, exécutez la commande suivante depuis votre terminal :

Ensuite, mettez-vous en écoute sur le port 4444 :

Élévation de privilèges:

Énumération du Système (LINpeas):

Nous utilisons Linpeas pour la reconnaissance des privilèges:

Découverte d'un nouvel utilisateur :

Pendant l'énumération, nous avons identifié un nouvel utilisateur nommé mtz.

Récupération d'un mot de passe :

Le mot de passe suivant a été trouvé :

Flag user.txt:

Sudoers:

En exécutant la commande sudo -l, on découvre que nous avons la possibilité d'exécuter un script en tant que root.

Ce script Bash modifie les permissions d'accès d'un utilisateur sur un fichier spécifique en utilisant les ACL, après avoir vérifié la validité du chemin et que la cible est bien un fichier.

Finalement, accordons à l'utilisateur mtz les droits de lecture et écriture sur le fichier

Une erreur se produit car le fichier doit être situé dans notre répertoire /home/mtz

Pour résoudre une solution de contournement pourrait être de créer un lien symbolique d'un fichier système vers le répertoire /home/mtz/ et d'exécuter le script sur ce lien.

Nous devons modifier le fichier "sudoers_link", ce qui mettra à jour le fichier sudoers, pour donner tous les droits à l'utilisateur mtz.

Flag root : )

Mis à jour

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