En este blogpost hablamos de un tipo poco común de campaña de phishing dirigida a usuarios de móviles y analizamos un caso que observamos in the wild que tenía como objetivo a clientes de un importante banco checo. Esta técnica es digna de mención porque instala una aplicación de phishing desde un sitio web de terceros sin que el usuario tenga que permitir la instalación de aplicaciones de terceros. Para los usuarios de iOS, una acción de este tipo podría romper cualquier suposición de jardín amurallado (o walled garden, en inglés) sobre la seguridad. En Android, esto podría dar lugar a la instalación silenciosa de un tipo especial de APK, que en una inspección más detallada incluso parece ser instalado desde la tienda Google Play.

Los sitios web de phishing dirigidos a iOS indican a las víctimas que añadan una Aplicación Web Progresiva (PWA, por sus siglas en inglés) a sus pantallas de inicio, mientras que en Android la PWA se instala después de confirmar las ventanas emergentes personalizadas en el navegador. En este punto, en ambos sistemas operativos, estas aplicaciones de phishing son prácticamente indistinguibles de las aplicaciones bancarias reales que imitan. En esencia, las PWA son sitios web integrados en lo que parece una aplicación independiente, sensación que se ve reforzada por el uso de avisos nativos del sistema. Las PWA, al igual que los sitios web, son multiplataforma, lo que explica por qué estas campañas de phishing PWA pueden dirigirse tanto a usuarios de iOS como de Android.

Esta técnica fue revelada por primera vez por CSIRT KNF en Polonia en julio de 2023 y, en noviembre de 2023, observada en Chequia por analistas de ESET que trabajaban en el servicio Brand Intelligence. También observamos dos casos de campañas móviles contra bancos fuera de Chequia: un caso dirigido al banco húngaro OTP Bank y otro dirigido un banco georgiano.

Puntos clave del blogpost:
  • Las técnicas estándar de entrega de phishing se combinaron con un método novedoso de phishing; dirigido a usuarios de Android e iOS a través de PWAs, y en Android también WebAPKs.
  • Insidiosamente, la instalación de una aplicación PWA/WebAPK no advierte a la víctima sobre la instalación de una aplicación de terceros.
  • En Android, estos WebAPKs de phishing incluso parecen haber sido instalados desde la tienda Google Play.
  • La mayoría de las aplicaciones observadas iban dirigidas a clientes de bancos checos, pero también observamos una aplicación de phishing dirigida a un banco húngaro y otra dirigida a un banco georgiano.
  • Basándonos en los servidores de C&C utilizados y en la infraestructura de backend, llegamos a la conclusión de que dos actores de amenazas diferentes estaban operando las campañas.
  • Gracias al descubrimiento de paneles de operadores en diferentes dominios, pudimos notificar a los bancos de las víctimas para protegerlos.

Resumen

Los analistas de ESET descubrieron una serie de campañas de phishing dirigidas a usuarios móviles que utilizaban tres mecanismos de entrega de URL diferentes (mostrados en la Figura 1). Estos mecanismos incluyen llamadas de voz automatizadas, mensajes SMS y publicidad maliciosa en redes sociales.

La entrega de llamadas de voz se realiza a través de una llamada automatizada que advierte al usuario sobre una aplicación bancaria desactualizada y le pide que seleccione una opción en el teclado numérico. Tras pulsar el botón correcto, se envía una URL de phishing por SMS. Así lo informó Michal Bláha en un tuit.

La entrega inicial por SMS se realizó mediante el envío indiscriminado de mensajes a números de teléfono checos. El mensaje enviado incluía un enlace de phishing y un texto para que las víctimas realizaran ingeniería social y visitaran el enlace.

La propagación a través de anuncios maliciosos se realizó mediante el registro de anuncios en plataformas Meta como Instagram y Facebook. Estos anuncios incluían una llamada a la acción, como una oferta limitada para los usuarios que "descargaran una actualización a continuación". Esta técnica permite a los actores de amenazas especificar el público objetivo por edad, sexo, etc. Los anuncios aparecían entonces en las redes sociales de las víctimas.

Después de abrir la URL entregada en la primera etapa, las víctimas de Android se encuentran con una página de phishing de alta calidad que imita la página oficial de la tienda Google Play para la aplicación bancaria objetivo, o un sitio web de imitación de la aplicación. Se trata de dos campañas distintas. Es posible que la campaña que utiliza imágenes de Google Play se modifique a sí misma en función del User-Agent recibido para imitar las imágenes de Apple Store. No observamos esta técnica en los casos analizados.

Figure_1_PWA_flow_diagram
Figura 1. Flujo de phishing de la PWA

A partir de aquí se pide a las víctimas que instalen una "nueva versión" de la aplicación bancaria; un ejemplo de ello puede verse en la Figura 2. Dependiendo de la campaña, al hacer clic en el botón instalar/actualizar se inicia la instalación de una aplicación maliciosa desde el sitio web, directamente en el teléfono de la víctima, ya sea en forma de WebAPK (sólo para usuarios de Android), o como PWA para usuarios de iOS y Android (si la campaña no está basada en WebAPK). Este paso crucial de la instalación elude las advertencias tradicionales de los navegadores de "instalar apps desconocidas": este es el comportamiento por defecto de la tecnología WebAPK de Chrome, de la que abusan los atacantes.

Figure_2_Example_copycat_installation_page
Figura 2. Ejemplo de página de instalación de imitación

El proceso es un poco diferente para los usuarios de iOS, ya que una ventana emergente animada indica a las víctimas cómo añadir la PWA de phishing a su pantalla de inicio (ver Figura 3). La ventana emergente copia el aspecto de los mensajes nativos de iOS. Al final, ni siquiera se advierte a los usuarios de iOS sobre la adición de una aplicación potencialmente dañina a su teléfono.

Figure_3_iOS_popup_instructions
Figura 3 Instrucciones emergentes de iOS tras hacer clic en "Instalar" (crédito: Michal Bláha)

Tras la instalación, se pide a las víctimas que introduzcan sus credenciales de banca por Internet para acceder a su cuenta a través de la nueva aplicación de banca móvil. Toda la información facilitada se envía a los servidores de C&C de los atacantes.

Cronología

Descubrimos el primer caso de phishing a través de PWA a principios de noviembre de 2023, y nos dimos cuenta de la transición a los WebAPK a mediados de noviembre de 2023. Los servidores de C&C que recibían información de las aplicaciones de phishing se descubrieron por primera vez en marzo de 2024 (como puede verse en la Figura 4), con datos en ellos que confirman que probablemente no estaban operativos antes.

Figure_4_Timeline
Figura 4. Cronología de la campaña de phishing PWA y WebAPK

La única excepción es el servidor cryptomaker[.]info, que descubrimos en mayo de 2024, pero que incluía actividad de una campaña contra un banco de Georgia en febrero de 2024.

Análisis técnico

En esta sección nos centramos en el análisis de una campaña contra un importante banco checo, utilizando la tecnología WebAPK. También explicamos brevemente la tecnología subyacente de las aplicaciones web progresivas (PWA) y WebAPK.

Aplicaciones PWA y WebAPK

PWAs

La campaña de phishing y el método analizados en este post sólo son posibles gracias a la tecnología de las aplicaciones web progresivas (PWA). En pocas palabras, las PWA son aplicaciones creadas con tecnologías de aplicaciones web tradicionales que pueden ejecutarse en múltiples plataformas y dispositivos. Estas aplicaciones se instalan en el teléfono móvil del usuario después de que aparezca automáticamente un aviso de instalación emergente o de que el usuario seleccione manualmente la opción Instalar aplicación en el menú de un navegador compatible. El paso crucial es la instalación, que permite utilizar las aplicaciones en una ventana independiente y lanzarlas desde la barra de menús o la pantalla de inicio. Tras la instalación, las PWA en la pantalla de inicio se distinguen porque el logotipo del navegador del usuario se superpone al icono de la PWA (Figura 5).

