Janeleiro, el viajero del tiempo: un viejo troyano bancario en Brasil


ESET Research descubre una nueva amenaza que se dirige a organizaciones que operan en varios sectores en Brasil

ESET Research ha estado rastreando un nuevo troyano bancario que se ha dirigido a usuarios corporativos en Brasil desde 2019 en muchas verticales que afectan a sectores como ingeniería, salud, comercio minorista, manufactura, finanzas, transporte y gobierno.

Esta nueva amenaza, a la que llamamos Janeleiro, intenta engañar a sus víctimas con ventanas emergentes diseñadas para parecerse a los sitios web de algunos de los bancos más grandes de Brasil. Estas ventanas emergentes contienen formularios falsos, cuyo objetivo es engañar a las víctimas del malware para que ingresen sus credenciales bancarias e información personal que el malware captura y filtra en sus servidores C&C. Janeleiro sigue exactamente el mismo plan para la implementación central de esta técnica que algunas de las familias de malware más importantes que se dirigen a la región: Casbaneiro, Grandoreiro, Mekotio, Amavaldo, y Vadokrist, entre otros.

A diferencia de esas conocidas familias de malware, Janeleiro está escrito en Visual Basic .NET, una gran desviación del lenguaje de programación favorito de Delphi que los actores de amenazas en la región han estado usando durante años. Janeleiro ha estado evolucionando hacia el objetivo de dar más control a los operadores para manipular y ajustar sus ventanas emergentes falsas en función de lo que necesitan para llevar a cabo el ataque, enviar clics del mouse y pulsaciones de teclas, y grabar la entrada del usuario y la pantalla en real. tiempo. La naturaleza de estos tipos de ataques no se caracteriza por sus capacidades de automatización, sino más bien por el enfoque práctico: en muchos casos, el operador debe ajustar las ventanas mediante comandos en tiempo real.

Los operadores parecen cómodos usando GitHub para almacenar sus módulos, administrando su página de organización y cargando nuevos repositorios todos los días donde almacenan los archivos con las listas de servidores C&C que los troyanos recuperan para conectarse con sus operadores. Hacer que su malware dependa de una sola fuente es un movimiento interesante, pero ¿y si le dijéramos que la versión más nueva de Janeleiro solo vive un día?

Objetivo: Brasil

Basándonos en nuestros datos de telemetría, podemos afirmar que este malware se dirige solo a usuarios corporativos. Los correos electrónicos maliciosos se envían a empresas en Brasil y, aunque no creemos que se trate de ataques dirigidos, parece que se envían en pequeños lotes. Según nuestra telemetría, los sectores afectados son ingeniería, salud, comercio minorista, manufactura, finanzas, transporte y gobierno.

En la Figura 1 se muestra un ejemplo de correo electrónico de phishing: una notificación falsa sobre una factura impaga. Contiene un enlace que conduce a un servidor comprometido. La página recuperada simplemente redirige a la descarga de un archivo ZIP alojado en Azure. Algunos otros correos electrónicos enviados por estos atacantes no tienen una redirección a través de un servidor comprometido, sino que conducen directamente al archivo ZIP.

Figura 1. Ejemplo de correo electrónico malicioso

Los servidores que alojan estos archivos ZIP con Janeleiro tienen URL que siguen la misma convención que otras URL que vimos entregando otras familias de troyanos bancarios (consulte la Indicadores de compromiso sección). En algunos casos, estas URL se han distribuido tanto a Janeleiro como a otros banqueros de Delphi en diferentes momentos. Esto sugiere que los distintos grupos delictivos comparten el mismo proveedor para enviar correos electrónicos no deseados y para alojar su malware, o que son el mismo grupo. Aún no hemos determinado qué hipótesis es la correcta.

En la Figura 2 se muestra una descripción general del ataque.

Figura 2. Descripción general del ataque de Janeleiro (simplificado)

El archivo ZIP contiene un instalador MSI que carga la DLL del troyano principal. El uso de un instalador de MSI es una técnica preferida por varias familias de malware en la región. Janeleiro recupera la dirección IP pública de la computadora y usa un servicio web para intentar geolocalizarla. Si el valor del código de país devuelto no coincide BR, el malware sale. Si se aprueba la verificación de geolocalización, Janeleiro recopila información de la máquina comprometida, que incluye:

  • Fecha y hora actual
  • Nombre y nombre de usuario de la máquina
  • Arquitectura y nombre completo del SO
  • Versión de malware
  • Nombre de la región obtenido al geolocalizar la computadora

