Les charges malveillantes visant NetScaler cherchent à assurer une persistance avec des privilèges élevés et à dissimuler des webshells derrière du CSS

Attaques NetScaler via CVE-2026-88771 : shell inversé, compte sec_monitor superuser et webshell PHP camouflé en CSS.

Les charges malveillantes visant NetScaler cherchent à assurer une persistance avec des privilèges élevés et à dissimuler des webshells derrière du CSS
Vulnérabilités

Image d’illustration générée par IA

Les attaquants qui exploitent les appliances Citrix NetScaler ne se contentent plus de simples tests d’exécution de commandes. Ils utilisent des charges de deuxième étape conçues pour ouvrir des shells inversés, créer des comptes privilégiés, collecter et préparer des données de configuration, et déployer des webshells.

L’équipe Threat Hunt Operations & Research de LevelBlue a observé cette activité dans plusieurs environnements clients. Les événements d’authentification malveillants visaient CVE-2026-88771, une vulnérabilité d’injection de commandes avant authentification qui affecte NetScaler ADC et NetScaler Gateway.

Les chercheurs ont documenté des tentatives de collecte et de préparation des configurations des appliances, mais leur rapport ne confirme pas que toutes les actions prévues par les charges malveillantes ont abouti. Un script Perl analysé peut créer un compte sec_monitor avec des privilèges de superutilisateur, préparer des fichiers de configuration en vue de leur exfiltration et exposer un shell PHP à l’aide d’URL ressemblant à des ressources CSS légitimes.

Une autre faille de NetScaler, CVE-2026-88772, est également exploitée. Les deux vulnérabilités ont été ajoutées au catalogue des vulnérabilités exploitées de la Cybersecurity and Infrastructure Security Agency (CISA) des États-Unis le 27 septembre 2026. Les agences fédérales avaient jusqu’au 30 septembre 2026 pour y remédier.

Des données d’authentification malveillantes déclenchent l’exécution de commandes

LevelBlue a repéré des événements d’authentification NetScaler malveillants contenant des noms d’utilisateur contrôlés par les attaquants et conçus pour exploiter CVE-2026-88771. Les variantes des chaînes pitboss et NSPPE revenaient régulièrement dans les données d’authentification observées.

Certaines tentatives exécutaient des commandes simples telles que whoami, apparemment pour vérifier si l’exécution de commandes fonctionnait. D’autres événements utilisaient curl ou wget pour récupérer des charges supplémentaires depuis une infrastructure externe, ou tentaient de collecter des données de configuration NetScaler.

Dans son ensemble, cette activité allait au-delà de la simple vérification de la vulnérabilité. LevelBlue a observé des tentatives de récupération et d’exécution de charges, d’ouverture de shells inversés, de collecte et de préparation de configurations, de création de comptes privilégiés et de déploiement de webshells.

Le rapport n’attribue pas cette activité à un acteur malveillant précis.

Une charge Python cible un processus et ouvre un shell inversé

Une des charges de deuxième étape était un script Python nommé main.py, récupéré à l’adresse suivante :

23.27.143[.]20:9000/main.py

Le script est conçu pour ouvrir un shell inversé vers 45.141.21[.]130 via le port TCP 443. Bien que ce port soit généralement associé à HTTPS, l’analyse disponible ne permet pas d’affirmer que le trafic du shell lui-même utilise HTTPS.

La charge recherche également les processus associés à :

/var/python/bin/customsnmpd

Elle tente ensuite de mettre fin aux processus correspondants à l’aide de kill -9. L’analyse décrit ce comportement sans déterminer pourquoi ce processus a été ciblé.

Pour les équipes de défense, les traces à surveiller comprennent les connexions sortantes vers la destination indiquée, la récupération de main.py et l’arrêt inattendu du processus associé à customsnmpd. Ces éléments doivent être examinés en lien avec les journaux d’authentification et d’exécution de commandes, et non considérés isolément comme une preuve de compromission.

Un script Perl peut créer le compte sec_monitor et préparer les configurations

La charge la plus élaborée, update_c08937.pl, a été récupérée à l’adresse suivante :

64.94.85[.]67:443/update_c08937.pl

D’après l’analyse de LevelBlue, ce script Perl peut modifier /flash/nsconfig/ns.conf pour ajouter un compte local nommé sec_monitor et lui attribuer le rôle superuser. La découverte de ce compte ou des modifications correspondantes dans la configuration indiquerait que cette étape a peut-être été exécutée avec succès.

Le script est également conçu pour archiver /flash/nsconfig dans le fichier suivant :

/tmp/update_result_3567cs.tgz

Il tente ensuite de téléverser l’archive — qui contiendrait des données de configuration NetScaler — vers 64.94.85[.]67, sur le port 443. La séquence de nettoyage programmée supprime l’archive et le script Perl lui-même, ce qui réduit les traces exploitables par les enquêteurs si ces étapes aboutissent.

La charge peut aussi modifier les permissions de /bin/sh pour les définir à 6555 et déposer un webshell PHP à l’emplacement suivant :

/var/netscaler/logon/LogonPoint/.local_journal

Ce shell permet d’exécuter des commandes à distance et de transférer des fichiers. La charge peut également modifier /etc/httpd.conf pour activer l’exécution de PHP et associer le shell à des URL ressemblant à des ressources CSS légitimes de NetScaler. LevelBlue indique que ce comportement de redirection concorde avec l’activité observée par GreyNoise.

