Präambel
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.
Diese Malware stellt ein ernsthaftes Risiko für macOS-Benutzer dar, da sie auf wichtige Systeminformationen, Browserdaten und Kryptowährungs-Wallets abzielt.
Mit einem hohen monatlichen Abonnementpreis von 3.000 US-Dollar sticht BANSHEE Stealer auf dem Markt hervor, insbesondere im Vergleich zu bekannten Stealern wie AgentTesla.
Da macOS zunehmend zu einem Hauptziel für Cyberkriminelle wird, unterstreicht BANSHEE Stealer die zunehmende Verbreitung von macOS-spezifischer Malware. Diese Analyse untersucht die technischen Details von BANSHEE Stealer und soll der Community helfen, die Auswirkungen zu verstehen und über neue Bedrohungen informiert zu bleiben.
Wichtigste Erkenntnisse
- BANSHEE Stealer unterstreicht die wachsende Zahl von macOS-Malware-Samples, da das Betriebssystem zu einem immer attraktiveren Ziel für Cyber-Bedrohungen wird.
- Der monatliche Preis von BANSHEE Stealer von 3.000 US-Dollar ist im Vergleich zu Windows-basierten Stealern bemerkenswert hoch.
- BANSHEE Stealer zielt auf eine Vielzahl von Browsern, Kryptowährungs-Wallets und rund 100 Browsererweiterungen ab, was es zu einer äußerst vielseitigen und gefährlichen Bedrohung macht.
Malware-Analyse
Die Malware, die wir in dieser Studie analysiert haben, enthielt alle C++-Symbole, was interessant ist, da wir die Codestruktur des Projekts erraten können, indem wir diese Quellcode-Dateinamen kennen, wie in der Abbildung unten zu sehen ist. Wenn wir uns die von C++ generierten globalen Variableninitialisierungsfunktionen ansehen, können wir Werte finden, die vom Benutzer während des Build-Prozesses automatisch/manuell festgelegt wurden, wie z. B. die Remote-IP, den Verschlüsselungsschlüssel, die Build-ID usw.
In der folgenden Tabelle sind die durchgesickerten .cpp
Dateinamen anhand der Symbole in der Binärdatei zusammengefasst.
Dateiname | Beschreibung |
---|---|
Controller.cpp | Verwaltet die wichtigsten Ausführungsaufgaben, einschließlich Anti-Debugging-Maßnahmen, Sprachüberprüfungen, Datenerfassung und Exfiltration. |
Browsers.cpp | Verarbeitet die Erfassung von Daten aus verschiedenen Webbrowsern. |
System.cpp | Führt AppleScripts aus, um Systeminformationen zu sammeln und Passwort-Phishing durchzuführen. |
Tools.cpp | Bietet Dienstprogrammfunktionen für Verschlüsselung, Verzeichniserstellung und Komprimierung usw. |
Wallets.cpp | Verantwortlich für das Sammeln von Daten von Kryptowährungs-Wallets. |
Debugger, VM-Erkennung und Sprachprüfungen
BANSHEE Stealer verwendet grundlegende Techniken, um der Entdeckung zu entgehen. Es erkennt das Debuggen mithilfe der sysctl-API .
Für die Virtualisierungserkennung wird der Befehl system_profiler SPHardwareDataType | grep 'Model Identifier'
ausgeführt, um zu bestimmen, ob die Zeichenfolge Virtual
im Hardwaremodellbezeichner angezeigt wird, der auf einen virtuellen Computer hindeutet. Diese Methoden sind relativ einfach und können von fortschrittlichen Sandboxes und Malware-Analysten leicht umgangen werden.
Darüber hinaus analysiert es die vom Benutzer bevorzugte kanonisierte Sprache, die von der CFLocaleCopyPreferredLanguages-API zurückgegeben wird, und sucht nach der Zeichenfolge ru
. Diese Taktik hilft der Malware, eine Infektion von Systemen zu vermeiden, auf denen Russisch die Hauptsprache ist.
Erfassung von Systeminformationen
Benutzerkennwort
Die Malware erstellt eine Osascript-Passwortabfrage mit einem Dialogfeld, das besagt, dass Sie zum Starten der Anwendung die Systemeinstellungen aktualisieren müssen. Bitte geben Sie Ihr Passwort ein.
Wenn der Benutzer das Kennwort eingibt, wird es mit dem Befehl dscl validiert, indem dscl Local/Default -authonly <username> <password>
Falls gültig, wird das Passwort in die folgende Datei geschrieben /Users/<username>/password-entered
.
Diese Anmeldeinformationen können genutzt werden, um die auf dem System gespeicherten Schlüsselbunddaten zu entschlüsseln und Zugriff auf alle gespeicherten Passwörter zu gewähren.
Sammlung von Datei-, Software- und Hardwareinformationen
Die Funktion sammelt System::collectSystemInfo
Systeminformationen und serialisiert sie in einem JSON-Objekt. Er führt den Befehl system_profiler SPSoftware DataType SPHardwareDataType
aus, der Details über die Software und Hardware des Systems enthält. Er erhält die öffentliche IP-Adresse des Computers, indem er sie über den integrierten macOS cURL
-Befehl von freeipapi.com
anfordert.
Die JSON-Datei wird unter <temporary_path>/system_info.json
BANSHEE Stealer führt AppleScripts aus; Interessanterweise schreibt es die AppleScripts in dieselbe Datei /tmp/tempAppleScript
.
Das erste Skript, das zuerst ausgeführt wird, schaltet den Systemton mit osascript -e 'set volume with output muted'
Befehl stumm. Anschließend werden verschiedene Dateien aus dem System gesammelt, die im Folgenden aufgeführt sind:
- Safari-Kekse
- Notizen-Datenbank
- Dateien mit den folgenden Erweiterungen
.txt
,.docx
,.rtf
,.doc
,.wallet
,.keys
oder.key
aus den Ordnern Desktop und Dokumente.
Passwörter für Schlüsselbunde ausgeben
Es kopiert den Schlüsselbund des Systems /Library/Keychains/login.keychain-db
in die <temporary_path>/Passwords
Browser-Sammlung
BANSHEE sammelt derzeit Daten von 9 verschiedenen Browsern, einschließlich Browserverlauf, Cookies, Logins usw.:
- Chrom
- Firefox
- Tapfer
- Edge
- Vivaldi
- Yandex
- Oper
- OperaGX
In Bezug auf Safari werden nur die Cookies vom AppleScript-Skript für die aktuelle Version gesammelt.
Darüber hinaus werden Daten von etwa 100 Browser-Plugins von dem Gerät gesammelt. Eine Liste dieser Erweiterungs-IDs finden Sie am Ende des Blogbeitrags.
Die gesammelten Dateien werden unter <temporary_path>/Browsers
gespeichert.
Portemonnaie-Kollektion
- Exodus
- Elektron
- Coinomi
- Guarda
- Wasabi Geldbörse
- Atomar
- Hauptbuch
Die gesammelten Wallets werden unter <temporary_path>/Wallets
gespeichert.
Exfiltration
Nachdem die Malware das Sammeln von Daten abgeschlossen hat, komprimiert sie zunächst den temporären Ordner mit dem Befehl ditto
ZIP. Die ZIP-Datei wird dann XOR-verschlüsselt und base64-codiert und über eine Post-Anfrage an die URL: http://45.142.122[.]92/send/
mit dem integrierten cURL-Befehl gesendet.
Erkennung von Verhalten
- Zugriff auf Krypto-Wallet-Dateien durch unsignierte oder nicht vertrauenswürdige Binärdateien
- Anmeldedaten von Webbrowsern, auf die von einem nicht signierten oder nicht vertrauenswürdigen Prozess zugegriffen wird
- Osascript-Nutzlast: Ablegen und Ausführen
- Potenzielles Phishing von Anmeldeinformationen über Osascript
YARA-Regel
Elastic Security hat YARA-Regeln erstellt, um diese Aktivität zu identifizieren. Im Folgenden finden Sie YARA-Regeln zur Identifizierung der BANSHEE-Malware:
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_*)
}
Fazit
BANSHEE Stealer ist eine macOS-basierte Malware, die umfangreiche Daten aus dem System, Browsern, Kryptowährungs-Wallets und zahlreichen Browsererweiterungen sammeln kann. Trotz ihrer potenziell gefährlichen Fähigkeiten erleichtern das Fehlen einer ausgeklügelten Verschleierung und das Vorhandensein von Debug-Informationen die Analyse und das Verständnis der Malware für Analysten. Obwohl BANSHEE Stealer in seinem Design nicht übermäßig komplex ist, machen sein Fokus auf macOS-Systeme und die Breite der gesammelten Daten es zu einer bedeutenden Bedrohung, die die Aufmerksamkeit der Cybersicherheits-Community erfordert.
Observables
Alle Observables stehen auch im ECS- und STIX-Format in einem kombinierten Zip-Bundle zum Download zur Verfügung.
Die folgenden Observablen wurden in dieser Studie diskutiert.
Observable | Typ | Name | Referenz |
---|---|---|---|
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782 | SHA-256 | BANSHEE-Stealer | |
45.142.122[.]92 | IPv4-ADDR | BANSHEE stealer C2 |