Figure_5_Installed phishing PWA (left) and real banking app (right)
Figura 5. PWA de phishing instalada (izquierda) y aplicación bancaria real (derecha)

Las PWA también tienen la ventaja de contar con un único código base para múltiples plataformas, que ahora también pueden utilizar las modernas API de los navegadores e incluso código nativo, gracias a WebAssembly. Las aplicaciones web progresivas también pueden utilizarse offline, gracias a los service workers (véase la figura 6). Estos trabajadores actúan como una especie de sistema proxy, recuperando datos de la caché local si no se dispone de conexión a Internet.

Figure_6_Simplified_how_pwas_work
Figura 6. Diagrama simplificado del funcionamiento de las PWA

Todo el comportamiento de la aplicación se define en un único archivo llamado manifiesto. Se trata de un archivo estandarizado que define el logotipo, el nombre, el ámbito de la aplicación web, las fuentes y el script del service worker de la aplicación, así como el tipo de lanzador. Aquí el actor de la amenaza puede definir la aplicación como independiente, lo que hace que la PWA se comporte como una aplicación móvil normal.

Las PWAs también pueden ser asignadas como manejadores por defecto para ciertos formatos de archivo, pero sólo como una característica experimental, que no es compatible con los navegadores móviles. Esto podría dar lugar a que los actores de amenazas escriban aplicaciones maliciosas que se registren como manejador por defecto para, por ejemplo, todos los documentos .docx, y así se podría crear una sencilla pero potente app de espionaje. Sin embargo, incluso sin esa característica, el acceso a las API del navegador da a las PWA el derecho a solicitar acceso al micrófono, la geolocalización, la cámara y todas las demás funciones compatibles del navegador, lo que significa que las PWA de espionaje podrían estar en el radar.

WebAPKs

Los WebAPK podrían considerarse una versión mejorada de las aplicaciones web progresivas, ya que el navegador Chrome genera una aplicación nativa de Android a partir de una PWA: en otras palabras, un APK. Estos WebAPKs parecen aplicaciones nativas normales, ya que sus iconos carecen del logo del navegador (ver Figura 7). En el esquema de phishing PWA/WebAPK, esto se utiliza para engañar a los usuarios haciéndoles creer que la aplicación de phishing instalada es su aplicación bancaria legítima. Actualmente, la generación de WebAPKs sólo está soportada por Google Chrome.