Cette technique ne consiste pas simplement à choisir un nom de fichier discret. En modifiant la configuration du serveur Web, la charge peut faire passer les requêtes vers le shell pour des requêtes de contenu CSS statique dans les journaux d’URL.

Un autre emplacement associé aux ressources observées était :

31.56.197[.]72:9090/lula

Les deux failles touchent plusieurs branches de NetScaler

CVE-2026-88771 est classée CWE-20, validation incorrecte des entrées. Elle peut permettre à un attaquant non authentifié d’exécuter des commandes arbitraires sur une appliance vulnérable.

L’article principal attribue à cette faille un score CVSS de 9,5. La fiche du NVD indique quant à elle un score CVSS v3.1 de 9,8, avec le vecteur suivant :

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

D’après la description du NVD, les versions concernées sont les suivantes :

  • NetScaler ADC antérieur à 14.1-73.37
  • NetScaler ADC antérieur à 13.1-64.23
  • NetScaler ADC FIPS antérieur à 14.1-73.37
  • NetScaler ADC FIPS et NDcPP antérieur à 13.1.37.279
  • NetScaler Gateway antérieur à 14.1-73.37
  • NetScaler Gateway antérieur à 13.1-64.23

CVE-2026-88772 est une vulnérabilité distincte, classée CWE-119, restriction incorrecte des opérations dans les limites d’un tampon mémoire. Elle peut entraîner une exécution de code à distance ou un déni de service.

Son score CVSS v3.1 selon le NVD est de 8,1 :

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

Les mêmes branches de produits NetScaler et les mêmes seuils de version sont indiqués pour CVE-2026-88772.

Mandiant Consulting et le Google Threat Intelligence Group ont signalé séparément que des attaques exploitant CVE-2026-88772 avaient touché des dizaines d’organisations. Ces opérations ont déployé des webshells PHP, notamment WHIPSHOT, ainsi qu’un tunnel Python appelé SLAPSHOT.

Les informations disponibles ne permettent pas d’établir si ces incidents et l’activité liée à CVE-2026-88771 étudiée par LevelBlue impliquaient le même opérateur.

Le délai de remédiation fixé par la CISA aux agences fédérales est dépassé

La CISA a ajouté les deux vulnérabilités au catalogue KEV le 27 septembre 2026, confirmant qu’elles sont exploitées et ne représentent pas seulement des risques théoriques. Les agences fédérales devaient y remédier avant le 30 septembre 2026.

Pour les deux entrées, la CISA demande aux parties concernées d’appliquer les mesures d’atténuation du fournisseur et de respecter la directive BOD 26-04, « Prioritizing Security Updates Based on Risk », ainsi que ses « Forensics Triage Requirements ». Les organisations doivent évaluer l’exposition de chaque actif à Internet et suivre les consignes de mise à jour applicables de la BOD 26-04.

Pour les services cloud, la CISA demande aux parties concernées de suivre les consignes pertinentes de la BOD 26-04 ou de cesser d’utiliser le produit si aucune mesure d’atténuation n’est disponible. Les informations fournies ne détaillent pas de procédure d’installation propre à un produit : les exploitants doivent donc suivre les instructions de Citrix correspondant à leur branche et à leur type de déploiement.

Ce ne sont pas les seules vulnérabilités Citrix ajoutées récemment au catalogue KEV. CVE-2026-19490 y a été ajoutée le 9 septembre 2026, et CVE-2026-8452 le 26 août 2026.

Ce que les équipes de défense NetScaler doivent examiner

Les administrateurs doivent recenser les systèmes ADC et Gateway concernés, y compris les déploiements FIPS et NDcPP, puis appliquer les mesures correctives prescrites par le fournisseur. Comme des tentatives d’exploitation ont déjà été observées, l’installation des mises à jour ou des mesures d’atténuation doit s’accompagner d’une recherche de signes de compromission antérieurs.

Parmi les éléments à examiner :

  • Des journaux d’authentification contenant des noms d’utilisateur inattendus ou des variantes de pitboss et NSPPE
  • L’exécution anormale de whoami, curl ou wget à partir d’événements d’authentification
  • Un compte local sec_monitor auquel le rôle superuser a été attribué
  • Des modifications non autorisées de /flash/nsconfig/ns.conf
  • Le fichier /var/netscaler/logon/LogonPoint/.local_journal
  • Des modifications de /etc/httpd.conf, notamment des redirections faisant passer du contenu PHP pour des ressources CSS
  • Des permissions 6555 définies sur /bin/sh
  • Des traces de création ou de manipulation du fichier /tmp/update_result_3567cs.tgz
  • La récupération de main.py, de update_c08937.pl ou de la ressource nommée lula
  • Des connexions impliquant 64.94.85[.]67, 31.56.197[.]72, 23.27.143[.]20 ou 45.141.21[.]130
  • L’arrêt inattendu de processus associés à /var/python/bin/customsnmpd

Les fonctions de nettoyage de la charge Perl impliquent que l’absence de fichiers ne suffit pas à exclure une exécution. Les comptes, les modifications de configuration, les redirections du serveur Web, la télémétrie des processus et les journaux réseau peuvent conserver des traces après la suppression de l’archive ou du script préparé.

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

CVE traitées dans cet article

Retour à l'accueil

Dernières actualités cybersécurité

Toutes les actualités cybersécurité →