Toolbox 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 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" :

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 21 (FTP)

Le port FTP est accessible avec l’utilisateur anonymous. Un fichier nommé docker-toolbox.exe y est présent. Ce fichier pourrait fournir des indices sur une éventuelle exploitation de Docker.

Docker-Toolbox est un ensemble d'outils utilisés pour gérer des conteneurs Docker sur des environnements plus anciens ou non compatibles avec Docker Desktop.

Port 443 (HTTPS)

Possibles utilisateurs :

  • Christine Rooster

  • Brandon Sharp

  • Connor Hodson

Après investigation, le site hébergé propose un panneau d’administration accessible via admin.megalogistic.com.

Vulnérabilité PostgreSQL Injection:

PostgreSQL est un système de gestion de base de données relationnelle orienté objet puissant et open source qui est capable de prendre en charge en toute sécurité les charges de travail de données les plus complexes.

Lors de la soumission de ces identifiants :

Une erreur SQL apparaît, indiquant une base PostgreSQL avec pg_query.

Exploitation

Testez un payload d'injection classique :

On obtient accès au panel Dashboard administrateur.

Interceptez les requêtes avec Burp Suite et utilisez des ressources comme HackTricks pour ajuster les injections.

Pour tester si l'injection permet l'exécution de commandes, utilisez :

;select pg_sleep(10);-- -

Si la réponse tarde 10 secondes, l'injection est exploitable.

Exécution de commandes

Voici un exemple pour obtenir une commande en ligne (RCE) :

Créez un fichier index.html contenant :

Lancez un serveur HTTP :

Configurez un listener :

Envoyez le payload :

Stabilisation du Terminal

Pour rendre le shell interactif et confortable :

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

Élevation de privilège:

Pivoting Docker

Lors de la phase de reconnaissance, nous avons identifié que notre machine Windows n'était pas directement accessible. Cependant, nous avons pu nous connecter à une machine Windows contenue dans un conteneur Docker, avec l'adresse IP 172.17.0.2 et la passerelle 172.17.0.1. Nous allons maintenant tenter de pivoter via ce conteneur pour escalader nos privilèges.

Vérification du port SSH

Premièrement, nous devons vérifier si le port SSH (22) est ouvert sur la passerelle Docker (172.17.0.1). Nous utilisons une simple commande pour cela :

Le port 22 est ouvert, ce qui signifie que nous pouvons tenter une connexion SSH à la machine dans le conteneur.

Connexion avec les identifiants par défaut Docker Toolbox

Les identifiants par défaut pour Docker Toolbox sont les suivants :

  • Utilisateur : docker

  • Mot de passe : tcuser

Nous tentons maintenant de nous connecter au conteneur via SSH en utilisant ces informations. Une fois connectés à la machine, nous remarquons que nous avons accès à la racine du conteneur avec l'utilisateur docker.

Exploration du système de fichiers

Dans le répertoire racine, nous trouvons un dossier nommé c, qui contient un sous-dossier users. À l'intérieur de users, il y a un dossier Desktop appartenant à l'utilisateur Administrator. Cela peut signifier que l'utilisateur docker dispose de privilèges suffisants pour accéder à des données sensibles de l'utilisateur Administrator, ce qui est une bonne piste pour l'élévation de privilèges.

Flag user.txt :)

Recherche du fichier user.txt (flag utilisateur)

Nous allons maintenant chercher le fichier user.txt, qui est souvent utilisé pour marquer l'accès réussi d'un utilisateur sur une machine. Utilisons la commande suivante pour rechercher ce fichier dans l'ensemble du système de fichiers :

Nous localisons le fichier user.txt dans un répertoire accessible, ce qui nous donne un premier indice de réussite dans notre exploitation.

Flag root.txt :)

Une fois le flag utilisateur trouvé, nous cherchons le fichier root.txt, qui est généralement situé dans le répertoire de l'utilisateur Administrator.

Mis à jour

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