Figure_7_Comparison between an installed phishing WebAPK (left) and real banking app (right
Figura 7. Comparación entre un WebAPK de phishing instalado (izquierda) y una aplicación bancaria real (derecha)

Además, la instalación de un WebAPK no produce ninguna de las advertencias de "instalación desde una fuente no fiable", como el ejemplo de la figura 8, que los usuarios están acostumbrados a buscar. La aplicación se instalará incluso si la instalación desde fuentes de terceros no está permitida.

Figure_8_Browser_warning
Figura 8. Navegador advirtiendo a los usuarios sobre la instalación desde una fuente no fiable - no se muestra para WebAPKs

Flujo de phishing

Como se mencionó en nuestro resumen de las campañas supervisadas, se utilizaron múltiples tipos de mecanismos de entrega. En el caso de la campaña de phishing contra el importante banco checo, todo el flujo comenzó con un enlace de phishing difundido por múltiples anuncios maliciosos en Facebook (véase la Figura 9). Estos anuncios se registraban de forma masiva, a menudo cinco o seis a la vez, y cada registro se realizaba en un momento distinto. El actor de la amenaza utilizó cuentas Meta especialmente creadas y posiblemente cuentas comprometidas.

Los anuncios maliciosos incluían una mezcla de la mascota oficial del banco (camaleón azul), así como logotipos del banco y texto que prometía una recompensa económica al instalar la aplicación o advertía a los usuarios de que se había lanzado una actualización crítica.

Figure_9_Malvertising_captioned
Figura 9. Ejemplo de anuncio malicioso utilizado en estas campañas

En el caso del ejemplo, se utilizó una oferta de recompensa económica por tiempo limitado para atraer a las víctimas a visitar el enlace malicioso. Tras visitar el enlace, los usuarios aparecían en una página convincente, aunque falsa, de Google Play (Figura 10). Este es el sitio desde el que se descarga el WebAPK de phishing.

 

Figure_10_Phishing_landing_page
Figura 10. Página de destino de phishing que imita a Google Play

El sitio comprueba el uso de un cliente móvil a través del encabezado HTTP User-Agent. Si la víctima utiliza efectivamente un dispositivo móvil, el botón "Instalar" le solicita la instalación a través de una ventana emergente. Si el encabezado User-Agent corresponde a un ordenador de sobremesa, el botón de instalación no hace nada. El mensaje también imita las animaciones de Google Play, lo que aumenta aún más la credibilidad de esta campaña (Figura 11).

Figure_11_Installation
Figura 11. Mensaje de instalación (izquierda) y mensaje de instalación animado en la página de phishing (derecha)

La campaña demostrada se dirige claramente a los usuarios de Android, gracias al aspecto visual y las animaciones de Google Play. Otras campañas (que hemos observado y de las que se ha informado públicamente) se dirigían a usuarios de sistemas iOS (Figura 12) y Android. Estos sitios utilizaban el visual de una aplicación conocida en la página de aterrizaje e incitaban a las víctimas a instalar una nueva versión. Los usuarios de Android eran conducidos a instalar un WebAPK, y los de iOS a PWAs.

Figure_12_iOS_installation_Michal_Blaha
Figura 12. Ejemplo de instalación en iOS (crédito: Michal Bláha)

Tras la instalación, la PWA/WebAPK de phishing se añade a la pantalla de inicio del usuario, y al abrirla conduce a una página de inicio de sesión de phishing, directamente en la aplicación (Figura 13).

Figure_13_WebAPK icon (left) and the in-app phishing login page (right)
Figura 13. Icono de WebAPK (izquierda) y página de inicio de sesión de phishing dentro de la aplicación (derecha)

Además de todos los obstáculos mencionados anteriormente para un usuario normal, la pestaña de información de la aplicación también indica que la aplicación se descargó de la tienda Google Play, que es el comportamiento por defecto (Figura 14). Esto se aplica a todas las aplicaciones WebAPK.

Figure_14_webapk_infomenu
Figura 14. Menú de información de WebAPK: observa la sección "Detalles de la aplicación en la tienda" en la parte inferior

La aplicación de phishing y la URL de phishing de las que se habla en este post se notificaron a ČSOB. Las aplicaciones de phishing nunca han estado disponibles en la tienda Google Play.

Infraestructura de C&C

Basándonos en el hecho de que las campañas utilizaban dos infraestructuras de C&C distintas, hemos determinado que dos grupos distintos estaban operando las campañas de phishing PWA/WebAPK contra bancos checos y de otros países.

Un grupo utilizaba un bot de Telegram para registrar toda la información introducida en un chat de grupo de Telegram a través de la API oficial de Telegram, y otro utilizaba un servidor de C&C tradicional con un panel administrativo. El segundo grupo es el responsable de la campaña de la que hablaremos en uno de nuestros próximos artículos.

Los bots de Telegram

Toda la información de acceso robada se registraba a través de un servidor backend, que luego enviaba los datos de acceso bancario introducidos por el usuario a un chat de grupo de Telegram. Las llamadas HTTP para enviar mensajes al chat de grupo del actor de la amenaza se realizaron a través de la API oficial de Telegram. Esta técnica no es nueva y se utiliza en varios kits de phishing.

Tras cargar la página de phishing de la PWA, se muestra un stack trace en la parte superior de la pantalla (ver Figura 15). El stack trace incluye información sobre la API de Telegram y el bot token utilizados, y era visible incluso en la pantalla de login.

Figure_15_telegram_info_leak
Figura 15. Pantalla de inicio de sesión filtrando información de Telegram

Basándonos en esto, identificamos que el actor de la amenaza registró todos los datos en un chat de grupo de Telegram. Informamos de toda la información sensible de los clientes bancarios comprometidos a los bancos pertinentes.

Servidores C&C

Durante el análisis de una de las PWA instaladas, observamos que los datos introducidos de las víctimas se enviaban a un servidor backend diferente. Al inspeccionar el servidor de C&C contactado, descubrimos un panel de operador (Figura 16) que incluía información sensible de las víctimas, URLs de phishing activas en ese momento y un historial completo de las víctimas visitadas.

Figure_16_CC_administration_panel
Figura 16. Panel administrativo de C&C

Los actores de la amenaza no se quedaron quietos, y después de desactivar el primer dominio C&C(hide-me[.]online) continuaron estableciendo más dominios e incluso prepararon una campaña maliciosa completamente nueva, operada desde el mismo panel. La segunda campaña se analizará en próximas investigaciones.

Gracias a la información recuperada del panel, pudimos contactar con los bancos afectados y proteger a los clientes afectados.

Conclusión

Identificamos un método novedoso de phishing, que combina métodos bien establecidos de ingeniería social junto con la tecnología multiplataforma de las aplicaciones PWA. También se encontraron casos dirigidos a usuarios de Android, concretamente a través de una página de imitación de la página de la tienda Google Play de la aplicación objetivo y utilizando la tecnología WebAPK.

La mayoría de los casos conocidos se han producido en Chequia, y sólo dos aplicaciones de phishing han aparecido fuera de esta región (en Hungría y Georgia).

Dado que se emplearon dos infraestructuras de C&C drásticamente diferentes, hemos determinado que dos grupos distintos son responsables de la propagación de las aplicaciones de phishing.

Esperamos que se creen y distribuyan más aplicaciones de imitación, ya que después de la instalación es difícil separar las aplicaciones legítimas de las de phishing.

Toda la información sensible encontrada durante nuestra investigación se envió rápidamente a los bancos afectados para su procesamiento. También negociamos el desmantelamiento de múltiples dominios de phishing y servidores de C&C.

Para cualquier consulta sobre nuestra investigación publicada en WeLiveSecurity, póngase en contacto con nosotros en threatintel@eset.com.
ESET Research ofrece informes privados de inteligencia APT y fuentes de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.

IoCs

Archivos

SHA-1

Filename

Detection

Description

D3D5AE6B8AE9C7C1F869
0452760745E18640150D

base.apk

Android/Spy.Banker.CIC

Android mobile phishing app

66F97405A1538A74CEE4
209E59A1E22192BC6C08

base.apk

Android/Spy.Banker.CLW

Android mobile phishing app

Red

IP

Domain

Hosting provider

First seen

Details

46.175.145[.]67

hide-me[.]online

Cloudflare, Inc.

2024‑03‑05

C&C server.

185.181.165[.]124

cyrptomaker[.]info

NETH LLC

2024‑02‑21

C&C server.

172.67.182[.]151

blackrockapp[.]eu

Cloudflare, Inc.

2024‑04‑07

C&C server.

185.68.16[.]56

csas.georgecz[.]online

Hosting Ukraine LTD

2023-11-29

Distribution server.

188.114.96[.]9

play-protect[.]pro

Cloudflare, Inc.

2024-01-18

Distribution server.

Técnicas ATT&CK de MITRE

Esta tabla se ha elaborado utilizando la versión 15 del marco MITRE ATT&CK.

Tactic

ID

Name

Description

Initial Access

T1660

Phishing

Applications are first distributed by malicious advertising or mass phishing. After installation, the application itself is used for phishing.

Credential Access

T1417.002

Input Capture: GUI Input Capture

Credentials are harvested by impersonating the login pages of targeted banks.

Command and Control

T1437.001

Application Layer Protocol: Web Protocols

PWA/WebAPK phishing apps send login data via JavaScript interfaces, as well as tracking data.