Elastic Security Labs

Más allá del lamento: deconstruyendo el ladrón de información de BANSHEE

El malware BANSHEE es un infostealer basado en macOS cuyo objetivo es la información del sistema, los datos del navegador y las billeteras de criptomonedas.

10 min de lecturaAnálisis de malware
Más allá del lamento: deconstruir el infostealer de BANSHEE

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 archivoDescripción
Controller.cppGestiona 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.cppManeja la recopilación de datos de varios navegadores sitio web.
System.cppEjecuta AppleScripts para recopilar información del sistema y realizar suplantación de identidad de contraseñas.
Tools.cppProporciona funciones de utilidad para cifrado, creación y compresión de directorios, etc.
Wallets.cppResponsable 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, .keyso .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

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.

ObservableTipoNombreReferencia
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782SHA-256Ladrón de BANSHEE
45.142.122[.]92IPv4-ADDRLadrón de BANSHEE C2