Buer, un nouveau chargeur émerge sur le marché souterrain

Overview

Depuis plusieurs années, les chercheurs de Proofpoint suivent l’utilisation des téléchargeurs de première étape, utilisés par les acteurs de la menace pour installer d’autres formes de logiciels malveillants pendant et après leurs campagnes d’e-mails malveillants. En particulier, au cours des deux dernières années, ces téléchargeurs sont devenus de plus en plus robustes, offrant des capacités de profilage et de ciblage avancées.

Plus important encore, les téléchargeurs et d’autres logiciels malveillants comme les botnets et les chevaux de Troie bancaires ont remplacé les ransomwares comme charges utiles primaires, donnant aux acteurs de la menace la flexibilité de déployer une gamme de logiciels malveillants dans les infections secondaires. Par exemple, l’un des plus répandus, Smoke Loader, a été largement utilisé pour déposer des charges utiles telles que les chevaux de Troie bancaires Ursnif et The Trick, ainsi que pour utiliser ses propres modules pour le vol de crédentiels et d’autres informations et données, entre autres fonctions malveillantes.

Depuis la fin août 2019, les chercheurs de Proofpoint ont suivi le développement et la vente d’un nouveau chargeur modulaire nommé Buer par ses auteurs. Buer présente des fonctionnalités très concurrentielles par rapport à Smoke Loader, est activement vendu sur des marchés souterrains de premier plan et est destiné aux acteurs d’utilisation qui recherchent une solution clé en main, prête à l’emploi.

Campagnes

28 août 2019

Le 28 août, les chercheurs de Proofpoint ont observé des messages électroniques malveillants qui semblent répondre à des conversations électroniques légitimes antérieures. Ils contenaient des pièces jointes Microsoft Word qui utilisent des macros Microsoft Office pour télécharger la charge utile de l’étape suivante.

Figure 1 : Exemple de pièce jointe Microsoft Word utilisée dans la campagne du 28 août 2019

Nous avons observé que la charge utile de l’étape suivante était téléchargée à partir d’URL comprenant :

hxxp://jf8df87sdfd.yesteryearrestorationsnet/gate.php

hxxp://93345fdd.libertycolegioscom/gate.php

La charge utile déposée était nommée verinstere222.xls ou verinstere33.exe (une convention de dénomination que l’acteur utilisait à cette période). Au lieu de la variante Dreambot d’Ursnif associée à cet acteur, la charge utile était un chargeur non documenté qui n’avait pas été observé auparavant dans la nature.

Dans les semaines suivantes, en septembre et octobre, les chercheurs de Proofpoint et d’autres membres de la communauté infosec ont observé plusieurs campagnes du même acteur déposant soit la variante Dreambot d’Ursnif, soit ce nouveau chargeur.

10 octobre 2019

Le 10 octobre, les chercheurs de Proofpoint ont observé une campagne de malvertising en Australie redirigeant vers le kit d’exploitation (EK) Fallout larguant le nouveau chargeur.

Figure 2 : Trace de trafic réseau HTTP avec l’EK Fallout exploitant des navigateurs vulnérables

Le chargeur a ensuite déposé plusieurs charges utiles de logiciels malveillants de deuxième étape, notamment KPOT stealer, Amadey et Smoke Loader.

Le 21 octobre 2019

Depuis le début du mois de juillet, les chercheurs de Proofpoint ont observé environ 100 campagnes impliquant Ostap chargeant presque exclusivement plusieurs instances de The Trick. Le 21, cependant, les chercheurs de Proofpoint ont observé des messages électroniques malveillants avec des lignes d’objet telles que « Penalty Notice # PKJWVBP » contenant des pièces jointes Microsoft Word. Les documents contenaient des macros qui, si elles étaient activées, exécutaient Ostap. Nous avons observé qu’Ostap téléchargeait ce chargeur à partir de

hxxps://185.130.104187/nana/kum.php?pi=18b&

qui, à son tour, chargeait The Trick « ono22 » à partir de son C&C : garrisontxus

Figure 3 : Trafic réseau observé une fois la macro des documents malveillants activée.

Figure 4 : Exemple de pièce jointe Microsoft Word utilisée dans la campagne du 21 octobre

Marché & Analyse des fonctionnalités

