Tabby 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

Port 80:

Recherche de répertoires :

Nous utilisons Gobuster pour rechercher des répertoires sur le site:

  • Résultats : assets, files, et server-status.

Recherche sous-domaines:

Vulnérabilité LFI:

Accédez au fichier vulnérable new.php via une variable ?file dans le dossier statement.

Test de l’inclusion de fichier local (LFI) :

http://megahosting.htb/news.php?file=../../../../etc/passwd

  • Résultat : Accès au fichier /etc/passwd, révélant deux utilisateurs : ash et root.

Tentative d'accès à la clé SSH privée d’Ash :

?file=../../../../../../../home/ash/.ssh/id_rsa

  • Résultat : Accès refusé.

Recherche de ports internes via le fichier /proc/net/tcp pour identifier les services cachés :

Recherche de ports internes via le fichier /proc/net/tcp pour identifier les services cachés :

Résultat : Découverte du port interne 34650

Exploitation du Virtual Host Manager de Tomcat (Port 8080)

Accès à Tomcat via le port 8080 et recherche des informations d’authentification. Par défaut, celles-ci sont stockées dans /etc/tomcat9/tomcat-users.xml ou usr/share/tomcat9/etc/tomcat-users.xml

Credentials trouvés :

username = tomcat

password = $3cureP4s5w0rd123!

Tentative d'accès à /manager/html renvoyant une erreur 403.

  1. Alternative via /host-manager/html, mais incapacité de créer une application avec un fichier .war.

Exploitation du Text-Based Manager de Tomcat

Lister les applications en ligne de commande :

Création d'un fichier WAR pour Reverse Shell avec msfvenom :

Déploiement du fichier WAR via Curl :

Écoute pour la connexion reverse shell

Accès au reverse shell via l’URL http://megahosting.htb:8080/reverse.

Traitement du Terminal

Une fois que vous avez accès au serveur Linux, voici les commandes à effectuer pour le traitement en terminal

Cela permettra de travailler de manière beaucoup plus efficace et surtout plus confortable.

Élévation de privilège:

Exploration du dossier /var/www/html En examinant le contenu de ce dossier, nous découvrons un dossier files contenant un fichier de sauvegarde : 16162020_backup.zip.

Transfert du fichier .zip vers la machine locale

Pour faciliter l'analyse, nous transférons le fichier compressé vers notre machine locale en démarrant un serveur HTTP avec Python :

Brute Force .zip File:

Décompression du fichier .zip - Bruteforce du mot de passe Le fichier .zip est protégé par un mot de passe.

Extraction du hash avec zip2john :

Nous allons donc utiliser zip2john pour extraire le hash

Cracking du mot de passe avec john :

Résultat : Mot de passe trouvé - admin@it.

Décompression et analyse du contenu Utilisez le mot de passe pour décompresser l'archive :

La décompression crée un dossier var contenant peu de fichiers utiles. Cependant, le mot de passe admin@it fonctionne également pour l’utilisateur ash sur la machine cible.

Flag User.txt

LXD Exploitation:

Identification de l'appartenance de l'utilisateur ash au groupe lxd :

En vérifiant les groupes auxquels l'utilisateur ash appartient, on remarque qu'il fait partie du groupe lxd, ce qui permet d'exploiter LXC pour obtenir des privilèges root.

Téléchargement et préparation de l'exploit :

Utilisez searchsploit pour obtenir le script d'exploitation correspondant à la vulnérabilité LXC (CVE-2020-16941)

Ce script permet d'exploiter la vulnérabilité LXC pour exécuter des commandes avec des privilèges élevés.

Contenu du script d'exploitation (46978.sh) :

  • Le script permet de créer un conteneur LXC avec des privilèges élevés, ce qui nous permet d'obtenir un accès root sur la machine cible.

Téléchargement du fichier d'image Alpine et du script:

Clonez le repository contenant les fichiers nécessaires à l'exploitation et transférez-les à votre machine via un serveur HTTP local.

Démarrez un serveur HTTP local pour servir le fichier et le script

Sur votre machine cible, téléchargez le script et le fichier d'image :

Mise à jour du PATH :

Adaptez le PATH pour s'assurer que les commandes LXC sont correctement interprétées.

Exécution du script d'exploitation

Exécutez le script avec le fichier d'image Alpine téléchargé pour exploiter la vulnérabilité et obtenir un shell root :

Pour sortir du conteneur, il suffit de se rendre dans le répertoire /mnt/root.

Flag root :)

Mis à jour

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