La información se carga en un sitio web con el propósito de rastrear los ataques exitosos. Después de eso, Janeleiro recupera las direcciones IP de los servidores C&C de una página de organización de GitHub aparentemente creada por los criminales. Entonces está listo para iniciar su funcionalidad principal y esperar los comandos de un operador.

En 2020, ESET publicó un papel blanco detallando los hallazgos sobre la interconectividad de las familias latinoamericanas más prominentes de troyanos bancarios, incluyendo Casbaneiro, Grandoreiro, Amavaldo entre otros. Las similitudes descritas en ese documento están en la implementación del núcleo del troyano: notificar al operador cuando hay una ventana activa con un nombre o título interesante basado en una lista de palabras clave predefinidas, y usar una ventana emergente falsa para engañar a las víctimas potenciales pensando que están ingresando información sensible en un sitio web legítimo. Este proceso se ilustra en el diagrama de flujo de la Figura 3.

Figura 3. Implementación básica típica de troyanos bancarios de América Latina

Janeleiro sigue el modelo exacto para su implementación central como otras once familias de malware que se dirigen a Brasil. Como se muestra en la Figura 4, podemos ver algunas de las ventanas emergentes falsas creadas por Janeleiro.

Figura 4. Ventanas emergentes falsas utilizadas por Janeleiro

Janeleiro en acción

Janeleiro comienza a enumerar ventanas y a verificar sus títulos para encontrar palabras clave interesantes (como se muestra en la Figura 5) que indicarían que el usuario está visitando el sitio web de una entidad bancaria de interés, especialmente aquellas que están respaldadas por su implementación de ventanas emergentes falsas. .

Figura 5. Lista de palabras clave que busca Janeleiro en los títulos de las ventanas

Cuando se encuentra una de las palabras clave, Janeleiro intenta inmediatamente recuperar las direcciones de sus servidores C&C de GitHub y se conecta a ellos. Estas ventanas emergentes falsas se crean dinámicamente bajo demanda y son controladas por el atacante a través de comandos al malware, ya que pasan por varias etapas para engañar al usuario mientras el atacante, en tiempo real, recibe capturas de pantalla, las pulsaciones de teclas registradas e información que se ingresa en los formularios falsos.

El hecho de que los actores de amenazas abusen de GitHub no es nada nuevo; sin embargo, Janeleiro lo hace de formas bastante interesantes: los operadores han creado una página de organización de GitHub a la que renombran todos los días en el formulario SLK

dónde

es la fecha actual.

En la Figura 6 se muestra una captura de pantalla de la página de la organización de GitHub como se veía el 15 de marzo de 2021.

Figura 6. Página de organización de GitHub con repositorios utilizados por los operadores de Janeleiro

Diariamente, el operador novoescritorio1-alberto crea un nuevo repositorio siguiendo este formato de nomenclatura. El propósito del repositorio es contener un archivo que tenga la lista de direcciones IP de los servidores C&C de Janeleiro donde se conecta para reportar a sus operadores, recibir comandos y exfiltrar información en tiempo real.

En la Figura 7 se muestra una captura de pantalla que muestra uno de los repositorios en la página de organización de GitHub atribuido a los operadores de Janeleiro, incluido el nombre de usuario de la cuenta que realiza las confirmaciones.

Figura 7. Rama principal con el SLK archivo para Janeleiro versión 3

En la Figura 8 se muestra una captura de pantalla de la rama secundaria en el repositorio.

Figura 8. Rama SLK con el SLK archivo para Janeleiro versión 2

Hemos notificado a GitHub de esta actividad, pero en el momento de redactar este artículo no se han realizado acciones contra la página de la organización ni contra la cuenta que crea el repositorio con nuevas direcciones de servidor de C&C.

En la versión más reciente de Janeleiro, la versión 0.0.3, los desarrolladores introdujeron una característica interesante de cifrado / descifrado utilizando una biblioteca de código abierto llamada EncryptDecryptUtils. El nuevo procedimiento de descifrado se muestra en la Figura 9.

