Jeeves 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 (80,135,445,50000)

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

Port 80 - HTTP

Le port HTTP redirige constamment vers une page error.html. Aucune autre information exploitable n'a été trouvée.

Port 445 - SMB

Nous tentons d'énumérer les partages SMB avec smbmap et smbclient :

Cependant, la session échoue avec l'erreur suivante :

Nous utilisons crackmapexec pour collecter des informations sur la machine :

Résultat :

  • OS : Windows 10 Pro 10586 x64

  • Nom de la machine : JEEVES

  • Domaine : Jeeves

Port 50000 - Jenkins

Nous lançons un scan de répertoires avec gobuster pour explorer le contenu du service HTTP :

Nous découvrons le répertoire /askjeeves

CMS - Jenkins

Jenkins - Exécution de scripts Groovy

Le CMS Jenkins est accessible et l'option Script Console est activée, ce qui nous permet d'exécuter des scripts Groovy.

Exemple de commande pour tester l'exécution :

Exploitation

Reverse Shell via Groovy Script Console

Pour obtenir un accès à distance, nous procédons comme suit :

  1. Mettre en écoute notre machine sur le port 443 :

  1. Exécuter le script suivant dans la console Groovy pour établir une reverse shell :

Flag user.txt :)

Élévation de privilèges

Méthode 1 : Crackage du fichier Keepass

Dans le répertoire Documents de l'utilisateur Kosure, nous trouvons un fichier avec l'extension .kdbx (fichier Keepass).

Transfert du fichier Keepass vers notre machine hôte Nous créons un serveur SMB depuis notre machine Linux pour transférer le fichier. Pour cela, nous utilisons smbserver.py :

Transfert depuis Windows Depuis la machine Windows, nous copions le fichier CEH.kdbx vers notre machine hôte :

Extraction du hash du fichier KDBX

Pour extraire le hash du fichier KDBX, nous utilisons l'outil keepass2john, qui fait partie de John the Ripper :

Crackage du hash

Nous utilisons John the Ripper pour effectuer une attaque par force brute sur le hash extrait, avec la liste de mots de passe rockyou.txt :

Le mot de passe découvert est :

  • moonshine1

Visualisation du contenu du fichier Keepass

Nous utilisons KeepassXC pour ouvrir et visualiser le contenu du fichier Keepass

Après avoir entré le mot de passe moonshine1, nous accédons à plusieurs mots de passe, dont un hash NTLM v2 pour l'utilisateur Administrator :

Vérification du hash NTLM v2 avec CrackMapExec

Nous vérifions si le hash correspond à un compte Administrator avec CrackMapExec :

Le hash est valide, et nous pouvons maintenant procéder à une attaque PassTheHash.

PassTheHash - PsExec

Nous utilisons PsExec pour nous connecter à la machine cible en utilisant le hash NTLM v2 découvert. Cela nous donne des privilèges administratifs

Nous avons maintenant un accès complet en tant qu'administrateur.

Méthode 2 : Exploitation du privilège SeImpersonatePrivilege

Nous avons constaté que l’utilisateur possède le privilège SeImpersonatePrivilege, ce qui le rend vulnérable à certaines techniques d'élévation de privilèges. La commande ci-dessous nous confirme la présence de ce privilège :

Pour exploiter cette vulnérabilité, nous utiliserons JuicyPotato, un outil bien connu pour abuser de ce privilège dans le contexte Windows.

Téléchargement des Outils Nécessaires

Démarrage d'un serveur SmbFolder sur notre machine d'attaque pour servir les fichiers:

Transfert des Fichiers vers la Machine Cible en utilisant Invoke-WebRequest:

Exécution de JuicyPotato pour l’Élévation de Privilège

Nous allons maintenant exécuter JuicyPotato pour obtenir une session privilégiée. La commande suivante lance JuicyPotato, qui exécute cmd.exe avec des privilèges élevés et initie une connexion vers notre machine d'attaque via Netcat :

Connexion à la Session Élevée

Pour intercepter la connexion, nous nous mettons en écoute sur le port 1234 :

Flag root - ADS

Les flux de données alternatifs (ADS) sont une fonctionnalité des systèmes de fichiers NTFS sous Windows qui permet d'associer plusieurs flux de données à un seul fichier. Ces flux supplémentaires peuvent contenir des informations cachées qui ne sont pas visibles lors de l'inspection traditionnelle du fichier. Nous allons exploiter cette fonctionnalité pour découvrir le flag root.

1. Vérification des flux de données alternatifs (ADS)

Nous commençons par vérifier si le fichier hm.txt situé sur le bureau de l'utilisateur Administrator contient des flux de données alternatifs. Pour cela, nous utilisons la commande suivante :

Cette commande liste tous les flux de données alternatifs associés au fichier hm.txt. Si un flux de données alternatif est présent, il sera affiché.

2. Visualisation du contenu d'un flux de données alternatif

Si nous trouvons un flux de données alternatif associé au fichier, nous pouvons afficher son contenu avec la commande suivante :

Cela nous permet de lire le contenu du flux root.txt et de récupérer le flag root :)

Mis à jour

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