
PoC pour CVE-2024-23997
Une preuve de concept pour la vulnérabilité CVE-2024-23997.
cf) Un proxy, en particulier un proxy web, agit comme un agent au milieu de la communication web, recevant et transmettant les requêtes et réponses pour le compte d'autrui. Ainsi, quel que soit le port utilisé par YANA, un proxy peut intercepter la communication. Bien que les proxys soient utilisés pour la sécurité ou pour augmenter la vitesse de recherche via la mise en cache, de nombreux programmes malveillants les exploitent pour écouter les communications web que les utilisateurs envoient.
Regardons un exemple utilisant YANA. J'ai installé Burp Suite, un outil proxy qui agit comme un malware, sur mon Windows 10 pour mettre en place un environnement de pratique. Burp Suite est un outil de diagnostic de sécurité réseau de PortSwigger, et sa version communautaire est disponible gratuitement. Si vous voulez suivre cet exemple, veuillez noter que des modifications des paramètres réseau sont nécessaires pour la pratique, donc une restauration est nécessaire.
Étape 1) Le véritable malware ne modifie pas les paramètres Internet mais écoute les paquets en utilisant l'API Windows, l'API Linux, etc. Cependant, en raison de sa complexité, les options sont activées manuellement. Appuyez sur la touche Windows et recherchez Options Internet.
Étape 2) Allez dans l'onglet Connexions, puis cliquez sur le bouton Paramètres LAN.
Étape 3) Cochez « Utiliser un serveur proxy pour votre LAN », puis cliquez sur le bouton Avancé. Pour restaurer les paramètres, décochez simplement.
Étape 4) Modifiez le contenu de HTTP dans Serveurs en « 127.0.0.1 », « 8080 », et Exceptions en « <-loopback> », puis cliquez sur les boutons OK pour enregistrer l'option.
Étape 5) Ouvrez Burp Suite.
Étape 6) Comme nous allons seulement vérifier, cochez « Projet temporaire en mémoire » et cliquez sur le bouton Suivant.
Étape 7) Sélectionnez « Utiliser les paramètres par défaut de Burp » et cliquez sur le bouton Démarrer Burp.
Étape 8) Allez dans l'onglet Proxy, puis cliquez sur Paramètres du proxy pour vérifier que le proxy est défini sur 127.0.0.1:8080 dans les écouteurs de proxy et vérifiez que En cours d'exécution est coché. Aussi, allez dans Règles d'interception des réponses sous Écouteurs de proxy et cochez Intercepter la réponse basée sur les règles suivantes. Lorsque vous fermez la fenêtre des paramètres, les options sont appliquées automatiquement.
Étape 9) Allez dans l'onglet Intercepter du Proxy et vérifiez que « Interception activée », puis ouvrez Yana. Lorsque l'interception est activée, toutes les communications HTTP/HTTPS sont mises en attente et ne sont pas envoyées à l'autre partie jusqu'à ce que l'interception soit désactivée ou que le bouton Transférer soit pressé.
Étape 10) Tout en appuyant sur le bouton Transférer, cherchez les réponses HTML parmi les réponses reçues du serveur d'arrière-plan de Yana. C'est facile à distinguer car la balise titre du document HTML est écrite comme Yana.
Étape 11) Insérez le code JS (“<script>require('child_process').exec('C:/Windows/System32/calc.exe')</script>”) en utilisant une balise script sous la balise body du HTML.
Étape 12) Ensuite, désactivez « Interception activée », et le programme Electron Yana recevra les paquets et exécutera le script, lançant le programme de calculatrice.
Étape 13) Une fois la pratique terminée, allez dans Options Internet et désactivez l'utilisation du serveur proxy.
Cela est dû au fait que l'option nodeIntegration est activée dans Yana. Même si cette option est désactivée, l'exécution de code Node.js à partir du HTML devient possible en utilisant diverses autres méthodes. Si elle est exécutée avec les autorisations de Yana, et si Yana s'exécute avec des privilèges administrateur ou root, le code malveillant injecté peut être exécuté avec ces privilèges. Par conséquent, comme mentionné précédemment, il est plus sûr de récupérer et d'afficher les pages HTML en utilisant des protocoles comme le protocole File, qui sont plus difficiles à intercepter dans la communication inter-programmes, plutôt que d'utiliser le protocole HTTP.