Figura 9. Procedimiento de descifrado implementado por Janeleiro versión 0.0.3

Para descifrar una cadena, Janeleiro cifra la cadena resultante de la fecha actual y el resultado se usa luego como una frase de contraseña y un valor de sal para crear una nueva clave para el descifrado. Esto tiene un efecto extremadamente importante: la versión más reciente de Janeleiro solo puede descifrar sus cadenas en un día previsto. Ese podría ser el mismo día en que se cifraron las cadenas o un día en el futuro, cualquier otro día, el descifrado falla.

Esto también es cierto para el contenido de la SLK archivo en la rama principal: la lista cifrada y codificada en base 64 de servidores C&C como se muestra en la Figura 10.

Figura 10. Contenido del SLK archivo en la rama principal.

Los contenidos se cifran con el mismo procedimiento: cuando Janeleiro descifra el contenido del archivo, debe estar en una fecha específica, la fecha actual, para que funcione como se esperaba.

Evolución de Janeleiro

Janeleiro tiene un valor de versión interna (como se muestra en la Figura 11) que los atacantes pueden usar para identificar qué versión de su malware comprometió exitosamente una máquina. A marzo de 2021, hemos identificado cuatro versiones, pero dos de ellas comparten el mismo número de versión interno.

Figura 11. Valores de configuración utilizados por la versión 0.0.2A de 2020

Si bien en 2021 hemos visto las versiones 0.0.2 y 0.0.3, estábamos interesados ​​en encontrar una pieza clave que faltaba en la evolución de Janeleiro: la versión 0.0.1, que debería haber existido a fines de 2019 o principios de 2020. A nuestro sorpresa, encontramos muestras de la versión 0.0.4 que datan de 2019. Estas nuevas muestras del troyano fueron implementadas por un componente cargador de DLL junto con un ladrón de contraseñas, lo que significa que el grupo detrás de Janeleiro tiene otras herramientas en su arsenal.

En la Figura 12 se muestra una descripción general de las versiones de Janeleiro desde 2019 hasta 2021.

Figura 12. Extraña línea de tiempo de evolución de Janeleiro, basada en la versión interna del malware

La inconsistencia en la línea de tiempo y la versión interna del malware sugiere que estaba en desarrollo desde 2018, y en 2020 decidieron cambiar a una versión anterior de su código y mejorar eso y refinar su procesamiento de comandos para que el operador tener un mejor control del troyano durante el ataque.

Rompedor y guardián de tradiciones

Mientras que Janeleiro sigue el mismo plan para la implementación central de sus ventanas emergentes falsas, junto con otras familias de malware que ESET tiene. documentado en la región, se distingue de esas familias de malware de varias maneras:

  • Está escrito en Visual Basic .NET: El caso curioso de Brasil es que está principalmente dirigido por troyanos bancarios desarrollados en Delphi, el lenguaje de programación elegido por varios actores de amenazas que aparentemente están trabajando juntos compartiendo herramientas e infraestructura. La preferencia de Janeleiro por VB.NET es una desviación notable de lo que parece ser la norma para la región.
  • Sin ofuscación binaria: Si bien Janeleiro hace uso de una ofuscación ligera al generar nombres aleatorios para sus clases, módulos, nombres de métodos, parámetros y encriptación de cadenas, no emplea empaquetadores para dificultar la detección y el análisis. Otros troyanos como Grandoreiro, Mekotio, Ousaban, Vadokrist y Guildma hacen un uso intensivo de Themida y técnicas de relleno binario.
  • Sin algoritmos de cifrado personalizados: Los desarrolladores de Janeleiro confían en las funciones criptográficas proporcionadas por .NET Framework, así como en proyectos de código abierto para el cifrado / descifrado de cadenas, con preferencia por los algoritmos AES y RSA. Troyanos como Casbaneiro, Grandoreiro, Amavaldo, Mispadu y Guildma, entre otros, utilizan algoritmos de cifrado personalizados, incluidas técnicas de ofuscación mediante tablas de cadenas.
  • Método simple de ejecución: El instalador de MSI no implementa otros componentes además de la DLL troyana principal ni ejecuta otras instrucciones además de cargar y ejecutar una de las exportaciones de la DLL que se instala en el sistema. No hemos encontrado muestras de un instalador de MSI que ejecute scripts ofuscados, herramientas de soporte de desempaquetado o componentes para la carga lateral de DLL, que es popular entre otras familias de malware en la región.
  • Sin defensa contra el software de seguridad: Algunos de los bancos más grandes de Brasil requieren que sus clientes instalen un módulo de seguridad antes de permitirles el acceso a sus cuentas bancarias en línea; por ejemplo, el software antifraude de Varsovia. A menudo ocurre que los troyanos bancarios de LATAM intentan averiguar si dicho software está instalado en la máquina comprometida e informar a los atacantes. Algunas familias de malware como Grandoreiro y Guildma intentan deshabilitarlo en el Firewall de Windows o deshabilitar su controlador.
  • Utiliza código de NjRAT: Janeleiro está lejos de ser otra encarnación del conocido NjRAT, pero usa el NjRAT SocketClient y funciones de captura de Escritorio remoto, así como otras funciones diversas. NjRAT no se usa comúnmente, al menos por los troyanos de horneado de LATAM, quizás debido a su preferencia por usar troyanos personalizados en Delphi. Sin embargo, entre otros programas maliciosos, NjRAT se ha utilizado en Operación Spalax, una campaña que se dirige específicamente a Colombia.

