Campaña de malware bancario que suplanta facturas electrónicas

Analizamos una campaña de malware de Ousaban que suplanta facturas electrónicas e IRPF

Por Alexandre Siviero (actualizado el 29 de abril) - Este es un análisis de un malware bancario brasileño visto por primera vez en 2017, llamado Ousaban, o Javali. Hay una campaña en curso que propaga este malware mediante phishing de facturas electrónicas. Una vez establecido en la máquina de la víctima, este malware permanece inactivo hasta que el usuario accede a servicios de pago en el navegador, como Mercado Pago. En ese momento se conecta a un servidor de control para robar credenciales y datos de pago.

Phishing con facturas electrónicas

En el último mes hemos observado una campaña de correos electrónicos cuyo remitente se hace pasar por un ayuntamiento genérico que envía facturas electrónicas. El phishing dirige al usuario a un instalador MSI que contiene una rutina maliciosa para infectar las máquinas con el malware bancario brasileño Ousaban/Javali.

En este informe, demostraremos cómo se llevó a cabo el análisis del archivo MSI para identificar y desactivar el código malicioso para descargar y ejecutar este malware.

La campaña comienza con un remitente de phishing llamado "Prefeitura Municipal". Sus asuntos siguen el patrón "✅ Emissao de NF-e Pedido: (82234018574) Nota Fiscal Eletronica - 12/04/2022", donde el número de pedido y la fecha varían. En la siguiente imagen se muestra un ejemplo del contenido del mensaje.

Figura 1: contenido de phishing

Se suprimió el nombre del objetivo, pero no el CPF. Todos los mensajes aluden al Cadastro de Pessoa Física (Registro de Contribuyente Individual), pero sin número de documento. Los hipervínculos sugieren que el mencionado registro está disponible en dos formatos. En realidad, ambos redirigen a la misma página, que se muestra a continuación.

Figura 2: Página de factura electrónica falsificada

Esta dirección inicia la descarga de un archivo comprimido (.zip), que contiene un instalador de Windows (.msi) del mismo nombre. Para el mensaje concreto que hemos mostrado en la página anterior, ambos se llaman hyh6728i0zbnnp rspehu .msi.zip y hyh6728i0zbnnp rspehu.msi.

Este contenido no se ejecuta automáticamente. La campaña se basa en la ejecución voluntaria del instalador por parte del destinatario.

Escaneado de malware MSI

Hasta ahora nuestros boletines se han ocupado de scripts o ejecutables maliciosos. Un archivo de instalación de Windows funciona de forma un poco diferente. Es posible ver su contenido de forma desestructurada con cualquier software que maneje archivos comprimidos. La siguiente imagen muestra la inspección del msi malicioso utilizando 7zip.

Figura 3: Archivo de instalación escaneado mediante 7zip

El problema que nos encontramos en este punto es la falta de contexto del contenido del archivo de instalación. Podríamos seguir nuestro análisis basándonos en el tamaño y extensión de los archivos que contiene, pero es más fructífero utilizar un software que permita el análisis de los instaladores de Windows. Para ello utilizamos un programa distribuido por la propia Microsoft llamado Orca.

Figura 4: Tabla InstallExecuteSequence

Orca divide un instalador en varias tablas, que a su vez contienen acciones y condiciones. En la imagen superior inspeccionamos la tabla InstallExecuteSequence, o secuencia de instalación y ejecución. Como su nombre indica, guía a Windows sobre qué acciones deben realizarse y en qué orden durante el proceso de instalación. Destacamos en amarillo y azul una acción con un nombre sospechoso, sdfsdfdsfsd. Para entender mejor de qué se trata esta acción, iremos a otra tabla: CustomAction.

Figura 5: Tabla CustomAction

Volvemos a destacar la acción sdfsdfdsfsd. Esta vez, la columna Target nos trae una declaración de variable. Copiando todo su contenido en una herramienta de edición (Notepad++), confirmamos que se trata de un vbscript ofuscado.

Desenmascarar el script

La primera acción del script contenido en sdfsdfdsfsd es la declaración de una variable, _$_89794564972389472398625984758798273489234987239847973423, a la que se hace referencia varias veces a lo largo del código. La imagen siguiente la resalta en verde para demostrar su recurrencia:

Figura 6: Script ofuscado

Esta variable contiene 50 cadenas en hexadecimal, a las que se hace referencia en el código según su posición. Se trata de una ofuscación extremadamente sencilla que puede deshacerse simplemente sustituyendo las referencias de posición por las cadenas correspondientes, convertidas de hexadecimal a ascii. Aplicando esto a la imagen anterior, obtenemos un código relativamente sencillo:

Figura 7: Script desofuscado

Enseguida encontramos un nuevo IOC, la dirección april140420022xx.s3.sa-east-1.amazonaws[.]com/gmtax2020. Esta dirección contiene un archivo comprimido y protegido por contraseña, al que se le da un nombre aleatorio durante la ejecución del script. Otra rutina posterior se encarga de extraerlo:

Figura 8: Rutina de extracción zip protegida por contraseña

Tenemos algunos puntos de interés que tratar en la imagen anterior. Empecemos con una nueva URL, april140420022xx.s3.sa-east-1.amazonaws[.]com/polarRIT. Esto se pasa a la función downyJr (todos estos nombres son originales del script; quizás a su autor le guste Iron Man), que se encarga de descargar el contenido de la página. El segundo argumento que se pasa a esta función es la generación aleatoria de caracteres, seguida de la extensión .exe. A partir de esto, concluimos que el contenido de esta dirección es un ejecutable.

La línea oShell.run da la pista de qué ejecutable se trata, mediante las banderas x, -o y -p. Se trata de 7zip. La bandera -p se encarga de proporcionar una contraseña para extraer un archivo protegido. La variable que carga esta contraseña está resaltada en verde: 123456ze.

El script completa su rutina extrayendo el archivo protegido por contraseña, renombrando uno de sus componentes (Isname.name) a un nombre ejecutable generado aleatoriamente y llamando a su ejecución. Finalmente, envía una petición GET a una URL de Azure, secffnb.westcentralus.cloudapp.azure[.]com/gmix/samper[.]php, (posiblemente avisando de una infección exitosa).

Ousaban/Javali

Al extraer manualmente el archivo protegido por contraseña, nos encontramos con una técnica que busca subvertir el análisis de archivos por parte de herramientas antivirus, así como su envío a servicios en la nube: inflar artificialmente el tamaño de un archivo hasta niveles exagerados. Esto es evidente en EDSDK.dll, que tiene un tamaño de unos 785 MB. La mayor parte del archivo está llena de ceros y, tras eliminar estos espacios vacíos, se reduce a solo 1,2 MB de tamaño.

Figura 9: DLL con tamaño inflado

La familia de malware Ousaban (también llamada Boar por Kaspersky) tiene la tradición de proteger sus DLL maliciosas con tamaños de archivo absurdos y ejecutarlas mediante el secuestro de DLL en software legítimo y firmado. En julio de 2020, Kaspersky observó este comportamiento con lo que parecía ser software de Nvidia Display. En esta versión de 2022, el grupo utiliza un programa llamado Photo On Web:

Figura 10: Aplicación legítima atacada para secuestrar DLL por Ousaban

Tras la inyección de la DLL, el software comprometido comienza a comunicarse con el servidor de comando y control de este malware(20.226.67.9). Es interesante observar que esta comunicación tiene lugar en portugués, como demuestran los registros de red que recopilamos:

Enviado a C2:

# C o n v i t R C # < # > W i n d o w s   7   P r o f e s s i o n a l < # > U S E R - P C < # > N a o < # > A m s t e r d a m   N o r t h   H o l l a n d

Recibido:

# S o c k e t M a i n # < # > 2 9 4 9 8 1 0 # U p l o a d F i l e # # O N - L I N E #

Enviado:

# s t r P i n g O k # # R E C E B E N D O # < # > U S E R - P C

La demostración anterior muestra un comando de carga de archivos en la máquina comprometida. Si esta acción no se completa, se envía una advertencia a C2:

# s t r P i n g O k # # P L U G I N # < # > N a o # C O M P L E T O U # < # > U S E R - P C

