En abril de 2021 desde ESET Research publicamos un reporte en el cual analizamos un troyano bancario enfocado en usuarios corporativos de Brasil. Denominamos a esta familia de malware Janeleiro en referencia a su principal técnica: el uso de ventanas emergentes falsas especialmente diseñadas que se superponen y se hacen pasar por el sitio web de distintos bancos populares de Brasil. De esta manera, el troyano intenta engañar a la potencial víctima mostrando un formulario falso para que ingrese datos personales que serán enviados automáticamente al atacante.
Al momento del primer análisis, una de las características más destacables que observamos en Janeleiro era que cada vez que se ejecutaba en un equipo comprometido descargaba las IP de los servidores de Comando y Control (C&C), y desde este repositorio era actualizado diariamente por los atacantes a fin de mantener al troyano constantemente en contacto con ellos para poder monitorear a sus víctimas.
Tras reportar la página con los repositorios recibimos una respuesta oficial de GitHub y para el 6 de abril fueron eliminados, por lo que podemos decir que efectivamente los atacantes perdieron acceso a todos los equipos infectados con las variantes de Janeleiro que analizamos la primera vez.
Sin embargo, en junio comenzamos a detectar en nuestra telemetría el surgimiento de una nueva campaña con una nueva versión de Janeleiro, aunque con el mismo objetivo: usuarios corporativos de Brasil.
De acuerdo con nuestra telemetría, los niveles de detecciones semanales de esta nueva versión de Janeleiro comenzaron a crecer a fines de julio.
Esta versión de la amenaza no es muy diferente de la última que describimos en abril, ya que continúa utilizando las mismas técnicas para engañar a sus víctimas. Estos son algunos de los cambios más notorios:
Janeleiro continúa siendo distribuido vía correos de phishing que buscan engañar a las potenciales víctimas para que hagan clic en un enlace que los llevará a descargar un archivo comprimido ZIP.
El enlace en el cuerpo del correo dirige hacia un servidor Azure desde el cual automáticamente se descarga un archivo ZIP. Este archivo contiene un instalador MSI que se encarga de instalar a Janeleiro y sus componentes en el sistema.
El instalador MSI despliega varios componentes en las siguientes ubicaciones:
Los componentes son:
Como parte final del proceso de instalación, el MSI carga una DLL llamada sheriff.dll desde un archivo temporal. Esta DLL tiene dos propósitos:
También hemos hallado una variante de sheriff.dll llamada SwitchLaunch.dll, que intenta localizar geográficamente el equipo infectado a partir de su IP como en versiones anteriores de Janeleiro, abortando la ejecución si la IP no proviene de Brasil. Adicionalmente esta DLL recolecta información básica del equipo y la envía a un servidor que funciona como “tracker” de infecciones.
Por otro lado, el segundo instalador MSI (ini.1.msi) funciona como un segundo punto de ejecución. Este posee una DLL llamada WhileIni.dll que es cargada del mismo modo que sheriff.dll: desde un archivo temporal como parte final del proceso de instalación. WhileIni se encarga de localizar el archivo Avira.SystrayStartTrigger.exe y ejecutarlo.
La técnica de DLL side-loading (T1574.002), o “carga de DLL lateral”, consiste en reemplazar una DLL utilizada por un programa legítimo que no lleve a cabo ningún tipo de validación, y por lo tanto pueda ser abusado para cargar en su proceso una DLL maliciosa. Esta es una técnica muy popular entre los troyanos bancarios dirigidos a Brasil, y es la primera vez que Janeleiro hace uso de ella.
Imagen 4. Diagrama del flujo de ejecución de los distintos componentes de Janeleiro al iniciarse con el sistema o al ser ejecutado durante el proceso de instalación
En este caso, el programa abusado por Janeleiro es Avira.SystrayStartTrigger.exe, el cual utiliza una DLL llamada Avira.oe.nativecore.dll, la cual es suplantada por una DLL que en realidad es el cargador de Janeleiro. Esta DLL intenta localizar un archivo en la ubicación actual desde donde se esté ejecutando el programa, el nombre del archivo debe comenzar con “mod” (de mod110.dll). Si lo encuentra, lo carga también dentro del proceso de Avira.SystrayStartTrigger.exe.
A pesar de haber sido uno de los puntos débiles en campañas anteriores, los operadores de Janeleiro han decidido continuar haciendo uso de GitHub con la misma metodología anterior: los repositorios son diariamente actualizados con nuevas direcciones IP almacenadas encriptadas y codificadas en archivos de texto
Imagen 5. Captura de pantalla del repositorio en GitHub utilizado por los operadores de Janeleiro.B.
El nombre de la página de GitHub, el repositorio, y también los archivos de texto, son generados diariamente mediante el siguiente procedimiento:
Las funciones de cifrado EncryptDecryptUtils.Encrypt provienen de una librería llamada RijndaelEncryptDecrypt que los desarrolladores de Janeleiro han estado utilizando desde hace ya tiempo.
Al momento de la publicación de este análisis, tanto la cuenta utilizada para administrar como la cuenta de GitHub de la falsa organización, han sido eliminadas.
Si bien las detecciones de Janeleiro han ido disminuyendo desde fines de agosto, es poco probable que esta familia de malware vaya a cesar sus operaciones en el futuro cercano: al igual que otras familias de troyanos bancarios latinoamericanos, es de esperarse que continúen adaptándose para permanecer en actividad y posiblemente comiencen a enfocarse en otros países hispanohablantes de la región.
Un agradecimiento especial a Johnatan Camargo Zacarias de Banco Itaú por su ayuda con la investigación.
Los productos de ESET detectan las nuevas variantes de Janeleiro como:
Algunas recomendaciones para tener en cuenta y evitar ser víctima de esta amenaza: