Ousaban es un troyano bancario latinoamericano activo exclusivamente en Brasil. ESET ha estado siguiendo los pasos de esta familia de malware desde 2018, y al igual que la mayoría de los otros troyanos bancarios de América Latina que hemos analizado como parte de esta serie, Ousaban también usa ventanas emergentes superpuestas para robar credenciales y otra información adicional de las instituciones financieras. Sin embargo, a diferencia de la mayoría de los otros troyanos bancarios latinoamericanos, los desarrolladores de Ousaban han extendido el uso de ventanas superpuestas para robar credenciales de populares servicios de correo electrónico regionales. En este artículo de nuestra serie analizamos sus principales características y muchas conexiones con otras familias de troyanos bancarios latinoamericanos.
Características
Al igual que la gran mayoría de los otros troyanos bancarios latinoamericanos que ESET está monitoreando, Ousaban está escrito en Delphi y también muestra signos de desarrollo activo y continuo.
El nombre que ESET asignó a esta familia es una combinación de dos palabras: "ousadia", que significa "audacia" en portugués, y el término en inglés "banking trojan”. La razón de tal nombre se debe a que durante mucho tiempo Ousaban se distribuyó junto con las imágenes (algunas de ellas obscenas) que se muestran en la Imagen 1, aunque en las campañas de distribución más recientes de Ousaban, este ya no es el caso.
Ousaban también es conocido como Javali, nombre que le asignó Kaspersky, y puede encontrar un artículo reciente sobre este troyano aquí. Por otra parte, ESET también ha podido atribuir a Ousaban a las campañas descritas en esta publicación de 2018. Aunque algunas fuentes afirman que Ousaban está activo en Europa, ESET nunca ha observado ninguna campaña que propague este troyano bancario fuera de Brasil.
Ousaban protege sus ejecutables con los ofuscadores binarios Themida o Enigma. Además, la mayoría de los EXE son agrandados mediante el relleno de binario a aproximadamente 400 MB, probablemente para evadir la detección y el procesamiento automatizado.
Las variantes más recientes de Ousaban contienen una tabla de string para retener sus strings, y almacenan esta tabla en sus seciones .rsrc. Uno de los recursos contiene una lista strings comprimida en zlib delimitadas por caractéres de nueva línea.
Sus capacidades de backdoor son muy similares a las de un típico troyano bancario latinoamericano: simula acciones del mouse y el teclado y registra las pulsaciones del teclado (keylogging). Las últimas variantes se comunican con los servidores de C&C mediante RealThinClient, un protocolo que también utiliza Grandoreiro.
El típico troyano bancario latinoamericano ataca a los usuarios clientes de bancos mediante ventanas emergentes superpuestas diseñadas específicamente para sus objetivos y Ousaban no es la excepción. Curiosamente, sin embargo, sus objetivos incluyen varios servicios de correo electrónico para los cuales también tiene preparadas ventanas emergentes superpuestas, como se ilustra en la Imagen 2.
Para lograr la persistencia, Ousaban crea un archivo LNK o un simple loader en VBS en la carpeta de inicio, o modifica la Run key del registro de Windows.
Distribución y ejecución
Ousaban se distribuye principalmente a través de correos electrónicos de phishing (como el de la Imagen 3). El actor de amenazas detrás de Ousaban pasa por múltiples cadenas de distribución. Estas cadenas comparten algunas características comunes, principalmente:
- La carga lateral de DLL se utiliza para ejecutar un payload binario
- A veces se utilizan archivos CAB en lugar de ZIP
- Un archivo de configuración distribuido dentro de un archivo con una sola etapa es requerido para la siguiente etapa
- Podría ser utilizado un injector exclusivo de Ousaban
MSI con JavaScript
Esta cadena de distribución, ilustrada en la Imagen 4, es bastante sencilla. Se engaña a la víctima para que ejecute un archivo MSI adjunto al correo electrónico de phishing. Cuando se ejecuta, el MSI lanza un downloader en JavaScript embebido que descarga un archivo ZIP y extrae su contenido. Luego ejecuta la aplicación legítima, que carga lateralmente el troyano bancario Ousaban.
MSI de múltiples etapas
Recientemente, ESET ha observado una nueva cadena de distribución propagando Ousaban masivamente. Es mucho más compleja que la que se describió anteriormente. El proceso completo se ilustra en la Imagen 5.
Las dos primeras etapas son casi idénticas. En ambas, la parte principal de la etapa está dentro de un archivo (ZIP o CAB) y contiene:
- Una aplicación legítima
- Un injector cifrado
- Un downloader cifrado
- Un archivo de configuración cifrado
- Archivos legítimos
Una vez que se ejecuta la aplicación legítima la misma carga lateralmente el injector. Este injector localiza, descifra y ejecuta el downloader. El downloader descifra el archivo de configuración para obtener una URL que conduce a una configuración remota. La configuración remota contiene una URL que conduce al archivo de la siguiente etapa. El downloader descarga el archivo de la siguiente etapa, extrae su contenido y ejecuta la aplicación legítima.
La etapa final es ligeramente diferente, ya que descifra y ejecuta el troyano bancario Ousaban real en lugar de un downloader. El tercer archivo de configuración conduce a una configuración remota con la dirección IP y el puerto del servidor de C&C. El archivo con la última etapa contiene un archivo más: un módulo de soporte que altera varias configuraciones de la máquina de la víctima. Finalmente, los archivos para las tres etapas incluyen archivos adicionales: un único ejecutable legítimo en el archivo de la primera etapa, 14 archivos legítimos en el archivo de la segunda etapa y 13 archivos legítimos en el archivo de la tercera etapa más un archivo embebido que contiene 102 archivos legítimos adicionales.
Módulo de soporte
Ousaban carga este módulo para facilitar que el actor de amenazas se conecte a la máquina de la víctima. Principalmente:
- Modifica la configuración del RDP para usar RDPWrap, una utilidad que permite múltiples conexiones RDP a las ediciones Home del sistema operativo Windows
- Modifica la configuración del firewall para permitir todas las conexiones RDP
- Crea una nueva cuenta con privilegios administrativos
El módulo contiene los binarios RDPWrap almacenados en su sección .rsrc. Luego cambia la configuración del RDP directamente en el registro de Windows en:
- HKLM\SYSTEM\CurrentControlSet\Services\TermService\
- HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\
Luego, el módulo usa netsh.exe para modificar el firewall de Windows para permitir todo el tráfico TCP y UDP dirigido al puerto 3389, el puerto estándar para RDP. Finalmente, crea una nueva cuenta Administrat0r con privilegios de administrador. Nuestra hipótesis es que el actor de la amenaza quiere tener una segunda forma de acceder a la máquina de la víctima para no estar limitado por las capacidades del troyano bancario Ousaban y poder realizar cualquier actividad maliciosa.
Criptografía
Ousaban utiliza en general tres esquemas criptográficos. Sus strings están cifradas con un algoritmo utilizado por la gran mayoría de troyanos bancarios latinoamericanos que hemos analizado (podrá encontrar una descripción detallada del mismo en este análisis de Casbaneiro). Todas las comunicaciones entre Ousaban y su servidor C&C se cifran utilizando el cifrado AES estándar con una clave hardcodeada.
El algoritmo final se utiliza en el injector específico para esta familia que mencionamos previamente. Proporcionamos una implementación en Python en la Imagen 6.
def decrypt(data, key):
data_dec = str()
key_len = len(key)
for i, c in enumerate(data):
if i % 2 != 0:
data_dec += chr(key[i % key_len ^ c ^ ((key_len - (i & key_len)) & 0xFF)])
else
data_dec += chr(key[i % key_len] ^ c ^ (i & 0xFF))
return data_dec
Imagen 6. Algoritmo utilizado por el injector de Ousaban para descifrar sus payloads
Configuración remota
Ousaban se apoya en la configuración remota para obtener las URL de la siguiente etapa y la dirección y el puerto del C&C que se utilizará. Ousaban solía almacenar su configuración remota en YouTube, similar a Casbaneiro, pero últimamente ha comenzado a usar Google Docs en su lugar.
La configuración remota está en formato JSON y los valores se cifran mediante el mismo algoritmo utilizado para las strings, pero con una clave diferente. Los campos tienen el siguiente significado:
- host = dominio del C&C
- link = URL de la siguiente etapa
- porta = puerto del C&C o 0 (luego se usa el puerto HTTP 80 predeterminado)
- vers = versión de Ousaban
En la Imagen 7 y la Imagen 8 se proporcionan ejemplos de la configuración remota.
Similitudes con otros troyanos bancarios de LATAM
Ya hemos mencionado algunas similitudes entre Ousaban y otros troyanos bancarios latinoamericanos analizados anteriormente como parte de esta serie (como el mismo algoritmo de descifrado de strings). A continuación, compartimos algunos vínculos adicionales con las otras familias que hemos descubierto durante nuestro análisis:
- Algunos downloaders de Ousaban contienen el mismo código de ofuscación de strings que Amavaldo
- Ousaban ha sido distribuido por los mismos anuncios maliciosos que Mispadu en el pasado.
- Los archivos de JavaScript que utiliza son similares a Vadokrist, Mekotio, Casbaneiro y Guildma
- Los archivos de PowerShell que ocasionalmente usa para la distribución (además de los métodos recientes descritos en esta publicación) son similares a Amavaldo, Casbaneiro y Mekotio
Analizamos en profundidad la interesante cooperación estrecha que existe entre estas familias de malware en nuestro white paper presentado en la conferencia Virus Bulletin 2020.
Conclusión
En esta entrega de nuestra serie sobre troyanos bancarios de América Latina analizamos Ousaban, un troyano que apunta solo a Brasil. Esta familia de malware ha estado activa desde al menos 2018 y comparte las características típicas de este tipo de amenaza: está escrito en Delphi, contiene funcionalidad de backdoor e implementa para sus ataques el uso de ventanas superpuestas.
Hemos cubierto sus principales características, métodos de distribución y ejecución y la estructura de su configuración remota. También descubrimos varias pistas que sugieren que Ousaban está vinculado a algunos otros troyanos bancarios latinoamericanos.
Por cualquier consulta, escríbanos threatintel@eset.com. Los indicadores de compromiso también se pueden encontrar en nuestro repositorio de GitHub .
Indicadores de Compromiso (IoCs)
Hashes
SHA-1 | Description | ESET detection name |
---|---|---|
C52BC5B0BDFC7D4C60DF60E88835E3145F7FB34F | Ousaban banking trojan | Win32/Spy.Ousaban.G |
D04ACFAF74861DDC3B12E75658863DA65C03013F | Ousaban JS downloader | JS/TrojanDownloader.Banload.AAP |
9A6A4BF3B6E974E367982E5395702AFF8684D500 | Ousaban JS downloader | JS/TrojanDownloader.Banload.AAP |
3E8A0B6400F2D02B6B8CD917C279EA1388494182 | Ousaban MSI downloader | Win32/Spy.Ousaban.W |
6946BFB8A519FED8EC8C30D9A56619F4E2525BEA | Ousaban injector | Win32/Spy.Ousaban.W |
E5DD2355E85B90D2D648B96C90676604A5C3AE48 | Ousaban support module | Win32/Spy.Ousaban.AB |
Aplicaciones legítimas abusadas
Example SHA-1 | EXE name | DLL name |
---|---|---|
BA5493B08354AEE85151B7BBD15150A1C3F03D1D | Avira.SystrayStartTrigger.exe | Avira.OE.NativeCore.dll |
7F6C820B00FC8C628E2420C388BBB9096A547DAA | AudioGrabber.exe | StarBurn.dll |
C5D5CF1B591C40344B20370C5EE5275356D312EC | PlGen.exe | bass_fx.dll |
53045B8047CED049BBC7EBCB3D3299D2C465E8B9 | BlazeDVD.exe | SkinScrollBar.dll |
A6118D354D512DC29965E368F6C78AA3A42A27AD | ImageGrabber.exe | StarBurn.dll |
F9C71277CF05738275261D60A9E938CBA7232E0D | nvsmartmaxapp.exe | nvsmartmax.dll |
URL de archivos de configuración recientes
https://docs.google[.]com/document/d/1o9MlOhxIJq9tMOuUHJiw2eprQ-BGCA_ERnbF54dZ25w/edit
https://docs.google[.]com/document/d/1nQqifeYFsCcI7m-L1Y1oErkp50c-y670nfk7NTKOztg/edit
https://docs.google[.]com/document/d/13A6EBLMOOdvSL3u6IfyrPWbYREXNRVdDTiKzC6ZQx7U/edit
https://docs.google[.]com/document/d/1UiuqrzI_rrtsJQHqeSkp0sexhwU_VSje8AwS-U6KBPk/edit
https://docs.google[.]com/document/d/1VKxF3yKbwQZive-ZPCA4dAU1zOnZutJxY2XZA0YHa3M/edit
https://docs.google[.]com/document/d/19bXTaiFdY5iUqUWXl92Js7i9RoZSLJqcECgpp_4Kda4/edit
https://docs.google[.]com/document/d/1DDDmJzBVcNWhuj8JMRUVb7JlrVZ5kYBugR_INSS96No/edit
https://docs.google[.]com/document/d/1UbfOcHm-T9GCPiitqDRh5TNwZRNJ8_miEpLW-2ypU-I/edit
https://docs.google[.]com/document/d/1d1903AvDBYgOo0Pt9xBBnpCHwSerOpIi4l1b6M4mbT4/edit
https://docs.google[.]com/document/d/1JLuJKoxcd0vRqut8UeBjFJXzMDQ9OiY2ItoVIRq6Gw8/edit
https://docs.google[.]com/document/d/1EOwVDlYPV3gE7PSnLZvuTgUQXvOSN9alyN5aMw7bGeI/edit
https://docs.google[.]com/document/d/18sc6rZjk529iYF2iBTsmuNXvqDqTBSH45DhSZpuLv_U/edit
Técnicas de MITRE ATT&CK
Nota: esta table fue creada utilizando la versión 8 del framework MITRE ATT&CK
Tactic | ID | Name | Description |
---|---|---|---|
Resource Development | T1583.001 | Acquire Infrastructure: Domains | Ousaban operators register domains to be used as C&C servers. |
T1587.001 | Develop Capabilities: Malware | Ousaban is operated by the same group that develops it. | |
Initial Access | T1566.001 | Phishing: Spearphishing Attachment | Ousaban’s initial downloader is most commonly distributed as a spam attachment. |
Execution | T1059.001 | Command and Scripting Interpreter: PowerShell | Ousaban uses PowerShell in some distribution chains. |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell | Ousaban uses the cmd.exe to execute the legitimate applications that side-load the main Ousaban payload. | |
T1059.007 | Command and Scripting Interpreter: JavaScript/JScript | Ousaban uses JavaScript in some distribution chains. | |
T1204.002 | User Execution: Malicious File | Ousaban relies on the victim to execute the distributed MSI file. | |
Persistence | T1098 | Account Manipulation | Ousaban registers a new local administrator account on the victim’s machine. |
T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | Ousaban achieves persistence using the Run key or startup folder. | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Ousaban payloads and strings are encrypted. |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | Ousaban is often executed by this technique. | |
T1562.001 | Impair Defenses: Disable or Modify Tools | Ousaban modifies the RDP settings of the victim’s machine. | |
T1562.004 | Impair Defenses: Disable or Modify System Firewall | Ousaban modifies Windows firewall settings. | |
T1027.001 | Obfuscated Files or Information: Binary Padding | Ousaban frequently uses binary padding. | |
T1027.002 | Obfuscated Files or Information: Software Packing | Ousaban binaries are protected by Themida or Enigma packers. | |
T1218.007 | Signed Binary Proxy Execution: Msiexec | Ousaban uses the MSI format for execution. | |
Credential Access | T1056.001 | Input Capture: Keylogging | Ousaban can capture keystrokes. |
Discovery | T1010 | Application Window Discovery | Ousaban looks for bank- and email-related windows based on their window names and titles. |
T1518.001 | Software Discovery: Security Software Discovery | Ousaban collects information about the security software installed on the victim’s machine. | |
T1082 | System Information Discovery | Ousaban collects basic information about the victim’s machine, such as computer name and Windows version. | |
T1113 | Screen Capture | Ousaban can take screenshots. | |
Command and Control | T1132.002 | Data Encoding: Non-Standard Encoding | Ousaban uses RealThinClient that provides non-standard encryption. |
T1219 | Remote Access Software | Ousaban installs RDPWrap on the victim’s machine. | |
Exfiltration | T1041 | Exfiltration Over C2 Channel | Ousaban exfiltrates data via C&C server. |