Comandos

Los comandos con parámetros se reciben del servidor C&C en forma encriptada con el mismo algoritmo usado para encriptar cadenas (ver sección Apéndice A). Un formato de comando típico es el siguiente: % CommandName %% PredefinedSeparatorKeyword %% Parámetros%.

Después del descifrado, el comando se divide en una matriz de cadenas; cada parte del comando está separada por una palabra clave predefinida codificada en la configuración del malware; todas las versiones que analizamos usan | ’Meio’ |, que separa el nombre del comando y cada parámetro.

La Figura 13 muestra cómo Janeleiro verifica el nombre del comando y ejecuta la acción solicitada.

Figura 13. Ejemplo de comando de procesamiento de la versión 0.0.2B startinfo

Cuando Janeleiro envía datos al operador, lo hace en un formato similar: % CommandName %% PredefinedSeparatorKeyword %% Datos codificados%.

La mayoría de los comandos de Janeleiro son para controlar las ventanas, el mouse y el teclado, y sus ventanas emergentes falsas. A medida que el desarrollo evolucionó de la versión 0.0.2A a la 0.0.3, se agregaron más comandos que ofrecieron al operador un control más refinado:

  • Comandos para controlar una ventana específica
  • Enumerar y enviar información sobre ventanas (título, clase, identificador)
  • Ajustar el tamaño de ventana específico, minimizar, maximizar
  • Dimensiones de la pantalla
  • Mátalos a todos chrome.exe procesos y reiniciar chrome.exe con argumentos –Disable-gpu
  • Captura la pantalla en tiempo real
  • Registro de teclas en tiempo real
  • Enviar claves y clics del mouse
  • Mostrar o cerrar una ventana emergente falsa específica
  • Mostrar o cerrar una ventana emergente falsa específica
  • Comandos misceláneos como: enviar fecha y hora, desconectar el enchufe, terminar su propio proceso

Conclusión

La naturaleza experimental de Janeleiro, yendo y viniendo entre diferentes versiones, nos habla de un actor que todavía está tratando de encontrar la manera correcta de hacerlo, pero no tiene menos experiencia que la competencia: Janeleiro sigue el plan único para la implementación central de las ventanas emergentes falsas como muchos troyanos bancarios de LATAM, esto no parece ser una coincidencia o inspiración: este actor emplea y distribuye Janeleiro compartiendo la misma infraestructura que algunas de las familias de malware activas más prominentes. A medida que continuamos rastreando las actividades de este actor, el tiempo dirá qué nuevos desarrollos se les ocurrirán en el futuro.

Para cualquier consulta, o para hacer presentaciones de muestra relacionadas con el tema, contáctenos en amenazaintel@eset.com.

Un agradecimiento especial a Johnatan Camargo Zacarias del banco Itaú por su ayuda con la investigación.

Indicadores de compromiso (IoC)