Parce que nous avons commencé à observer ce nouveau chargeur utilisé dans de multiples campagnes distinctes, nous nous attendions à ce qu’il soit vendu sur un marché souterrain à de multiples acteurs. De plus, nous avons découvert une publicité du 16 août sur un forum clandestin décrivant un chargeur nommé « Buer » qui correspondait aux fonctionnalités du malware observé dans les campagnes ci-dessus.

Les fonctionnalités ajoutées et annoncées dans les semaines suivantes correspondent exactement à l’évolution du chargeur trouvé dans ces campagnes.

Nous avons récupéré le texte d’une publication sur un tableau d’affichage par l’auteur, en russe, demandant un paiement de 400 $ pour le malware, et offrant leurs services pour configurer le logiciel pour les clients potentiels afin de le rendre opérationnel. L’auteur indique également que les mises à jour et les corrections de bogues sont gratuites, mais qu’il y a un supplément de 25 $ pour la  » reconstruction vers de nouvelles adresses « .

Le texte suivant, que Proofpoint a également extrait du marché clandestin et qui est présumé avoir été écrit par l’auteur du malware, est un résumé de la fonctionnalité du chargeur telle qu’elle est décrite dans le russe original :

Figure 5. Texte d’un post de forum clandestin décrivant les fonctionnalités du bot Buer Loader

De même, la publicité énumère également les fonctionnalités du panneau de contrôle. L’auteur note que le bot modulaire est entièrement écrit en C, à l’aide d’un panneau de contrôle écrit en .NET Core, mettant l’accent sur des performances plus élevées à la fois sur le client et le serveur en raison du choix du langage de programmation.

  • Selon la description, le bot a une charge utile totale de 55 à 60 kilo-octets, fonctionne comme un exécutable Windows natif et une bibliothèque de liens dynamiques, s’exécute entièrement dans la mémoire résidente et est compatible avec les systèmes d’exploitation Microsoft Windows 32 bits et 64 bits.
  • Le bot communique via une connexion HTTPS et peut être mis à jour à distance depuis le panneau de contrôle après le décryptage ainsi que la reconstruction.
  • L’auteur note également que le chargeur s’exécute comme un processus de substitution d’une application de confiance, et fonctionne en utilisant les privilèges du niveau Utilisateur.
  • Plus particulièrement, le logiciel ne fonctionnera pas dans la CEI (anciens États soviétiques, comme la Russie).

L’annonce décrit les caractéristiques suivantes pour le serveur et le panneau de contrôle :

  • Le panneau de contrôle est annoncé comme étant également écrit en .NET Core, notant une installation facile sur les systèmes de serveur Ubuntu / Debian Linux.
  • Le serveur fournit un large éventail de statistiques, y compris des compteurs pour les bots en ligne, vivants, morts et totaux ; une mise à jour en temps réel pour la liste des bots ; un compteur de téléchargement de fichiers ; et une capacité à filtrer les systèmes par type de système d’exploitation, les droits d’accès des bots installés, et le nombre de cœurs de CPU logiques.
  • Les fichiers téléchargés depuis les systèmes infectés sont stockés sous forme cryptée sur le serveur, l’accès étant accordé par un jeton.
  • Plus important encore, comme les bots eux-mêmes, l’auteur note que le serveur ne traite pas les requêtes API envoyées depuis les pays membres de la CEI.

Le post du forum comprenait également des notes de version technique pour le chargeur Buer et le panneau de contrôle (version 1.1.2). Dans l’introduction, l’auteur a noté que le lancement du chargeur comprend désormais trois étapes — si les deux premières étapes échouent sur le système infecté, et que l’injection dans le processus de substitution échoue (par exemple, en raison d’une incompatibilité avec la crypte elle-même), le chargeur s’exécutera sous son propre processus à la place.

Les notes de mise à jour font état des éléments suivants pour le chargeur :

  • Le chargeur utilise une architecture FastFlux.
  • Le chargeur fonctionne depuis sous un processus de confiance au sein de Microsoft Windows. Le processus MemLoadEx prend désormais en charge x64 exe en tant qu’application de confiance.
  • MemLoad a été mis à jour et prend désormais en charge x32 exe natif.

