Preámbulo
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.
Este malware presenta un grave riesgo para los usuarios de macOS, ya que se dirige a información vital del sistema, datos del navegador y carteras de criptomonedas.
Con un elevado precio de subscripción mensual de 3.000 dólares, BANSHEE Stealer destaca en el mercado, especialmente en comparación con ladrones conocidos como AgentTesla.
A medida que macOS se convierte cada vez más en un objetivo principal para los ciberdelincuentes, BANSHEE Stealer subraya la creciente observación del malware específico de macOS. Este análisis explora los detalles técnicos de BANSHEE Stealer, con el objetivo de ayudar a la comunidad a comprender su impacto y mantener informada sobre las amenazas emergentes.
Conclusiones clave
- BANSHEE Stealer destaca el creciente número de muestras de malware de macOS a medida que el sistema operativo se convierte en un objetivo más atractivo para las amenazas cibernéticas.
- El precio mensual de $ 3,000 de BANSHEE Stealer es notablemente alto en comparación con los ladrones basados en Windows.
- BANSHEE Stealer se dirige a una amplia gama de navegadores, billeteras de criptomonedas y alrededor de 100 extensiones de navegador, lo que lo convierte en una amenaza muy versátil y peligrosa.
Análisis de malware
El malware que analizamos en esta investigación contenía todos los símbolos de C++, lo cual es interesante ya que podemos adivinar la estructura del código del proyecto conociendo estos nombres de archivos de código fuente, como se ve en la imagen a continuación. Al observar las funciones de inicialización de variables globales generadas por C++, podemos encontrar valores establecido automáticamente/manualmente por el usuario durante el proceso de compilación, como la IP remota, la clave de cifrado, el ID de compilación, etc.
En la tabla siguiente se resumen los nombres de archivo .cpp
filtrados a través de los símbolos del binario.
Nombre de archivo | Descripción |
---|---|
Controller.cpp | Gestiona las tareas de ejecución principales, incluidas las medidas antidepuración, las comprobaciones de idioma, la recopilación de datos y la exfiltración. |
Browsers.cpp | Maneja la recopilación de datos de varios navegadores sitio web. |
System.cpp | Ejecuta AppleScripts para recopilar información del sistema y realizar suplantación de identidad de contraseñas. |
Tools.cpp | Proporciona funciones de utilidad para cifrado, creación y compresión de directorios, etc. |
Wallets.cpp | Responsable de recopilar datos de las billeteras de criptomonedas. |
Depurador, detección de máquinas virtuales y comprobaciones de idioma
BANSHEE Stealer emplea técnicas básicas para evadir la detección. Detecta la depuración mediante el uso de la API sysctl .
Para la detección de virtualización, ejecuta el comando system_profiler SPHardwareDataType | grep 'Model Identifier'
para determinar si la cadena Virtual
aparece en el identificador del modelo de hardware, lo que sugiere una máquina virtual. Estos métodos son relativamente simples y pueden ser fácilmente eludidos por sandboxes avanzados y analistas de malware.
Además, analiza el lenguaje canónico preferido por el usuario devuelto por la API CFLocaleCopyPreferredLanguages y busca la cadena ru
. Esta táctica ayuda al malware a evitar infectar sistemas en los que el ruso es el idioma principal.
Recopilación de información del sistema
Contraseña de usuario
El malware crea una solicitud de contraseña de Osascript con un cuadro de diálogo que dice que para iniciar la aplicación, debe actualizar la configuración del sistema. Por favor, introduzca su contraseña.
Cuando el usuario introduzca la contraseña, se validará mediante el comando dscl ejecutando dscl Local/Default -authonly <username> <password>
Si es válida, la contraseña se escribirá en el siguiente archivo /Users/<username>/password-entered
.
Estas credenciales se pueden aprovechar para descifrar los datos del llavero almacenados en el sistema, lo que otorga acceso a todas las contraseñas almacenadas.
Recopilación de información de archivos, software y hardware
La función System::collectSystemInfo
recopila información del sistema y la serializa en un objeto JSON. Ejecuta el comando system_profiler SPSoftware DataType SPHardwareDataType
, que proporciona detalles sobre el software y el hardware del sistema. Obtiene la IP pública de la máquina aplicar a freeipapi.com
a través del comando cURL
integrado de macOS.
El archivo JSON se almacenará en <temporary_path>/system_info.json
El ladrón BANSHEE ejecuta AppleScripts; curiosamente, escribe los AppleScripts en el mismo archivo /tmp/tempAppleScript
.
El primer script que se ejecuta primero silencia el sonido del sistema con osascript -e 'set volume with output muted'
comando. A continuación, recopila varios archivos del sistema, que se enumeran a continuación:
- Galletas de Safari
- Base de datos de notas
- Los archivos con las siguientes extensiones
.txt
,.docx
,.rtf
,.doc
,.wallet
,.keys
o.key
de las carpetas Escritorio y Documentos.
Volcar contraseñas de llaveros
Copia el llavero del sistema /Library/Keychains/login.keychain-db
a <temporary_path>/Passwords
Colección de navegadores
BANSHEE recopila datos de 9 diferentes navegadores actualmente, incluido el historial del navegador, cookies, inicios de sesión, etc.:
- Cromo
- Firefox (en inglés)
- Valiente
- Edge
- Vivaldi
- Yandex
- Ópera
- OperaGX
Con respecto a Safari, solo las cookies son recopiladas por el script AppleScript para la versión actual.
Además, se recopilan datos de aproximadamente 100 complementos del navegador de la máquina. Al final de la entrada del blog se proporciona una lista de estos identificadores de extensión.
Los archivos recopilados se almacenan bajo <temporary_path>/Browsers
.
Colección de carteras
- Exodus
- Electro
- Coinomi
- Guarda
- Cartera Wasabi
- Atómico
- Libro mayor
Las billeteras recopiladas se almacenan en <temporary_path>/Wallets
.
Exfiltración
Una vez que el malware termina de recopilar datos, primero comprime ZIP la carpeta temporal mediante el comando ditto
. A continuación, el archivo zip se cifra con XOR y se codifica en base64 y se envía a través de una solicitud post a la URL: http://45.142.122[.]92/send/
con el comando cURL incorporado.
Detección de comportamientos
- Acceso a archivos de billetera criptográfica mediante binario sin firmar o no confiable
- Datos de credenciales del explorador sitio web a los que se accede mediante un proceso sin firmar o que no es de confianza
- Osascript Payload Drop and Execute
- Posible phishing de credenciales a través de Osascript
Regla YARA
Elastic Security creó reglas YARA para identificar esta actividad. A continuación se muestran las reglas de YARA para identificar el malware 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_*)
}
Conclusión
BANSHEE Stealer es un malware basado en macOS que puede recopilar una gran cantidad de datos del sistema, los navegadores, las billeteras de criptomonedas y numerosas extensiones del navegador. A pesar de sus capacidades potencialmente peligrosas, la falta de ofuscación sofisticada del malware y la presencia de información de depuración hacen que sea más fácil de diseccionar y comprender para los analistas. Si bien BANSHEE Stealer no es demasiado complejo en su diseño, su enfoque en los sistemas macOS y la amplitud de los datos que recopila lo convierten en una amenaza significativa que exige la atención de la comunidad de ciberseguridad.
Observables
Todos los observables también están disponibles para su descarga en formato ECS y STIX en un paquete zip combinado.
En esta investigación se discutieron los siguientes observables.
Observable | Tipo | Nombre | Referencia |
---|---|---|---|
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782 | SHA-256 | Ladrón de BANSHEE | |
45.142.122[.]92 | IPv4-ADDR | Ladrón de BANSHEE C2 |