Puede encontrar una lista completa de indicadores de compromiso (IoC) y ejemplos en nuestro Repositorio de GitHub.

Hash SHA-1

Versión 0.0.4

SHA-1 Descripción Nombre de detección de ESET
CF117E5CA26594F497E0F15106518FEE52B88D8D Archivo MSI MSIL / TrojanDownloader.Agent.FSC
D16AC192499192F06A3903192A4AA57A28CCCA5A Cargador Console.exe MSIL / TrojanDownloader.Agent.FSC
462D6AD77860D3D523D2CAFBC227F012952E513C MSIL / Kryptik.TBD
0A5BBEC328FDD4E8B2379AF770DF8B180411B05D Cargador LoadDllMSI.dll MSIL / TrojanDownloader.Agent.FSC
0AA349050B7EF173BFA34B92687554E81EEB28FF System.Logins.Initial.dll MSIL / Agent.TIX
5B19E2D1950ADD701864D5F0F18A1111AAABEA28
186E590239083A5B54971CAB66A58301230164C2 System.Modules.Initial.dll
E1B2FD94F16237379E4CAD6832A6FCE7F543DC40 System.Modules.Initial.dll MSIL / Janeleiro.A
4061B2FBEB7F1026E54EE928867169D1B001B7A5

Versión 0.0.2A

SHA-1 Descripción Nombre de detección de ESET
8674E61B421A905DA8B866A194680D08D27D77AE Cargador de troyanos principal MSIL / Agent.AAI
2E5F7D5F680152E738B8910E694651D48126382A MSIL / Janeleiro.A
06E4F11A2A6EF8284C6AAC5A924D186410257650 Troyano principal MSIL / Agent.AAI

Versión 0.0.2B

SHA-1 Descripción Nombre de detección de ESET
291A5F0DF18CC68FA0DA1B7F401EAD17C9FBDD7F Archivo MSI MSIL / Janeleiro.A
FB246A5A1105B83DFA8032394759DBC23AB81529
6F6FF405F6DA50B517E82FF9D1A546D8F13EC3F7 Troyano principal
742E0AEDC8970D47F16F5549A6B61D839485DE3C

Versión 0.0.3

SHA-1 Descripción Nombre de detección de ESET
455FAF2A741C28BA1EFCE8635AC0FCE935C080FF Archivo MSI MSIL / Janeleiro.A
D71EB97FC1F5FE50D608518D2820CB96F2A3376F
158DA5AB85BFAC471DC2B2EE66FD99AEF7432DBB Troyano principal
6BFAEFCC0930DA5A2BAEC19723C8C835A003D1EC

URL de descarga

En el siguiente es un número aleatorio entre 10000000000 y 90000000000.

Descargando solo Janeleiro

  • https://recuperaglobaldanfeonline.eastus.cloudapp.azure (.) com / nfedown.php? dw =
  • https://protocolo-faturamento-servico.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =
  • https://acessoriapremierfantasiafaturas.eastus.cloudapp.azure (.) com / nfedown.php? dw =

Descarga de Janeleiro y otros troyanos bancarios de Delphi

  • https://portalrotulosfechamento.eastus.cloudapp.azure (.) com / nfedown.php? dw =
  • https://servicosemitidosglobalnfe.southcentralus.cloudapp.azure (.) com / nfedown.php? dw =
  • https://emissaocomprovanteatrasado.eastus.cloudapp.azure (.) com / nfedown.php? dw =

Descargando Delphi bankers

  • https://emitidasfaturasfevereiro.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =
  • https://dinamicoscontratosvencidos.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =
  • https://arquivosemitidoscomsucesso.eastus.cloudapp.azure (.) com / nfedown.php? dw =
  • https://fatura-digital-arquiv-lo.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =
  • https://nota-eletronica-servicos.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =
  • https://eletronicadanfe.brazilsouth.cloudapp.azure (.) com / nfedown.php? dw =

Servidores C&C

Estas son las direcciones IP de los servidores de C&C donde Janeleiro se conecta para informar, recibir comandos y enviar datos:

  • 52.204.58 (.) 11
  • 35.174.60 (.) 172

