Haystack 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 (9200)

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:

Analyse des Services Exposés

Port 80 - Fuite d'Information

Extraction des Métadonnées avec ExifTool

En analysant l'image trouvée sur le serveur avec strings, nous découvrons une chaîne encodée en base64 :

bGEgYWd1amEgZW4gZWwgcGFqYXIgZXMgImNsYXZlIg==

Une fois décodée, cette chaîne révèle le message suivant : "la aguja en el pajar es 'clave'".

ElasticSearch - Fuite d'Informations

Le port 9200 héberge ElasticSearch en version 6.4.2.

Elasticsearch est un moteur de recherche et d'analyse en temps réel, utilisé pour indexer et rechercher rapidement de grands volumes de données. Il s'intègre dans le stack ELK pour offrir des fonctionnalités avancées de visualisation et d'analyse des données.

En accédant à l'URL /_cat/indices?, nous obtenons une liste d'indices avec leurs UUID. Pour extraire le contenu d'un indice, nous utilisons l'URL suivante :

http://haystack.htb:9200/<index>/_search?pretty=true&size=1000

Filtrage des Données avec Curl

En utilisant l'indice quotes et en filtrant sur le mot clé clave, nous trouvons des informations pertinentes :

Décodage des Chaînes Encodées en base64

Nous obtenons deux chaînes encodées en base64 qui, une fois décodées, révèlent les informations d'identification :

Utilisateur : security Mot de Passe : spanish.is.key

Connexion SSH

Avec les identifiants récupérés, nous nous connectons à la machine cible via SSH et accédons à l'utilisateur :

Flag user.txt :)

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 :

Kibana (Redirection de port)

Étape 1 : Identification des ports ouverts

Tout d'abord, nous observons les ports ouverts en interne en utilisant la commande suivante :

Nous remarquons que le port 5601 attire notre attention.

En effectuant une requête curl sur ce port, nous obtenons une page HTML de Kibana :

Kibana est un logiciel de tableau de bord de visualisation de données disponible immédiatement pour Elasticsearch

Étape 2 : Redirection de port pour l'accès à Kibana

Nous allons rediriger le port interne 5601 du serveur vers notre machine locale pour y accéder via notre navigateur. Cette redirection peut être réalisée via SSH avec la commande suivante :

Cela redirige le port local 5601 de la machine cible vers le port 5601 de notre propre machine, permettant un accès direct

Étape 3 : Vérification de la version de Kibana

En accédant à http://localhost:5601/api/status, nous observons le numéro de version de Kibana : 6.4.2. Cette version est vulnérable à une attaque Local File Inclusion (LFI), identifiée sous CVE-2018-17246.

Kibana Exploitation (CVE-2018-17246)

Étape 4 : Exploitation de la vulnérabilité

Pour exploiter cette vulnérabilité, nous allons créer un fichier JavaScript pour obtenir un shell inversé. Dans le répertoire /tmp de la machine cible, créez un fichier nommé rev.js avec le code suivant :

Ce script établira une connexion avec votre machine sur le port 443 pour ouvrir un shell.

Étape 5 : Redirection de flux vers le fichier

Ensuite, redirigez le flux vers le fichier /dev/shm/rev.js avec la commande suivante :

Étape 6 : Écoute sur le port pour le shell inversé

Sur votre machine, démarrez un écouteur sur le port 443 pour capter le shell inversé :

Une fois connecté, vous aurez un shell sur la machine cible, permettant une élévation de privilèges.

Abusing Logstash

On recherche tous les fichiers accessibles avec l'utilisateur kibana :

En accédant à Logstash, on découvre trois fichiers de configuration :

  • filter.conf

  • input.conf

  • output.conf

"message" => "Ejecutar\scomando\s:\s+%{GREEDYDATA:comando}"

Pour exploiter cette vulnérabilité, on crée un fichier nommé logstash_exec dans le répertoire /opt/kibana/ avec le contenu suivant :

Ensuite, on écoute sur le port 4444, et on obtient un accès root.

Flag root :)

Mis à jour

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