Des chercheurs ont découvert un logiciel malveillant intelligent qui exfiltre furtivement des données et exécute un code malveillant à partir des systèmes Windows en abusant d’une fonctionnalité de Microsoft Internet Information Services (IIS).
IIS est un serveur Web à usage général qui s’exécute sur des appareils Windows. En tant que serveur Web, il accepte les requêtes des clients distants et renvoie la réponse appropriée. En juillet 2021, la société d’intelligence réseau Netcraft a déclaré qu’il y avait 51,6 millions d’instances d’IIS réparties sur 13,5 millions de domaines uniques.
IIS offre une fonctionnalité appelée Failed Request Event Buffering qui collecte des métriques et d’autres données sur les requêtes Web reçues de clients distants. Les adresses IP des clients et les en-têtes de port et HTTP avec les cookies sont deux exemples de données pouvant être collectées. FREB aide les administrateurs à dépanner les requêtes Web ayant échoué en récupérant celles qui répondent à certains critères à partir d’un tampon et en les écrivant sur le disque. Le mécanisme peut aider à déterminer la cause des erreurs 401 ou 404 ou à isoler la cause des requêtes bloquées ou abandonnées.
Les pirates informatiques ont découvert comment abuser de cette fonctionnalité FREB pour faire passer et exécuter du code malveillant dans des régions protégées d’un réseau déjà compromis. Les pirates peuvent également utiliser FREB pour exfiltrer les données des mêmes régions protégées. Parce que la technique se fond dans les requêtes eeb légitimes, elle fournit un moyen furtif de s’enfoncer davantage dans le réseau compromis.
Le malware post-exploit qui rend cela possible a été surnommé Frebniis par des chercheurs de Symantec, qui ont rendu compte de son utilisation jeudi. Frebniis s’assure d’abord que FREB est activé, puis détourne son exécution en injectant un code malveillant dans la mémoire du processus IIS et en le faisant s’exécuter. Une fois le code en place, Frebniis peut inspecter toutes les requêtes HTTP reçues par le serveur IIS.
« En détournant et en modifiant le code du serveur Web IIS, Frebniis est capable d’intercepter le flux régulier de traitement des requêtes HTTP et de rechercher des requêtes HTTP spécialement formatées », ont écrit les chercheurs de Symantec. « Ces requêtes permettent l’exécution de code à distance et le proxy vers les systèmes internes de manière furtive. Aucun fichier ou processus suspect ne s’exécutera sur le système, ce qui fait de Frebniis un type de porte dérobée HTTP relativement unique et rare à l’état sauvage.
Avant que Frebniis puisse fonctionner, un attaquant doit d’abord pirater le système Windows exécutant le serveur IIS. Les chercheurs de Symantec doivent encore déterminer comment Frebniis fait cela.
Frebniis analyse toutes les requêtes HTTP POST en invoquant les fichiers logon.aspx ou default.aspx, qui sont utilisés pour créer des pages de connexion et servir les pages Web par défaut, respectivement. Les attaquants peuvent introduire clandestinement des requêtes dans un serveur infecté en envoyant l’une de ces requêtes et en ajoutant le mot de passe « 7ux4398 ! » comme paramètre. Une fois qu’une telle demande est reçue, Frebniis décrypte et exécute le code .Net qui contrôle les principales fonctions de la porte dérobée. Pour rendre le processus plus furtif, le code ne dépose aucun fichier sur le disque.
Le code .NET a deux objectifs. Premièrement, il fournit un proxy qui permet aux attaquants d’utiliser le serveur IIS compromis pour interagir ou communiquer avec des ressources internes qui seraient autrement inaccessibles depuis Internet. Le tableau suivant montre les commandes qu’il est programmé pour exécuter :
Commande | Nom de la fonction | Paramètre | Description |
---|---|---|---|
1 | CréerConnecter | Port hôte | Se connecter à un système distant pour le proxy, renvoie un UUID représentant le système distant |
2 | LireScoket | Uuid | Lire une chaîne Base64 à partir d’un système distant |
3 | Code d’écriture | Uuid, chaîne Base64 | Écrire une chaîne Base64 sur un système distant |
4 | FermerScoket | Uuid | Fermer la connexion |
Le deuxième objectif du code .Net est de permettre l’exécution à distance du code fourni par l’attaquant sur le serveur IIS. En envoyant une requête aux fichiers logon.aspx ou default.aspx qui inclut du code écrit en C#, Frebniis le décodera automatiquement et l’exécutera en mémoire. Encore une fois, en exécutant le code directement en mémoire, la porte dérobée est beaucoup plus difficile à détecter.
On ne sait pas à quel point Frebniis est largement utilisé pour le moment. Le message fournit deux hachages de fichiers associés à la porte dérobée mais n’explique pas comment rechercher un système pour voir s’ils existent.