2024 : Anciennes CVE, nouvelles cibles — Exploitation active de ThinkPHP
Commentaires éditoriaux et additionnels de Tricia Howard
Synthèse
Les chercheurs d'Akamai ont découvert une nouvelle campagne ciblant les applications ThinkPHP vulnérables à la CVE-2018-20062 et à la CVE-2019-9082. La campagne semble être orchestrée par un groupe de cybercriminels parlant chinois.
La campagne semble avoir commencé dès octobre 2023 en ciblant un nombre limité de clients/organisations. Itonly s'est récemment généralisé.
Les attaques provenaient de diverses adresses IP associées à des serveurs hébergés sur le fournisseur de cloud "Zenlayer" (ASN 21859), principalement situé à Hong Kong.
L'attaque vise à tenter de récupérer du code brouillé supplémentaire à partir d'un autre serveur ThinkPHP compromis pour permettre une implantation initiale.
Après avoir réussi à exploiter le système, les attaquants installent un shell web en chinois nommé Dama pour maintenir un accès persistant au serveur.
Les actions ultérieures peuvent consister à propager l'attaque dans le centre de données de la victime ou à enrôler le serveur pour l'utiliser dans l'infrastructure d'attaque.
Introduction
Nous constatons une tendance inquiétante en matière de sécurité : Les attaquants exploitent des vulnérabilités connues, dont certaines datent de plusieurs années, et ils parviennent à leurs fins. Les vulnérabilités d'exécution de code à distance (RCE) de ThinkPHP CVE-2018-20062 et CVE-2019-9082 en sont un excellent exemple. Comme vous pouvez le constater d'après leurs noms, ces CVE sont dans la nature depuis au moins 2018, et pourtant, les attaques continuent jusqu'à aujourd'hui.
Nous avons détecté des signes de ce comportement d'attaque pour la première fois le 17 octobre 2023. Nous avons observé une série limitée de sondes exploitant ces vulnérabilités, mais pas de la manière à laquelle on pourrait s'attendre. Contrairement aux commandes de "démonstration de faisabilité" courantes que l'on retrouve avec les outils automatisés et les scanners, la charge utile demandait aux serveurs victimes d'installer un shell brouillé à partir d'un serveur distant sous le contrôle de l'attaquant.
La campagne n'a été active que pendant quelques jours, puis ces sondes limitées ont disparu, mais il semble que ce n'était que le début. En avril 2024, nous avons observé une campagne similaire, et celle-ci a été beaucoup plus importante que la précédente.
Dans cet article de blog, nous décrirons les CVE, les tentatives d'exploitation observées et les mesures d'atténuation recommandées pour les personnes affectées par cette campagne.
À propos des CVE
Qu'est-ce que ThinkPHP ?
ThinkPHP est un cadre d'application web open-source chinois, principalement utilisé pour développer des applications web basées sur PHP. Il fournit un ensemble de bibliothèques, de composants et d'outils qui simplifient le processus de création d'applications Web en suivant le modèle architectural MVC (model-view-controller).
CVE-2018-20062 et CVE-2019-9082 sont des vulnérabilités trouvées dans les anciennes versions du cadre ThinkPHP chinois populaire. Ces vulnérabilités affectent les systèmes de gestion de contenu basés sur ce cadre, tels que NoneCMS et Open-source BMS. Elles permettent aux attaquants d'exécuter du code à distance sur le serveur de la victime. Ces deux vulnérabilités font partie d'une série de variantes d'exploitation qui ciblent différents composants ThinkPHP, qui ont été divulguées sur plusieurs années à partir de 2018, date à laquelle le vecteur d'attaque initial a été révélé.
Tentatives d'exploitation observées
Les tentatives d'exploitation (détectées et enregistrées par Akamai App & API Protector) tentent d'utiliser les CVE pour télécharger un fichier nommé "public.txt" à partir d'un serveur situé en Chine qui semble compromis. Le nouveau fichier malveillant est ensuite enregistré sur les systèmes de la victime sous le nom "roeter.PHP," qui, selon nous, correspond au mot "routeur" avec une erreur d'orthographe (figure 1).
Le fichier texte téléchargé contient une version brouillée d'un web shell, un script de porte dérobée côté serveur pour contrôler le serveur à distance. Le code web shell utilise la dissimulation, notamment une transformation ROT13 de base qui aboutit à une longue chaîne hexadécimale unique (figure 2). Fait intéressant, les attaquants ont choisi un mot de passe très simple — "admin" — pour accéder au web shell..
Les attaques provenaient de diverses adresses IP associées à des serveurs hébergés sur le fournisseur de cloud Zenlayer (ASN 21859), principalement situé à Hong Kong. Notre brève inspection du serveur qui hébergeait le code de porte dérobée a révélé qu'il était également infecté par le même web shell (figure 3).
Cela indique que le serveur peut être un autre nœud de l'infrastructure de l'attaquant. Cette approche permettait de réduire les coûts opérationnels et, plus important encore, de masquer l'attribution, ce qui rendait plus difficile le démantèlement du serveur par les forces de l'ordre, car ils ne pouvaient pas simplement demander au fournisseur d'accès à Internet de fermer le serveur de production d'une organisation légitime.
Le web shell Dama
Le web shell présente des fonctionnalités avancées, telles que la navigation dans le système de fichiers, qui permet des opérations telles que l'édition, la suppression et la modification de l'horodatage de fichiers à des fins de dissimulation. Bien qu'il soit courant d'observer que des acteurs malveillants d'Europe occidentale et orientale utilisent des web shells en anglais (par exemple, le web shell wso-ng), celui-ci se distingue par l'origine chinoise de l'interface utilisateur (figure 4).
En plus des mécanismes avancés susmentionnés, Dama facilite le téléchargement de fichiers sur le serveur et recueille des données techniques cruciales du système, y compris des versions précises du système d'exploitation et des informations PHP, ce qui aide à identifier les attaques d'escalade des privilèges pertinentes (figure 5).
Ça ne s'arrête pas là. Les fonctionnalités post-exploitation incluent l'analyse des ports réseau et l'accès aux bases de données existantes et aux données du serveur. En outre, le web shell offre diverses méthodes d'escalade des privilèges, telles que le contournement des fonctions PHP sensibles désactivées pour échapper à la sandbox PHP et exécuter des commandes shell sur le serveur.
Il exploite également le planificateur de tâches Windows pour reconfigurer WMI et ajouter des utilisateurs à privilèges élevés. Bien qu'équipé d'un interprète PHP pour l'exécution directe de code, le support d'interface de ligne de commande (CLI) pour l'exécution directe de commandes shell du système d'exploitation est notablement absent, ce qui est surprenant compte tenu de ses fonctionnalités étendues.
Atténuation avec App & API Protector
Il est fortement recommandé d'effectuer la mise à niveau de ThinkPHP vers la version la plus récente, actuellement 8.0.
Comme il est difficile d'identifier tous les actifs qui peuvent être vulnérables à ces CVE et que le correctif lui-même peut ne pas être une option réalisable, nous vous conseillons fortement de mettre en œuvre App & API Protector avec son moteur de sécurité adaptatif pour réduire les risques associés aux CVE ThinkPHP.
Si vous utilisez déjà Adaptive Security Engine, vous pouvez facilement résoudre ces risques en configurant l'action de groupe Attaque de plateforme Web sur « refuser » pour améliorer la protection. Les clients peuvent également choisir de définir la règle individuelle 3000189 (« ThinkPHP RCE (CVE-2018-20062) ») sur « Refuser ».
Résumé
Ce web shell est un autre exemple de vulnérabilité One Day. Malgré le fait qu'ils soient connus depuis longtemps, les attaquants continuent de les cibler et de les exploiter, avec un succès notable. Cela souligne le défi persistant auquel les entreprises sont confrontées pour identifier les actifs vulnérables et maintenir l'efficacité des processus de gestion des correctifs.
Les attaques récentes lancées par un adversaire chinois mettent en évidence une tendance constante des attaquants à utiliser un web shell à part entière, conçu pour un contrôle avancé des victimes. Fait intéressant, tous les clients ciblés n'utilisaient pas ThinkPHP, ce qui suggère que les attaquants peuvent cibler indistinctement un large éventail de systèmes.
Il s'agit là d'une autre dichotomie intéressante de plus en plus présente : certains aspects des attaques sont très sophistiqués (comme les contrôles de dissimulation dans la technologie) et d'autres sont presque aléatoires (comme le fait que la CLI n'ait pas de support). Au fur et à mesure des progrès technologiques, nous verrons probablement cet écart continuer à se creuser, car bien que la technologie soit avancée, cela ne veut pas nécessairement dire que l'attaquant derrière celle-ci est également à la pointe. Cela ne signifie pas que le créateur du web shell Dama n'est pas à la pointe ; il s'agit simplement d'un commentaire sur la façon dont le secteur évolue dans son ensemble.
Nos clients étant protégés de ces tentatives d'attaque, nous ne pouvons pas déterminer définitivement quelle était l'intention ultime des attaquants. Cependant, d'après notre expérience, il est possible que leurs objectifs aient été d'intégrer les systèmes des victimes dans l'infrastructure d'attaque pour lancer des attaques supplémentaires, en recrutant les serveurs pour un puissant déni de service distribué (DDoS), créer un réseau de crypto-robots, mener des attaques par ransomware, des extorsions de fonds, ou encore réaliser des mouvements latéraux pour recueillir des informations sur les organisations.
Restez à l'écoute
Le groupe Security Intelligence d'Akamai continuera de surveiller et d'organiser la défense contre les menaces telles que le web shell Dama, et il publiera ses conclusions à l'intention de la communauté dans son ensemble. Pour obtenir des mises à jour en temps réel, suivez-nous sur X (anciennement Twitter).