Estas son las URL de seguimiento a las que Janeleiro envía información sobre el sistema comprometido durante la instalación:

  • http: //tasoofile.us-east-1.elasticbeanstalk (.) com / count
  • http: //slkvemnemim.us-east-1.elasticbeanstalk (.) com / count
  • http: //checa-env.cf3tefmhmr.eu-north-1.elasticbeanstalk (.) com / cnt /

Estas son las URL utilizadas por System.Logins.dll para exfiltrar los datos recolectados:

  • http: //comunicador.duckdns (.) org / catalista / emails / checkuser.php
  • http: //comunicador.duckdns (.) org / catalista / lixo / index.php

IP asociadas al dominio:

  • 178.79.178 (.) 203
  • 138.197.101 (.) 4

Técnicas MITRE ATT & CK

Nota: esta tabla fue construida usando versión 8 del marco MITRE ATT & CK.

Táctica IDENTIFICACIÓN Nombre Descripción
Desarrollo de recursos T1584.004 Infraestructura de compromiso: servidor En algunos casos, los correos electrónicos maliciosos enviados a los objetivos contienen enlaces a un servidor comprometido que redirige a la descarga de Janeleiro.
Acceso inicial T1566.002 Phishing: enlace de spearphishing Los atacantes envían correos electrónicos maliciosos que tienen un enlace de descarga para el malware Janeleiro.
Ejecución T1204.001 Ejecución del usuario: enlace malicioso Los correos electrónicos de phishing enviados por los atacantes contienen un enlace para descargar un archivo ZIP que contiene un instalador de MSI con el malware Janeleiro.
Persistencia T1547.001 Ejecución de inicio automático de inicio o inicio de sesión: claves de ejecución del registro / carpeta de inicio Janeleiro logra la persistencia agregándose a sí mismo a la clave de registro Ejecutar (en la v0.0.3 del malware).
T1547.009 Ejecución de inicio automático de inicio o inicio de sesión: modificación de acceso directo Janeleiro crea un archivo LNK para la persistencia (en v0.0.4, v0.0.2A y v0.0.2B del malware).
Evasión de defensa T1140 Desofuscar / decodificar archivos o información Janeleiro v0.0.2B está ofuscado y sus cadenas están encriptadas con RSA. La versión 0.0.3 usa AES para el cifrado de cadenas.
Acceso a credenciales T1555.003 Credenciales de almacenes de contraseñas: Credenciales de navegadores web Janeleiro v0.0.4 puede descargar una DLL que roba contraseñas de los navegadores Chrome, Firefox y Opera.
T1552.001 Credenciales no seguras: credenciales en archivos Janeleiro v0.0.4 puede descargar una DLL que obtiene contraseñas almacenadas en archivos de varias aplicaciones como FileZilla, Pidgin y Thunderbird.
Descubrimiento T1087.003 Descubrimiento de cuenta: cuenta de correo electrónico Janeleiro v0.0.4 puede descargar una DLL que recopila direcciones de Gmail.
T1010 Descubrimiento de la ventana de la aplicación Janeleiro recopila información sobre las ventanas abiertas para que el atacante pueda decidir inyectar ventanas emergentes.
T1082 Descubrimiento de información del sistema Janeleiro recopila información de la máquina de la víctima, como el nombre de usuario, el sistema operativo y la arquitectura.
T1033 Descubrimiento de propietario / usuario del sistema Janeleiro recopila el nombre de usuario de la máquina de la víctima.
T1124 Descubrimiento de la hora del sistema Janeleiro recopila la fecha y hora actual en que la víctima está comprometida.
Colección T1115 Datos del portapapeles Janeleiro usa un controlador de eventos del portapapeles para acceder a los datos del portapapeles.
T1056.001 Captura de entrada: registro de teclas Janeleiro puede realizar keylogging.
T1113 La captura de pantalla Janeleiro puede realizar capturas de pantalla del escritorio de la víctima.
T1056.002 Captura de entrada: Captura de entrada GUI Janeleiro muestra formularios falsos en la parte superior de los sitios bancarios para interceptar las credenciales de las víctimas.
Comando y control T1095 Protocolo de capa que no es de aplicación Janeleiro usa TCP para las comunicaciones C&C.
T1102.001 Servicio web: Dead Drop Resolver Janeleiro usa repositorios de GitHub para almacenar información de C&C.
Exfiltración T1041 Exfiltración sobre canal C2 Janeleiro extrae datos a través del mismo canal utilizado para C&C.