Les notes de mise à jour font état des fonctionnalités suivantes pour le panneau de contrôle :

  • L’accès à l’API est accompli en utilisant HTTPS avec le support des certificats auto-signés.
  • Prise en charge de l’édition des tâches dans le panneau. L’utilisateur peut arrêter la tâche pendant l’exécution et modifier la charge utile et le nombre d’exécutions.
  • Ajouté la possibilité de créer une tâche par ID de bot. Très approprié pour les charges ponctuelles.
  • Une fenêtre étape par étape pour la création de tâches.
  • Une notification qui permet de connaître les bots nécessaires en ligne.
  • L’unicité de l’ID du bot a été augmentée.
  • Des étiquettes ont été ajoutées au panneau, permettant de trier les bots pour des actions ultérieures avec eux.
  • Affiche le nom de l’ordinateur dans le tableau.
  • Amélioration de la compatibilité cryptographique.
  • Ajout d’un historique des bots.
  • « Le panneau s’étend maintenant à Docker » (prise en charge des conteneurs Docker).
    • Note du chercheur Proofpoint : Nous présumons que cette fonctionnalité est destinée à faciliter l’intégration dans les hôtes Docker loués, simplifiant l’installation, bien que potentiellement le panneau/C&C pourrait être installé sur un hôte Docker compromis.
  • Validation du fichier sur le panneau. Maintenant, le panneau ne manquera pas le fichier que le chargeur ne pourra pas télécharger et en informera le client.
  • Les tâches peuvent maintenant être répétées.

Enfin, l’auteur a décrit les changements techniques suivants pour la version 1.1.9. Celles-ci sont dignes d’intérêt car elles démontrent que le malware fait l’objet d’un développement actif et professionnel.

  • Le chargeur a acquis une nouvelle méthode pour lancer External pour les fichiers locaux. Les avantages de la méthode sont l’unicité et l’absence de CreateProcess / ShellExecute par le chargeur. Le lancement produit un processus de confiance sans aucune commande pour lui.
  • Le panneau a la capacité de marquer tous les bots qui ont effectué une tâche spécifique. Cela permettra à l’utilisateur de distribuer la charge utile à certains groupes de bots.
  • Implémentation de l’API d’intégration. Documentation disponible pour celle-ci.
  • Ajouté la possibilité d’envoyer un fichier par référence en mode proxy. Le fichier est transféré au bot sous forme cryptée.
  • Le bug du comptage des bots par pays a été corrigé et d’autres améliorations ont été ajoutées.

Captures d’écran du panneau de contrôle

Les captures d’écran du panneau de contrôle suivantes ont été incluses dans la publicité souterraine, montrant certaines des capacités back-end disponibles pour les clients, y compris la surveillance de la télémétrie, le filtrage des hôtes, et plus encore.

Figure 6 : UX de connexion au panneau de contrôle pour le chargeur Buer C&C

Figure 7 : écran de surveillance de la télémétrie du bot pour le panneau de contrôle Buer.

Figure 8 : Écran de surveillance de la télémétrie des bots en mode sombre pour le panneau de contrôle Buer.

Figure 9 : Vue du filtre du panneau de contrôle représentant les bots distants filtrés par l’architecture Microsoft Windows.

Figure 10 : Vue du panneau de contrôle décrivant la gestion des fichiers pour les tâches du chargeur

Figure 11 : Vue du panneau de contrôle des bots distants triés par droits d’utilisateur.

Figure 12 : Vue du panneau de contrôle, état des tâches

Figure 13 : Vue du panneau de contrôle, création d’une tâche

Analyse de malware

Buer Loader est un nouveau malware téléchargeur qui télécharge et exécute des charges utiles supplémentaires.

Fonctions d’anti-analyse

Le chargeur contient quelques fonctionnalités d’anti-analyse de base :

  • Vérification de la présence de débogueurs en inspectant le drapeau NtGlobalFlag dans le bloc d’environnement de processus (PEB) et le bloc d’environnement de threads (TEB)
  • Vérification de la présence de machines virtuelles à l’aide des mécanismes Red Pill , No Pill , et d’autres mécanismes connexes
  • Vérification de la locale pour s’assurer que le logiciel malveillant ne s’exécute pas dans des pays spécifiques (figure 14)

Figure 14 : Vérification du logiciel malveillant pour s’assurer qu’il ne s’exécute pas dans des pays spécifiques

Persistance

La persistance est mise en place en configurant une entrée RunOnce du registre. Selon la version, l’entrée de registre exécutera le malware directement ou planifiera une tâche pour l’exécuter.

Chaînes chiffrées

Cet échantillon contient une fonction pour chiffrer les chaînes de caractères.

Figure 15 : Séquence de décryptage pour les chaînes

La fonction suivante est un exemple de la façon de décrypter les chaînes cryptées dans Ghidra en utilisant Jython:

