5 octobre 2020

[CVE-2020-24246] Divulgation de fichiers sources via l’interface d’administration web Peplink Balance

English version: https://blog.bssi.fr/cve-2020-24246-leaking-source-file-using-the-web-admin-interface-of-peplink-balance

Introduction

Il y a quelques mois, BSSI a effectué un test d’intrusion dont l’interface d’administration Web des produits Peplink Balance figurait dans le périmètre du client.

Cet article décrit une vulnérabilité découverte par l’équipe d’audit de BSSI, permettant à un attaquant non authentifié de télécharger certains fichiers sources de l’interface. Dans ces fichiers, il est notamment possible de retrouver les identifiants permettant de se connecter à la base de données SQL (SGBD). Elle affecte l’interface d’administration web de tous les produits Peplink Balance dont la version est antérieure à 8.1.0 RC1.

L’interface d’administration Web des produits Peplink Balance permet d’administrer et de configurer les différents routeurs de la marque :

La démonstration de l’interface est disponible ici : http://balancedemo.peplink.com, il est possible de se connecter à la version de démonstration via les identifiants admin / admin.

Peplink-23005 : un défaut d’interprétation de certains fichiers sources

Le test d’intrusion s’effectuant en boîte noire, il a d’abord été nécessaire de comprendre le fonctionnement de l’administration et de son environnement. Une première analyse de l’interface a donc été conduite en trois phases, afin de mieux comprendre son arborescence.

Dans un premier temps, une navigation manuelle de l’application a permis de constater que les fichiers découverts se trouvaient dans les dossiers /cgi-bin/MANGA et /cgi-bin/HASync. L’extension de tous les fichiers découverts est .cgi. Cela signifie donc que le serveur Web interprète bien ce format, avant de renvoyer la réponse au client.

Dans un second temps, une recherche OSINT a permis d’élargir notre connaissance de points d’entrées (toujours avec l’extension .cgi). Cette recherche s’effectue notamment grâce aux Google Dorks, dépôts GitHub ainsi qu’aux divulgations d’exploits précédents.

Astuce : une recherche OSINT via Google Dorks et dépôts GitHub permet souvent de découvrir de nouveaux points d’entrées sans pour autant être détecté par le serveur web concerné. En effet, par définition, ces recherches s’appuient sur l’indexation (volontaire ou non) du service web.

Enfin, une navigation automatique via fuzzing des dossiers et fichiers .cgi (à l’aide d’outils tels que Dirb, Patator ou WFuzz) a été conduite. Le fuzz a permis de découvrir l’existence du dossier /filemanager/php/, dont le nom pourrait faire penser que des fichiers .php y sont présents.

Une seconde navigation automatique a alors été effectuée via fuzzing des dossiers et fichiers .php, afin de mieux cibler le contenu potentiellement présent dans le dossier. Un résultat positif a été découvert : connector.php

Le serveur web frontal n’interprétant pas les fichiers PHP, celui-ci nous propose alors de télécharger son code source.

Cette vulnérabilité permet donc, via exploitation de la non-interprétation des fichiers PHP par le serveur web frontal, d’accéder et télécharger le code source de ceux-ci.

Plusieurs données sensibles ont été découvertes, notamment un fichier de configuration SQL utile au Framework ELFinder. Dans le cadre de cet article, la capture d’écran ci-dessous correspond au fichier découvert sur l’interface de démonstration de Peplink Balance et ne contient pas de données sensibles :

Conclusion

Suite à la découverte de cette vulnérabilité, l’équipe d’audit de BSSI a contacté et déclaré la vulnérabilité à l’équipe responsable du produit concerné au sein de Peplink. Un correctif a été mis à disposition à partir du 2 juillet 2020 (correspondant à la version 8.1.0 RC1).

Cette vulnérabilité est maintenant connue sous la CVE 2020-24246 et est disponible dans les notes de release de Peplink (page 13 – 23005) : https://download.peplink.com/resources/firmware-8.1.0rc1-release-notes.pdf

Chronologie

17/06/2020 – Découverte de la vulnérabilité
19/06/2020 – Prise de contact avec l’équipe Cyber-Sécurité de Peplink
22/06/2020 – Déclaration de la vulnérabilité
03/07/2020 – Correction de la vulnérabilité via le correctif 8.1.0 RC1
03/10/2020 – Divulgation de la vulnérabilité (correctif + 90j)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *