NodeBlog HackTheBox (WriteUp)

Reconnaissance

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:

Scan de la version des ports avec Nmap 22,5000

Utilisation de Nmap pour scanner la version des ports et extraction des informations dans le fichier "targeted" :

Analyse du Port 5000 - Application NodeJS

  • Un panneau d'administration est découvert.

  • L'utilisateur "admin" est valide.

Vulnérabilité NoSQL Injection (Bypass d'authentification)

Interception de la requête avec Burp Suite.

Test des injections classiques :

Cela ne fonctionne pas.

Conversion en JSON et modification du Content-Type en application/json :

Résultat : Authentification réussie !

Exploitation de la vulnérabilité XXE Injection

Upload d'un fichier TXT : refusé, seuls les fichiers XML sont acceptés.

Format requis :

Envoi d'un fichier XML contenant une entité externe pour lire /etc/passwd :

Résultat : Le contenu de /etc/passwd est affiché.

  • Découverte d'un utilisateur admin.

Injection pour lire /opt/blog/server.js et identifier les identifiants stockés.

Exploitation de la désérialisation NodeJS

  • Découverte d'une fonction qui désérialise les cookies de session.

Création d'un Payload:

Écoute du trafic ICMP avec :

  • Url Encode:

Construction d'une RCE via URL Encoding et injection dans les cookies.

RCE - Vulnérabilité Deserialization (nodejs)

Création d'un script de reverse shell index.html :

Démarrage d'un serveur HTTP :

Mise en écoute :

Envoi de la charge utile :

  • Url Encode:

Résultat : Accès shell obtenu.

Flag user.txt :)

Élévation de Privilèges

Mongo Database Enumeration

Connexion à la base de données MongoDB (port 27017 ouvert) :

  • user: admin

  • password : IppsecSaysPleaseSubscribe

Sudo (ALL:ALL)

Vérification des privilèges sudo :

Résultat : l'utilisateur admin peut exécuter sudo su sans mot de passe.

Passage en root :

Flag root.txt :)

Mis à jour

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