Nunchucks HackTheBox (writeup)
Skills:
NodeJS SSTI (Server Side Template Injection)
AppArmor Profile Bypass (Privilege Escalation)
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 extractport : Utilisation de la fonction extractport 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 443 - HTTPS

Nous trouvons un panneau de connexion, mais aucun identifiant connu.

Fuzzing des VHosts - Gobuster
Nous effectuons un fuzzing des sous-domaines pour identifier d'éventuels services cachés :

Nous trouvons le sous-domaine store.nunchucks.htb.

Vulnérabilité SSTI (Node.js)
Nous remarquons une fonctionnalité permettant d'entrer un email pour s'abonner à une newsletter. La réponse du serveur affiche directement notre entrée, ce qui suggère une possible Server-Side Template Injection (SSTI).


Test de la vulnérabilité
Nous interceptons la requête avec Burp Suite et testons une SSTI classique :

Si la réponse affiche 81, alors l'application est vulnérable, ce qui est le cas ici.

Lecture de /etc/passwd
/etc/passwdNous utilisons le payload suivant pour afficher le contenu de /etc/passwd :

Récupération de l'utilisateur courant
Nous obtenons david.

Reverse Shell via SSTI (Node.js)
Démarrage de l'écoute sur le port 4444 :
Envoi du payload de reverse shell :
Accès à la machine cible

Flag user.txt

Traitement de la terminal
Élévation de privilègeS
Exploitation des Capabilities sur Perl
Nous listons les capabilities disponibles :
Nous remarquons que perl dispose de permissions particulières.

Exécution d'une commande en tant que root
Nous obtenons root.

contournement d'AppArmor

Un binaire /usr/bin/perl est restreint par AppArmor

Nous exploitons un bug connu d'AppArmor pour contourner la restriction en créant un script :

Flaf root.txt :)


Mis à jour
Ce contenu vous a-t-il été utile ?