Además de las comunicaciones con sus controladores, la aplicación secuestrada también crea persistencia a través del registro de Windows introduciéndose en HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN con la clave "[STRING ALEATORIA].exe" -no-startup-window -win-session-start /prefetch:5.

El comando UploadFile se encarga de descargar un nuevo ejecutable legítimo y firmado, que también será objetivo del secuestro de DLL. Hemos observado este comportamiento con los programas Picasa.exe (Google) y Graphic Workshop Professional (Alchemy Mindworks). Al igual que con Photo On Web, los ejecutables tienen nombres aleatorios y las DLL maliciosas tienen un tamaño inflado de unos 780 MB.

Esta nueva aplicación se ejecuta y permanece "latente" sin realizar ninguna acción. Desde el momento en que el usuario de la máquina infectada abre el navegador y accede a un sitio web objetivo del malware, el proceso establece una nueva conexión con el servidor de control y comienza a comunicarse a través de HTTPS. Observamos que en el acto de establecer esta conexión, se envían más datos sobre la máquina infectada a los controladores. Un ejemplo es la siguiente cadena:

Sem antivirus#strPingOk##Convite##ConvitRC#<#>#UploadFile##SocketMain##RECEBENDO#<#>#ON-LINE#

También identificamos que el malware recupera su configuración inicial de una dirección que alude a un bufete de abogados, adsadvogados[.]com/juridico/. Todos los archivos de configuración presentes en ese directorio (que está abierto a Internet) están fechados el 13 de abril de 2022. A continuación se ofrece un ejemplo del contenido de los archivos de configuración:

start{
"host":"B0A091EA79EC7AEF4AE64DB5",
"puerto": "0000"
}fin

Todavía no hemos encontrado todas las direcciones responsables de "despertar" el malware mientras se navega por Internet, pero hemos confirmado que acceder al sitio web de Mercado Pago es una de las formas de activar las conexiones con el servidor de control. Esta asociación había sido observada por Kaspersky en 2020 (según el informe citado al principio de este artículo) y nuestro análisis demostró que persiste en estas muestras de 2022.

También hemos observado un comportamiento que parece ocurrir cuando la dirección del servidor de control no está disponible. En estas circunstancias, Photo On Web se cierra y se vuelve a abrir en bucle, sin que se establezca una conexión con el destino controlado por los operadores de Ousaban. Esta situación se repitió varias veces durante nuestra investigación.

Es interesante destacar que, en las situaciones en las que hubo fallo de conexión con el C2, no se creó ninguna clave en el registro como forma de persistencia. Es posible que esta indisponibilidad comprometa la infección de la máquina objetivo.

Las devoluciones del IRPF también son un reclamo

Otra estafa detectada con Ousaban utiliza el IRPF como cebo para atraer a víctimas desatentas. Se trata de un caso que requiere más atención, ya que estamos en periodo de declaración de la renta (el plazo de presentación finaliza el 31 de mayo de 2022), por lo que un ataque puede ocultarse más fácilmente entre comunicaciones legítimas. Un ejemplo de esta variante señala cómo el "funcionamiento" es muy similar: correo electrónico con apariencia oficial pero que se revela sospechoso con una mirada más atenta, y un enlace que redirige a una web falsa, como se muestra en las imágenes:

Imagen 1
Imagen 2
Imagen 3

Prevención

Dado que se trata de una estafa que requiere que la víctima haga clic en el enlace, no hay una única solución que adoptar para evitarla, sino una serie de buenas prácticas. La clave está en prestar atención a las señales: si son direcciones que suenan sospechosas y/o aleatorias, o facturas de compras que no recuerdas haber realizado.

Si el correo indica que el contenido a descargar es un PDF, por ejemplo, y lo que realmente aparece en las descargas no es eso, se trata de un ataque (como en los dos casos expuestos, donde lo que se ve es una carpeta en formato .zip, y ninguna factura).

En caso de duda, siempre es mejor consultar a una fuente oficial para asegurarse. El trabajo será mayor, pero compensará, al evitar lo que puede ser un tremendo quebradero de cabeza.

COI (facturas electrónicas)

URL

