Antes de dar cierre a nuestra serie sobre troyanos latinoamericanos, hay un troyano bancario que merece un análisis detallado: Numando. El actor de amenazas detrás de esta familia de malware ha estado activo desde al menos 2018. Aunque no es tan dinámico como Mekotio o Grandoreiro, Numando ha sido utilizado de manera constante desde que comenzamos a rastrearlo, aportando nuevas e interesantes técnicas al conjunto de trucos que hemos descrito sobre el grupo de troyanos bancarios latinoamericanos, como el uso de archivos ZIP aparentemente inútiles o la carga de payloads junto a imágenes en formato BMP utilizadas como señuelo. Geográficamente, se centra casi exclusivamente en Brasil, más allá de algunas campañas en México y España.

Características

Al igual que los demás troyanos bancarios latinoamericanos descritos en esta serie, Numando está escrito en Delphi y utiliza falsas ventanas superpuestas para sustraer información confidencial de sus víctimas. Algunas variantes de Numando almacenan estas imágenes en un archivo ZIP cifrado dentro de sus secciones .rsrc, mientras que otras utilizan una DLL en Delphi aparte solo para este almacenamiento.

Las capacidades de backdoor de Numando le permiten simular acciones del mouse y del teclado, reiniciar y apagar la máquina, mostrar ventanas superpuestas, tomar capturas de pantalla y eliminar los procesos del navegador. Sin embargo, a diferencia de otros troyanos bancarios latinoamericanos, los comandos se definen como números en lugar de strings (consulte la Figura 1), lo que inspiró la forma en que decidimos nombrar a esta familia de malware.

Figura 1. Procesamiento de comando de Numando: parte del procesamiento del comando 9321795 (rojo)

Las strings están cifradas por el algoritmo más común entre los troyanos bancarios latinoamericanos (que se muestra en la Figura 5 de nuestro artículo de Casbaneiro) y no están organizadas en una tabla de strings. Numando recopila la versión de Windows y el número de bits de la máquina comprometida.

A diferencia de la mayoría de los otros troyanos bancarios latinoamericanos que hemos analizado en esta serie, Numando no muestra signos de un desarrollo continuo. Se producen algunos cambios menores de vez en cuando, pero en general los binarios no tienden a cambiar mucho.

Distribución y ejecución

Numando se distribuye casi exclusivamente a través de malspam. De acuerdo con nuestra telemetría, sus campañas afectan como máximo a algunos cientos de víctimas, lo que las hace considerablemente menos exitosas que las campañas de los troyanos bancarios latinoamericanos más prevalentes, como Mekotio y Grandoreiro. Las campañas recientes simplemente agregan en cada correo de spam un archivo adjunto ZIP que contiene un instalador MSI. Este instalador contiene un archivo CAB con una aplicación legítima, un injector y una DLL cifrada del troyano bancario Numando. Si la potencial víctima ejecuta el MSI, eventualmente también ejecuta la aplicación legítima, y ​​eso carga lateralmente el injector. El injector localiza el payload y luego lo descifra utilizando un algoritmo XOR simple con una clave de múltiples bytes, como se observa en la descripción general de este proceso en la Figura 2.

Figura 2. MSI de Numando y los contenidos distribuidos en las últimas campañas

Para Numando, el payload y el injector generalmente se nombran de manera idéntica: el injector con la extensión .dll y el payload sin extensión (consulte la Figura 3), lo que facilita que el injector localice el payload cifrado. Sorprendentemente, el injector no está escrito en Delphi, algo muy raro entre los troyanos bancarios latinoamericanos. Los IoC al final de esta publicación contienen una lista de aplicaciones legítimas que hemos observado siendo abusadas por Numando.

Figura 3. Archivos utilizados para ejecutar Numando. Aplicación legítima (Cooperativa.exe), injector (Oleacc.dll), payload cifrado (Oleacc) y DLL legítimas.

Decoy ZIP and BMP overlay

Hay una interesante cadena de distribución que observamos en el pasado reciente que vale la pena mencionar. Esta cadena comienza con un downloader en Delphi que descarga un archivo ZIP utilizado como señuelo (ver Figura 4). El downloader ignora el contenido del archivo y extrae del comentario del archivo ZIP una string cifrada en hexadecimal, un componente opcional del archivo ZIP almacenado al final del archivo. El downloader no analiza la estructura ZIP, sino que busca el último carácter { (utilizado como marcador) en todo el archivo. Descifrar la string da como resultado una URL diferente que conduce al archivo del payload.

Figura 4. El señuelo es un archivo ZIP válido (las estructuras ZIP resaltadas en verde) con una URL cifrada incluida en un comentario del archivo ZIP al final del archivo (rojo)

El segundo archivo ZIP contiene una aplicación legítima, un injector y una imagen BMP sospechosamente grande. El downloader extrae el contenido de este archivo y ejecuta la aplicación legítima, que carga lateralmente el inyector que, a su vez, extrae el troyano bancario Numando de la imagen BMP superpuesta y lo ejecuta. El proceso se ilustra en la Figura 5.

Figura 5. Cadena de distribución de Numando usando como señuelo un archivo ZIP

Este archivo BMP es una imagen válida y se puede abrir en la mayoría de los visores y editores de imágenes sin problemas, ya que la superposición simplemente se ignora. La Figura 6 muestra algunas de las imágenes que usa como señuelo el actor de amenazas Numando.

Figura 6. Algunas imágenes BMP que Numando usa como señuelos para transportar el payload

Configuración remota

Al igual que muchos otros troyanos bancarios latinoamericanos, Numando abusa de servicios públicos para almacenar su configuración remota: YouTube y Pastebin en este caso. La Figura 7 muestra un ejemplo de la configuración almacenada en YouTube, una técnica similar a Casbaneiro, aunque mucho menos engañosa. Google eliminó los videos rápidamente luego del reporte de ESET.

Figura 7. Configuración remota de Numando en YouTube

El formato es simple: tres entradas delimitadas por “:” entre los marcadores DATA:{ y }. Cada entrada se cifra por separado de la misma manera que otras cadenas en Numando, con la clave hardcodeada en el binario. Esto dificulta descifrar la configuración sin tener el binario correspondiente; sin embargo, Numando no cambia su clave de descifrado con mucha frecuencia, lo que hace posible el descifrado.

Conclusión

Numando es un troyano bancario latinoamericano escrito en Delphi. Se dirige principalmente a Brasil, más allá de algunas campañas en México y España. Es similar a las otras familias descritas en nuestra serie: usa falsas ventanas superpuestas, contiene funcionalidades de backdoor y utiliza archivos MSI.

Hemos cubierto sus características, métodos de distribución y configuración remota más típicos. Es el único troyano bancario de LATAM escrito en Delphi que utiliza un inyector que no es de Delphi y su formato de configuración remota es único, lo que hace que sean dos factores fiables a la hora de identificar esta familia de malware.

Para cualquier consulta, escríbanos a threatintel@eset.com. Los indicadores de compromiso también pueden encontrarse en nuestro repositorio de GitHub.

Indicadores de Compromiso (IoCs)

Hashes

SHA-1 Description ESET detection name
E69E69FBF438F898729E0D99EF772814F7571728 MSI downloader for “decoy ZIP” Win32/TrojanDownloader.Delf.CQR
4A1C48064167FC4AD5D943A54A34785B3682DA92 MSI installer Win32/Spy.Numando.BA
BB2BBCA6CA318AC0ABBA3CD53D097FA13DB85ED0 Numando banking trojan Win32/Spy.Numando.E
BFDA3EAAB63E23802EA226C6A8A50359FE379E75 Numando banking trojan Win32/Spy.Numando.AL
9A7A192B67895F63F1AFDF5ADF7BA2D195A17D80 Numando banking trojan Win32/Spy.Numando.AO
7789C57DCC3520D714EC7CA03D00FFE92A06001A DLL with overlay window images Win32/Spy.Numando.P

Aplicaciones legítimas utilizadas

Example SHA-1 EXE name DLL name
A852A99E2982DF75842CCFC274EA3F9C54D22859 nvsmartmaxapp.exe nvsmartmax.dll
F804DB94139B2E1D1D6A3CD27A9E78634540F87C VBoxTray.exe mpr.dll
65684B3D962FB3483766F9E4A9C047C0E27F055E Dumpsender.exe Oleacc.dll

Servidores de C&C

  • 138.91.168[.]205:733
  • 20.195.196[.]231:733
  • 20.197.228[.]40:779

URL de entrega

  • https://enjoyds.s3.us-east-2.amazonaws[.]com/H97FJNGD86R.zip
  • https://lksluthe.s3.us-east-2.amazonaws[.]com/B876DRFKEED.zip
  • https://procjdcals.s3.us-east-2.amazonaws[.]com/HN97YTYDFH.zip
  • https://rmber.s3.ap-southeast-2.amazonaws[.]com/B97TDKHJBS.zip
  • https://sucessmaker.s3.us-east-2.amazonaws[.]com/JKGHFD9807Y.zip
  • https://trbnjust.s3.us-east-2.amazonaws[.]com/B97T908ENLK.zip
  • https://webstrage.s3.us-east-2.amazonaws[.]com/G497TG7UDF.zip

Técnicas de MITRE ATT&CK

Nota: esta tabla fue creada utilizando la versión 9 del framework MITRE ATT&CK.

Tactic ID Name Description
Resource Development T1583.001 Acquire Infrastructure: Domains Numando operators register domains to be used as C&C servers.
T1587.001

Develop Capabilities: Malware Numando is likely developed by its operator.
Initial Access T1566 Phishing: Spearphishing Attachment Numando is distributed as a malicious email attachment.
Execution T1204.002 User Execution: Malicious File Numando relies on the victim to execute the distributed MSI file.
Defense Evasion T1140

Deobfuscate/Decode Files or Information Numando encrypts its payload or hides it inside a BMP image file, and some variants encrypt and hex encode their main payload URLs in a comment in decoy ZIP files.
T1574.002 Hijack Execution Flow: DLL Side-Loading Numando is often executed by DLL side-loading.
T1027.002 Obfuscated Files or Information: Software Packing Some Numando binaries are packed with VMProtect or Themida.
T1218.007 Signed Binary Proxy Execution: Msiexec Numando uses the MSI format for execution.
Discovery T1010 Application Window Discovery Numando monitors the foreground windows.
T1082 System Information Discovery Numando collects the Windows version and bitness.
Collection T1113 Screen Capture Numando can take screenshots.
Command and Control T1132.002 Data Encoding: Non-Standard Encoding Numando uses custom encryption.
Exfiltration T1041 Exfiltration Over C2 Channel Numando exfiltrates data via a C&C server.