Figure 16 : Séquence de décryptage des chaînes de caractères (version Python)

Figure 17 : Exemple de décryptage de chaînes de caractères

Appels d’API Windows

Cet échantillon utilise un algorithme de hachage pour résoudre la plupart de ses appels d’API Windows. L’algorithme de hachage s’assure que chaque caractère du nom de l’API est une majuscule. Il effectue ensuite une rotation vers la droite (ROR) de chaque caractère par 13 et les additionne.

Figure 18 : Algorithme de hachage pour résoudre les appels d’API Windows

La fonction suivante est un exemple de la façon dont Python peut être utilisé pour aider à résoudre les appels d’API.

Figure 19 : Exemple de script Python utilisé pour aider à résoudre les appels d’API Windows hachés

Le tableau suivant contient une liste de quelques hachages sélectionnés utilisés et leur nom d’API Windows correspondant :

.

.

CreateMutexW

0xed619452

OpenMutexW

0x7bffe25e

CreateProcessW

0xb4f0f46f

WinHttpOpen

0xaf7f658e

WinHttpCrackUrl

0x8ef04f02

WinHttpConnect

0x9f47a05e

WinHttpOpenRequest

0x1dd1d38d

Tableau 1 : Appels d’API Windows avec hachages sélectionnés

Commande et contrôle

Les fonctions de commande et de contrôle (C&C) sont traitées via des requêtes GET HTTP(S). Un exemple de balise de commande ressemble à la figure 20:

Figure 20 : Exemple de balise de commande

Ces demandes vont à l' »API de mise à jour » et contiennent un paramètre crypté. Ce paramètre peut être décrypté par :

  1. Décodage Base64
  2. Décodage Hex
  3. DécryptageRC4 (la clé utilisée dans les échantillons analysés était « CRYPTO_KEY »)

Un exemple de paramètre en clair est :

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f|Windows 7|x64|4|Admin|RFEZOWGZPBYYOI

Il contient des données délimitées par pipe-Il contient des données délimitées par des tubes et consistant en :

  • Identification du robot (condensé hexagonal SHA-256 de divers paramètres système tels que le GUID et le nom du profil matériel, le nom de l’ordinateur, le numéro de série du volume, et CPUID)
  • Un hachage SHA-256 de sa propre image exécutable
  • Version de Windows
  • Type d’architecture
  • Nombre de processeurs
  • Privilèges d’utilisateur
  • Nom de l’ordinateur

Un exemple de réponse à une balise de commande est présenté dans la figure 21 :

Figure 21 : Exemple de réponse de balise de commande

Elle peut être déchiffrée de manière similaire au paramètre de requête ci-dessus, sauf que les octets codés en hexadécimal sont séparés par des caractères tirets. Un exemple de réponse en texte clair est présenté dans la Figure 22:

Figure 22 : Réponse de balise de commande en texte clair

Le texte décrypté est un objet JSON contenant diverses options sur la façon de télécharger et d’exécuter une charge utile :

  • type – il existe deux types :
    • update – mise à jour de soi
    • download_and_exec – téléchargement et exécution
  • options – spécifie les options pour la charge utile à télécharger :
    • Hash – uniquement applicable au type « update » pour déterminer si une nouvelle mise à jour est disponible
    • x64 – si le payload est 64-bit
    • FileType – non utilisé dans les échantillons analysés
    • AssemblyType -. non utilisé dans les échantillons analysés
    • AccessToken – utilisé pour télécharger la charge utile (voir ci-dessous)
    • External – indique si la charge utile est téléchargée depuis le C&C ou une URL externe
  • method – méthode d’exécution :
    • exelocal – créer un processus
    • memload – injecter et charger manuellement la charge utile
    • memloadex – injecter et charger manuellement la charge utile
    • loaddllmem – injecter et charger manuellement la charge utile
  • paramètres – paramètres à passer sur la ligne de commande
  • pathToDrop -… non utilisé dans les échantillons analysés
  • autorun – indique s’il faut configurer la persistance RunOnce du registre pour le payload
  • modules – voir la section Modules ci-dessous
  • timeout – non utilisé dans les échantillons analysés

Les payloads téléchargés depuis le serveur C&C se font via des requêtes à l' »API de téléchargement » comme vu dans la Figure 23 :

Figure 23 : Téléchargement de charges utiles depuis le C&C

Un exemple de paramètre de requête en texte clair est présenté ci-dessous :