http://ip-72-167-45-95.ip.secureserver.net/.idfiscal/?hash=
https://pdf-nfe82234018756.northcentralus.cloudapp.azure.com/idcupom/?hash=
april140420022xx.s3.sa-east-1.amazonaws[.]com/gmtax2020
abril140420022xx.s3.sa-east-1.amazonaws[.]com/polarRIT
secffnb.westcentralus.cloudapp.azure[.]com/gmix/samper[.]php
ip-api.com
adsadvogados[.]com
adsadvogados[.]com/juridico/
adsadvogados[.]com/juridico/geo1.txt
adsadvogados[.]com/juridico/geo.txt
adsadvogados[.]com/juridico/reuniao.txt
adsadvogados[.]com/juridico/sh.txt
adsadvogados[.]com/juridico/sh1.txt

Direcciones IP

20.226.67.9 (C2)
20.231.51.105

Correo electrónico de phishing

root@marf5.notasonlinevmbc.org
40.114.206.69

Artefactos

Instalador comprimido (hyh6728i0zbnnp rspehu.msi.zip):

B6BFFF299048888CECF4985E3546C7DA70EB0C33BE24456FEAC7D4BE58B1DEB2

Instalador posterior a la extracción (hyh6728i0zbnnp rspehu.msi):

9091A791B900C6B7398B38B4641EDFF93036F83A36E1244594D5ECFD664B9931

Archivos comprimidos con contraseña:

0B36DE4D494A750AA46E2C2EE60B515B30E5A86BEB9DE8142DAD54AA79361EFF
86A92468CCF83EC66FCCB5C7DDD8CC7C7CED1BA9F79DDD3515175085484E3838

Versión de la foto en la web:

4ED66AD6E2CA374221ED660177521DC2C4DB9492A048C52410931B86A66CC837

DLL inflada (EDSDK.dll)

0082CB5F94FA2E9E0010439A06CC022481B92DBD569DED0DDC73DBF7E8EE3507

Versión de Picasa:

ABBF57F0882021EBCC31AA2B1C9303CA083B609E44CC8F50D387BD68F7B50634

Versión de Graphic Workshop Professional:

A2E2DC14BE9EA407BEAFE99762F2C0193EB554135C0D8AA5249DE47403754483

Mensajes intercambiados entre el malware y el C2:

# P R I N C I P A L #
# C o n v i t e # # S o c k e t M a i n # < # > [NÚMERO]
# C o n v i t R C # < # > [SISTEMA OPERACIONAL] < # > [NOME DA MÁQUINA] < # > N a o < # > [CIDADE E PAÍS]
# S o c k e t M a i n # < # > [NÚMERO] # U p l o a d F i l e # # O N - L I N E #
# s t r P i n g O k # # R E C E B E N D O # < # > U S E R - P C
# s t r P i n g O k # # P L U G I N # < # > N a o # C O M P L E T O U # < # > U S E R - P C
Sin antivirus
#strPingOk#
#strCmd#

Persistencia:

HKEY_ACTUAL_USERSOFTWARE

IOC (impuesto sobre la renta)

root@ipos6.notasfrias.]org (20.114.251.]33)
ip-92-205-18-61.ip.]secureserver.]net/.idrec/?hash=
restituicaodevalores-irf.canadaeast].cloudapp.azure.com
hxxp://isfactorytox.]duckdns.]org/gg/gmptx secffnb.westcentralus[.cloudapp.azure.com/gamermix/play.php

Configs

abcadvogados.]com/g/WWA tmjdrinks.]com/geo/drinks.txt
C2: 20.]226.]99.72:59613 

Emulaciones y análisis

https://tria.ge/220427-smn83se

Referencias

https://securelist.com/the-tetrade-brazilian-banking-malware/97779/

https://rvsec0n.wordpress.com/2020/02/22/msi-malware-analysis/

https://twitter.com/dodo_sec/status/1513920321707024386

https://twitter.com/ffforward

https://docs.microsoft.com/en-us/windows/win32/msi/orca-exe

https://app.any.run/tasks/77d32721-dcf5-4e79-b04d-e26b0b54a935

Dejar un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *.