Parmi les nombreux vecteurs de compromission utilisés par les cyberattaquants, l'installation de web shell sur des serveurs pour lancer des exploits ou exécuter des commandes à distance est une technique qui a (malheureusement) fait ses preuves. Un peu moins de deux ans après la découverte d'une attaque de ce type visant le système de VoIP Sangoma PBX, l'équipe de chercheurs en sécurité Unit 42 de Palo Alto Networks a révélé une compromission similaire.

Ainsi, des web shell ont servi à corrompre le système de communication unifiée Elastix qui embarque des fonctions incluant aussi bien de l'autocommutation privé (PBX), du protocole Internet (IP), de l'emailing, de la messagerie instantanée, de la télécopie, de la collaboration... Cette solution inclue des packages open source bien connus comme FreePBX ou encore Asterisk et Postfix, utilisés avec les téléphones VoIP Digium. Selon les chercheurs, plus de 500 000 sample de malware ont été décelés entre fin décembre 2021 et fin mars 2022. « Cette activité inhabituelle cible le logiciel de communication open source Asterisk largement adopté par Digium pour les terminaux téléphoniques VoIP », précise la recherche.

L'analyse par base de signatures inefficace

« Le logiciel malveillant installe des portes dérobées PHP multicouches obscurcies sur le système de fichiers du serveur Web, télécharge de nouvelles commandes à exécuter et planifie des tâches récurrentes pour réinfecter le système hôte », indique par ailleurs Unit 42. « De plus, le logiciel malveillant implante une chaîne indésirable aléatoire à chaque téléchargement de logiciel malveillant dans le but d'échapper aux défenses de signature basées sur des indicateurs de compromission ». 

Dans le détail, un dropper de type shell script permet à un pirate d'installer une porte dérobée PHP masquée à plusieurs endroits du système de fichiers. Puis de maintenir son accès libre en créant plusieurs comptes d'utilisateurs root, avant de configurer une tâche planifiée pour réinfecter le système hôte. De son côté, le web shell PHP, encodé en Base64, contient des commentaires aléatoires vérolés conçus pour échapper aux défenses basées sur l'analyse de signatures. 

Des indicateurs de compromission à scruter

Les web shell identifiés par les chercheurs de l'équipe Unit 42 de Palo Alto Networks semblent être corrélés à la vulnérabilité d'exécution de code à distance (RCE) CVE-2021-45461 dans le module Rest Phone Apps (restapps) du module FreePBX écrit en PHP de la suite logicielle utilisée par Digium. Pour se prémunir de cet exploit il est essentiel d'effectuer une montée de version, a minima vers les 16.0.19 ou 15.0.20 publiés le 22 décembre 2021. Il est par ailleurs aussi conseillé - au-delà des mises à jour correctives - d'anticiper les risques en adaptant des systèmes de défense adaptés. Par exemple la mise en place de sandbox pour analyser les .exe, filtrer des URL, détecter les intrusions, classifier le trafic...

Les indicateurs de compromission liés à FreePBX ont par ailleurs été listés par Unit 42 :

- URL publiques distantes 

- hxxp[://]37[.]49[.]230[.]74/k[.]php ;
- hxxp[://]37[.]49[.]230[.]74/z/wr[.]php ;
- hxxp[://]37[.]49[.]230[.]74/z/post/noroot[.]php ;
- hxxp[://]37[.]49[.]230[.]74/z/post/root[.]php.

- Shell Scripts originaux - SHA256 hashes

- 000a3688455edacc1dac17539797dc98f055091898a65cd520fb8459c1bc2a2a ;
- 0012342749e3bae85a9269a93661e2eb00437c71b2bca2eaca458147f9fe8471 ;
- 001305bd3be538e50014d42f02dee55056b73a1df770e2605aded8a970091f2f ;
- 0050232e04880fbe1d0c670b711b66bb46c32febdc9513074612c90f1f24631b ;
- 0059d7b736dc1e61bd5b22fff601579fbc8a12b00981fdd34fd13f0fb44688b0 ;
- 0088cba19eec78daee0310854c4bf8f7efc64b89bdc7517f0a1c7ebbba673f72.

- Chemins de fichiers locaux

- /var/www/html/admin/assets/ajax.php ;
- /var/www/html/admin/assets/config.php ;
- /var/www/html/admin/assets/js/config.php ;
- /var/www/html/admin/modules/core/ajax.php ;
- /var/www/html/digium_phones/ajax.php ;
- /var/www/html/rest_phones/ajax.php.

- Chaines de caractères 

- ZenharPanel ;
- ZenharR ;
- Ask Master.