Un nouveau malware macOS baptisé « KandyKorn » a été repéré dans une campagne attribuée au groupe de piratage nord-coréen Lazarus, ciblant les ingénieurs blockchain d’une plateforme d’échange de crypto-monnaie.

Les attaquants se font passer pour des membres de la communauté des crypto-monnaies sur les canaux Discord pour diffuser des modules basés sur Python qui déclenchent une chaîne d’infection KandyKorn à plusieurs étapes.

Elastic Security a découvert et attribué les attaques à Lazarus sur la base de chevauchements avec des campagnes précédentes concernant les techniques utilisées, l’infrastructure réseau, les certificats de signature de code et les règles de détection personnalisées de Lazarus.

Cibler la communauté crypto
L’attaque, qui démarre sur Discord, commence par des attaques d’ingénierie sociale sur des cibles pour les inciter à télécharger une archive ZIP malveillante nommée « Cross-platform Bridges.zip ».

La victime est induite en erreur en croyant qu’elle télécharge un robot d’arbitrage légitime conçu pour générer automatiquement des bénéfices à partir des transactions de crypto-monnaie.

Au lieu de cela, le script Python contenu (« Main.py ») importera 13 modules à partir d’un nombre égal de scripts dans le ZIP, lançant ainsi la première charge utile, « Watcher.py ».

Scripts Python dans le ZIP

Watcher.py est un téléchargeur qui décompresse et exécute un deuxième script Python nommé « testSpeed.py » ainsi qu’un autre fichier Python nommé « FinderTools », téléchargé à partir d’une URL Google Drive.

FinderTools est un compte-gouttes qui récupère et lance un binaire obscurci nommé « SugarLoader », qui apparaît sous deux noms et instances, sous la forme d’exécutables .sld et .log Mach-O.

Sugarloader établit une connexion avec le serveur de commande et de contrôle (C2) pour obtenir et charger la charge utile finale, KandyKorn, en mémoire à l’aide du chargement binaire réfléchissant.

Schéma de la chaîne d’attaque de Lazarus

Astuce de persistance macOS
Au stade final de l’attaque, un chargeur connu sous le nom de HLoader est utilisé, qui usurpe l’identité de Discord et utilise les techniques de signature de code binaire macOS vues dans les campagnes Lazarus précédentes.

HLoader établit la persistance de SugarLoader en détournant la véritable application Discord sur le système infecté, après une série d’actions de renommage binaire.

« Nous avons observé l’auteur de la menace adopter une technique que nous ne l’avions jamais vue utiliser auparavant pour assurer la persistance sur macOS, connue sous le nom de détournement de flux d’exécution », explique Elastic.

Plus précisément, HLOADER effectue les opérations suivantes au lancement :

  • Se renomme de Discord en MacOS.tmp
  • Renomme le binaire Discord légitime de .lock en Discord
  • Exécute à la fois Discord et .log à l’aide de NSTask.launchAndReturnError
  • Renomme les deux fichiers à leurs noms initiaux
Schéma de renommage de fichier utilisé pour la persistance

KandyKorn
KandyKorn est une charge utile avancée de dernière étape qui permet à Lazarus d’accéder aux données de l’ordinateur infecté et de les voler.

Il fonctionne en arrière-plan comme un démon, attendant les commandes du serveur C2 et évitant d’envoyer des battements de cœur pour minimiser sa trace sur le système.

KandyKorn prend en charge les 16 commandes suivantes :

  1. 0xD1 : termine le programme.
  2. 0xD2 : collecte des informations sur le système.
  3. 0xD3 : répertorie le contenu du répertoire.
  4. 0xD4 : analyse les propriétés du répertoire.
  5. 0xD5 : télécharge des fichiers du C2 vers l’ordinateur de la victime.
  6. 0xD6 : Exfiltrer les fichiers de la victime vers le C2.
  7. 0xD7 : archive et exfiltre les répertoires.
  8. 0xD8 : supprime en toute sécurité les fichiers en les écrasant par des zéros.
  9. 0xD9 : répertorie tous les processus en cours d’exécution.
  10. 0xDA : tue un processus spécifié.
  11. 0xDB : exécute les commandes système via un pseudoterminal.
  12. 0xDC : récupère les sorties de commande.
  13. 0xDD : lance un shell interactif.
  14. 0xDE : récupère la configuration actuelle.
  15. 0xDF : met à jour la configuration C2.
  16. 0xE0 : suspend temporairement les opérations.
Code d’exécution des commandes de KandyKorn

En résumé, KandyKorn est une porte dérobée particulièrement furtive capable de récupérer des données, de lister des répertoires, de télécharger/télécharger des fichiers, de supprimer de manière sécurisée, de mettre fin à des processus et d’exécuter des commandes.

Le secteur des crypto-monnaies reste une cible principale pour Lazarus, principalement motivé par le gain financier plutôt que par l’espionnage, qui est leur autre principal objectif opérationnel.

L’existence de KandyKorn souligne que macOS se situe bien dans la zone de ciblage de Lazarus, démontrant la capacité remarquable du groupe de menaces à créer des logiciels malveillants sophistiqués et discrets adaptés aux ordinateurs Apple.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *