Elastic Security Labs

Au-delà du gémissement : déconstruction du voleur d'informations BANSHEE

Le malware BANSHEE est un voleur d'informations basé sur macOS qui cible les informations système, les données du navigateur et les portefeuilles de crypto-monnaies.

10 minutes de lectureAnalyse des malwares
Au-delà des lamentations : déconstruire le voleur d'informations BANSHEE

Préambule

In August 2024, a novel macOS malware named "BANSHEE Stealer" emerged, catching the attention of the cybersecurity community. Reportedly developed by Russian threat actors, BANSHEE Stealer was introduced on an underground forum and is designed to function across both macOS x86_64 and ARM64 architectures.

Ce logiciel malveillant présente un risque grave pour les utilisateurs de macOS, en ciblant les informations vitales du système, les données du navigateur et les portefeuilles de crypto-monnaies.

Avec un prix d'abonnement mensuel élevé de 3 000 $, BANSHEE Stealer se distingue sur le marché, en particulier par rapport à des voleurs connus comme AgentTesla.

Alors que macOS devient de plus en plus une cible privilégiée pour les cybercriminels, BANSHEE Stealer souligne l'augmentation du nombre de logiciels malveillants spécifiques à macOS. Cette analyse explore les détails techniques de BANSHEE Stealer, dans le but d'aider la communauté à comprendre son impact et à rester informée des menaces émergentes.

Principaux points abordés dans cet article

  • BANSHEE Stealer met en évidence le nombre croissant d'échantillons de logiciels malveillants pour macOS, le système d'exploitation devenant une cible plus attrayante pour les cybermenaces.
  • Le prix mensuel de 3 000 dollars de BANSHEE Stealer est particulièrement élevé par rapport aux voleurs basés sur Windows.
  • BANSHEE Stealer cible un large éventail de navigateurs, de portefeuilles de crypto-monnaies et environ 100 extensions de navigateur, ce qui en fait une menace très polyvalente et dangereuse.

Analyse des malwares

Le logiciel malveillant que nous avons analysé dans le cadre de cette étude contenait tous les symboles C++, ce qui est intéressant car nous pouvons deviner la structure du code du projet en connaissant les noms des fichiers du code source, comme le montre l'image ci-dessous. En examinant les fonctions d'initialisation des variables globales générées par le C++, nous pouvons trouver des valeurs définies automatiquement/manuellement par l'utilisateur au cours du processus de construction, comme l'adresse IP distante, la clé de cryptage, l'identifiant de construction, etc.

Le tableau suivant résume les noms des fichiers fuyant .cpp par le biais des symboles dans le fichier binaire.

Nom du fichierDescription
Controller.cppGère les tâches d'exécution essentielles, y compris les mesures anti-débogage, les contrôles linguistiques, la collecte de données et l'exfiltration.
Browsers.cppGère la collecte de données provenant de divers navigateurs web.
System.cppExécute des AppleScripts pour recueillir des informations sur le système et procéder à l'hameçonnage de mots de passe.
Tools.cppFournit des fonctions utilitaires pour le cryptage, la création de répertoires, la compression, etc.
Wallets.cppResponsable de la collecte des données des portefeuilles de crypto-monnaies.

Débogueur, détection des machines virtuelles et contrôles linguistiques

Le voleur de BANSHEE utilise des techniques de base pour échapper à la détection. Il détecte le débogage en utilisant l'API sysctl.

Pour la détection de la virtualisation, il exécute la commande system_profiler SPHardwareDataType | grep 'Model Identifier' pour déterminer si la chaîne Virtual apparaît dans l'identifiant du modèle de matériel, ce qui suggère une machine virtuelle. Ces méthodes sont relativement simples et peuvent être facilement contournées par les bacs à sable avancés et les analystes de logiciels malveillants.

En outre, il analyse la langue canonisée préférée de l'utilisateur renvoyée par l'API CFLocaleCopyPreferredLanguages et recherche la chaîne ru. Cette tactique permet au logiciel malveillant d'éviter d'infecter des systèmes dont la langue principale est le russe.

Collecte d'informations sur le système

Mot de passe de l'utilisateur

Le logiciel malveillant crée une invite de mot de passe Osascript avec une boîte de dialogue indiquant que pour lancer l'application, vous devez mettre à jour les paramètres du système. Veuillez saisir votre mot de passe.

Lorsque l'utilisateur saisit le mot de passe, celui-ci est validé à l'aide de la commande dscl en exécutant dscl Local/Default -authonly <username> <password>

S'il est valide, le mot de passe sera écrit dans le fichier suivant /Users/<username>/password-entered.

Ces informations d'identification peuvent être utilisées pour décrypter les données du trousseau stockées sur le système, ce qui permet d'accéder à tous les mots de passe enregistrés.

Collecte d'informations sur les fichiers, les logiciels et le matériel