88a5e68a2047fa5ebdc095a8500d8fae565a6b225ce94956e194b4a0e8a515ae|58007044-67d4-4963-9f5f-400dfbc69e74

Il contient l’ID du bot et le « AccessToken » de la réponse de la balise de commande. Si la charge utile est téléchargée depuis le C&C, elle est chiffrée avec RC4. Dans les échantillons analysés, la clé était « CRYPTO_KEY ».

Modules

La réponse à la balise de commande contient une liste de « modules ». Les chercheurs de Proofpoint n’ont pas encore observé l’utilisation de modules Buer dans la nature, mais d’après le code, cette liste contiendra des AccessTokens de module. Le nom du fichier du module est interrogé en envoyant un AccessToken à l' »API module » du C&C. Le module sera ensuite téléchargé en utilisant l’API « downloadmodule ». Une fois téléchargé et décrypté, il est chargé à l’aide de la méthode « loaddllmem ».

Conclusion

Un nouveau téléchargeur, Buer, est apparu récemment dans diverses campagnes, via de la malvertising menant à des kits d’exploitation ; comme charge utile secondaire via Ostap ; et comme charge utile primaire téléchargeant des malwares tels que le cheval de Troie bancaire The Trick.

Le nouveau chargeur possède des fonctions robustes de géociblage, de profilage du système et d’anti-analyse et est actuellement commercialisé sur des forums clandestins avec des services d’installation à valeur ajoutée. Le(s) auteur(s) russophone(s) développe(nt) activement le téléchargeur avec des panneaux de contrôle sophistiqués et un riche ensemble de fonctionnalités, ce qui rend le malware compétitif sur les marchés souterrains.

Le téléchargeur est écrit en C tandis que le panneau de contrôle est écrit en .NET core, ce qui indique une optimisation pour les performances et une faible empreinte de téléchargement, ainsi que la possibilité d’installer facilement le panneau de contrôle sur des serveurs Linux — la prise en charge intégrée des conteneurs Docker facilitera encore plus sa prolifération sur les hôtes loués utilisés à des fins malveillantes, et potentiellement, les hôtes compromis également. Cette dernière capacité est incluse dans ses fonctionnalités annoncées et ses notes de mise à jour.

https://www.cert.pl/en/news/single/ostap-malware-analysis-backswap-dropper/

https://www.proofpoint.com/us/threat-insight/post/ostap-bender-400-ways-make-population-part-with-their-money

https://www.aldeid.com/wiki/X86-assembly/Instructions/sidt

https://www.aldeid.com/wiki/X86-assembly/Instructions/sldt

Indicateurs de compromission (IOC)

.

IOC

IOC Type

Description

fa699eab565f613df563ce47de5b82bde16d69c5d0c05ec9fc7f8d86ad7682ce

sha256

http[ ://45.76.247[.177 :8080/api/update/

URL

Buer C&C callback

6c694df8bde06ffebb8a259bebbae8d123effd58c9dd86564f7f70307443ccd0

sha256

197163b6eb2114f3b565391f43b44fb8d61531a23758e35b11ef0dc44d349e90

sha256

https[ ://173.212.204[.171/api/update/

URL

Buer C&C callback

9e8db7a722cc2fa13101a306343039e8783df66f4d1ba83ed6e1fe13eebaec73

sha256

(Fallout Drop)

http[ ://134.0.119[.53 :8080/api/update/

URL

Buer C&C callback

ab21d61b35a8d1dc4ffb3cc4b75094c31b8c00de3ffaaa17ce1ad15e876dbd1f

sha256

(Ostap drop)

https[ ://garrisontx[.us/api/update/

URL

Buer C&C callback

https[://185.130.104[.187/nana/kum.php?pi=18b

URL

Ostap instance dropping Buer – 2019-10-21

753276c5887ba5cb818360e797b94d1306069c6871b61f60ecc0d31c78c6d31e

sha256

Buer 2019-11-28

ffload01[.top|185.125.58[.11

ffload01[.top|185.186.141[.129

domaine|IP

Buer C&C 2019-11-28

Signatures ET et ETPRO Suricata/Snort

2029077 || ET TROJAN Buer Loader Update Request

2029079 || ET TROJAN Buer Loader Response

2029078 || ET TROJAN Buer Loader Request Download

2839684 || ET TROJAN Buer Loader Successful Payload Download

2029080 || SSL/TLS Certificate Observed (Buer Loader)

Laisser un commentaire