Apéndice A: descripción general de la familia de malware de Janeleiro

Aquí está cada encarnación que hemos encontrado de Janeleiro desde 2019 hasta marzo de 2021.

Versión 0.0.4

  • Periodo de actividad: 2019 – Posiblemente todavía activo.
  • La primera versión de Janeleiro, que conocemos, vino en forma de un instalador MSI y al menos dos variantes:
    • Variante 1: el instalador de MSI carga una DLL llamada LoadDllMSI.dll internamente
    • Variante 2: se ejecuta el instalador de MSI Console.exe, que verifica los privilegios y carga un ensamblado DLL incrustado llamado LoadSystem.dll.

Ambas cosas LoadDllMSI.dll y LoadSystem.dll realizar las mismas tareas:

  • Crea una carpeta de instalación
  • Descarga y almacena dos módulos: Logins.Initial.dll y System.Modules.Initial.dll. Los dos módulos se descargan de una cuenta de GitHub que, en el momento de escribir este artículo, se ha cerrado.
  • Crea varios atajos en lugares estratégicos
  • Registre el compromiso exitoso del sistema en un sitio web de seguimiento

Inicios de sesión del sistema: Es un ladrón de contraseñas para Google Chrome, FileZilla, Mozilla Firefox, Opera, Pidgin y Mozilla Thunderbird. Además, recopila información de correo electrónico de Gmail. Toda la información se filtra a dos sitios web. La versión 0.0.4 es la única que se implementa con esta herramienta maliciosa.

Módulos del sistema: El troyano principal de Janeleiro, implementado como una aplicación de Windows Forms compilada como DLL. Esta versión tenía la capacidad de crear dinámicamente ventanas emergentes falsas utilizando varios Formularios para varias entidades bancarias, incluidos los bancos que operan en México, pero se desconoce si esta versión se distribuyó en México en algún momento.

Esta versión utilizó dos páginas de organización de GitHub para descargar las direcciones IP de sus servidores C&C: los nombres de las páginas se generan cifrando la fecha actual con SLK como sufijo como se muestra en la Figura 14.

Figura 14. La versión 0.0.4 intenta leer el archivo en un repositorio de GitHub que contiene la lista encriptada de servidores C&C

En el momento de escribir este artículo, creemos que los operadores han abandonado esta versión del malware. No pudimos encontrar ninguna página de GitHub activa siguiendo el algoritmo de generación de nombres utilizado por Janeleiro.

Muchos comandos para el troyano se dejaron sin implementar, algunos se implementaron y otros se descartaron en versiones más recientes utilizadas en 2020 y 2021.

Versión 0.0.2A

  • Periodo de actividad: 2020 – Desconocido.
  • Versión de malware interno: 0.0.2

El instalador de MSI carga una DLL que toma prestada de LoadSystem procedimientos de instalación y persistencia, pero descomprime la DLL troyana principal incorporada de sus recursos. El troyano principal se implementó como una aplicación de Windows Forms compilada como DLL.

Esta versión de Janeleiro solo usa un Formulario para crear las ventanas emergentes falsas con más comandos soportados por el operador pero con menos objetivos: las entidades bancarias mexicanas fueron descartadas. Todas las imágenes que se utilizan para cubrir la pantalla y engañar al usuario son para bancos brasileños.

Esta versión también parece haber sido abandonada y no puede ponerse en contacto con sus servidores C&C recuperando las listas de IP de una página de GitHub. Utiliza el mismo algoritmo que la versión 0.0.4 con la misma clave vhpjzqqtpo, lo que sugiere que los operadores estaban usando la misma página de GitHub que para la versión 0.0.4. La Figura 15 muestra el código que intenta recuperar la lista de GitHub.

Figura 15. La versión 0.0.2A intenta descargar una nueva lista de servidores C&C desde un repositorio en una página de organización de GitHub

Versión 0.0.2B

  • Periodo de actividad: 2021 – Todavía activo.
  • Versión de malware interno: 0.0.2