La fonction System::collectSystemInfo collecte des informations sur le système et les sérialise dans un objet JSON. Il exécute la commande system_profiler SPSoftware DataType SPHardwareDataType, qui fournit des informations sur le logiciel et le matériel du système. Il obtient l'IP publique de la machine en la demandant à freeipapi.com par le biais de la commande macOS cURL intégrée.

Le fichier JSON sera enregistré sous <temporary_path>/system_info.json

Le voleur BANSHEE exécute des AppleScripts ; il est intéressant de noter qu'il écrit les AppleScripts dans le même fichier /tmp/tempAppleScript.

Le premier script à exécuter commence par couper le son du système avec la commande osascript -e 'set volume with output muted'. Il collecte ensuite divers fichiers du système, qui sont énumérés ci-dessous :

  • Cookies Safari
  • Base de données des notes
  • Fichiers portant les extensions suivantes : .txt, .docx, .rtf, .doc, .wallet, .keys, ou .key à partir des dossiers Desktop et Documents.

Vider les mots de passe du trousseau

Il copie le trousseau de clés du système /Library/Keychains/login.keychain-db vers <temporary_path>/Passwords

Collection de navigateurs

BANSHEE collecte actuellement des données provenant de 9 différents navigateurs, y compris l'historique de navigation, les cookies, les connexions, etc :

  • Chrome
  • Firefox
  • Courageux
  • Edge
  • Vivaldi
  • Yandex
  • Opéra
  • OperaGX

En ce qui concerne Safari, seuls les cookies sont collectés par le script AppleScript pour la version actuelle.

En outre, des données provenant d'environ 100 plugins de navigateur sont collectées sur la machine. Une liste de ces identifiants d'extension est fournie à la fin de l'article de blog.

Les fichiers collectés sont enregistrés sous <temporary_path>/Browsers.

Collection de portefeuilles

  • Exodus
  • Electrum
  • Coinomi
  • Guarda
  • Portefeuille Wasabi
  • Atomique
  • Grand livre

Les portefeuilles collectés sont stockés à l'adresse <temporary_path>/Wallets.

Exfiltration

Une fois que le logiciel malveillant a fini de collecter les données, il commence par compresser le dossier temporaire à l'aide de la commande ditto. Le fichier zip est ensuite crypté par XOR et encodé en base64, puis envoyé par une requête post à l'URL : http://45.142.122[.]92/send/ avec la commande cURL intégrée.

Détection des comportements

Règle YARA

Elastic Security a créé des règles YARA pour identifier cette activité. Vous trouverez ci-dessous les règles de YARA permettant d'identifier le logiciel malveillant BANSHEE :

rule Macos_Infostealer_Banshee {
    meta:
        author = "Elastic Security"
        creation_date = "2024-08-13"
        last_modified = "2024-08-13"
        os = "MacOS"
        arch = "x86, arm64"
        category_type = "Infostealer"
        family = "Banshee"
        threat_name = "Macos.Infostealer.Banshee"
        license = "Elastic License v2"

    strings:
        $str_0 = "No debugging, VM, or Russian language detected." ascii fullword
        $str_1 = "Remote IP: " ascii fullword
        $str_2 = "Russian language detected!" ascii fullword
        $str_3 = " is empty or does not exist, skipping." ascii fullword
        $str_4 = "Data posted successfully" ascii fullword
        $binary_0 = { 8B 55 BC 0F BE 08 31 D1 88 08 48 8B 45 D8 48 83 C0 01 48 89 45 D8 E9 }
        $binary_1 = { 48 83 EC 60 48 89 7D C8 48 89 F8 48 89 45 D0 48 89 7D F8 48 89 75 F0 48 89 55 E8 C6 45 E7 00 }
    condition:
        all of ($str_*) or all of ($binary_*)
}

Conclusion

BANSHEE Stealer est un logiciel malveillant basé sur macOS qui peut collecter de nombreuses données à partir du système, des navigateurs, des portefeuilles de crypto-monnaies et de nombreuses extensions de navigateur. Malgré ses capacités potentiellement dangereuses, l'absence d'obscurcissement sophistiqué et la présence d'informations de débogage facilitent la dissection et la compréhension du logiciel malveillant par les analystes. Bien que la conception de BANSHEE Stealer ne soit pas excessivement complexe, le fait qu'il se concentre sur les systèmes macOS et l'ampleur des données qu'il recueille en font une menace importante qui requiert l'attention de la communauté de la cybersécurité.

Observables

Toutes les observables sont également disponibles au téléchargement en format ECS et STIX dans un paquet zip combiné.

Les observables suivants ont été examinés dans le cadre de cette recherche.

ObservableTypeNomRéférence
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782SHA-256Voleur de BANSHEE
45.142.122[.]92ipv4-addrVoleur de BANSHEE C2

Partager cet article