Nuevas características de esta versión:

  • Implementado como una aplicación de Windows Presentation Foundation
  • Gran reestructuración del código combinando el código del cargador con el troyano principal
  • Geolocalización de la máquina comprometida
  • Implementación del secuestro del portapapeles para reemplazar las direcciones de bitcoin
  • Conjunto ampliado de comandos compatibles
  • Cadenas cifradas / descifradas con el algoritmo RSA

La Figura 16 muestra la implementación del secuestro de portapapeles por Janeleiro; cuando se encuentra una dirección de bitcoin, elige al azar una de su propia lista de direcciones de bitcoin y la reemplaza.

Figura 16. Implementación de Janeleiro del secuestro del portapapeles

En esta versión se implementó un procedimiento simplificado para recuperar las direcciones de sus servidores C&C de una página de organización de GitHub; el esquema de nombres esta vez es una simple concatenación de SLK con la fecha y hora actual sin las barras, como se muestra en la Figura 17.

Figura 17. Procedimiento de la versión 0.0.2B para recuperar su lista de servidores C&C. Hemos descifrado algunas cadenas para mayor claridad.

El código intenta descargar el contenido de un archivo en una rama secundaria. El archivo contiene, en texto plano, la lista de direcciones IP y puertos de C&C. En el momento de escribir este artículo, las páginas de la organización de GitHub se pueden encontrar utilizando el procedimiento a medida que continúan operando con esta versión reciente de Janeleiro.

Versión 0.0.3

  • Periodo de actividad: Desde marzo de 2021 – Todavía activo.
  • Versión de malware interno: 0.0.3

Nuevas características de esta versión:

  • Implementado como una aplicación de Windows Forms
  • Una recombinación de implementaciones de técnicas y códigos de las versiones 0.0.2A y 0.0.2B
  • Nuevo método de persistencia usando la clave de ejecución del registro de Windows
  • Conjunto ampliado de comandos compatibles
  • Utiliza el algoritmo AES para cifrar / descifrar sus cadenas

Esta versión usa el mismo procedimiento que la Versión 0.0.2B para obtener los servidores C&C de la página de organización de GitHub, con la diferencia de que usa la rama principal dentro del repositorio y la lista está encriptada y codificada con base64 como se muestra en la Figura 18.

Figura 18. Repositorio principal que contiene una lista cifrada de servidores C&C

Este procedimiento también se utiliza al descifrar la lista de servidores C&C, por lo que debe existir un repositorio que contenga el archivo en la rama principal, con la lista cifrada destinada a ese día. De lo contrario, esta versión no puede contactar a los operadores ya que el descifrado fallará.

Apéndice B: Herramientas de terceros utilizadas por Janeleiro

Janeleiro utiliza varias bibliotecas de código abierto de terceros para diversos fines:

Herramienta Descripción Usado por
Fody Se utiliza para cargar cualquier otra herramienta de terceros o componente troyano, como LoadSystem en la versión 0.0.4. Todas las versiones, incluido System.Logins
Mimekit, Mailkit, Xnet, BouncyCastle, uPREC Se utiliza para recopilar correos electrónicos e información de inicio de sesión. Inicios de sesión del sistema
SharpClipboard Utilizado para el secuestro del portapapeles: cuando el usuario copia una dirección de bitcoin, Janeleiro la reemplaza por una elegida al azar de una lista propia.

Curiosamente, los desarrolladores de Janeleiro no parecen haber descargado el código fuente de SharpClipboard para compilar su propia versión: obtuvieron una copia compilada de otro repositorio de GitHub; no creemos que el usuario esté relacionado de ninguna manera con el desarrollo de esta amenaza.

Versión 0.0.2B
Versión 0.0.3
SharpVectors Se utiliza para cargar imágenes SVG contenidas en recursos. Estas imágenes son logotipos de varios bancos utilizados por las ventanas emergentes falsas. Versión 0.0.2B
Versión 0.0.3
Newtonsoft JSON Se utiliza para analizar los datos devueltos por el servicio web geoPlugin. Versión 0.0.2B
Versión 0.0.3
EncryptDecryptUtils Se utiliza para cifrar y descifrar sus cadenas. Las funciones se modificaron para contener la clave, por lo que no está presente en el código del troyano. Versión 0.0.3





Enlace a la noticia original