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 phishing flow Figure_1_PWA_flow_diagram](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-1-pwa-flow-diagram.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-2-example-copycat-installation-page.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-3-ios-popup-instructions.png)
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 of the PWA and WebAPK phishing campaign Figure_4_Timeline](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-4-timeline.png)
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) Figure_5_Installed phishing PWA (left) and real banking app (right)](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-5-installed-phishing-pwa-left-and-real-banking-app-right.png)
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 diagram of how PWAs work Figure_6_Simplified_how_pwas_work](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-6-simplified-how-pwas-work.png)
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) Figure_7_Comparison between an installed phishing WebAPK (left) and real banking app (right](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-7-comparison-between-an-installed-phishing-webapk-left-and-real-banking-app-right.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-8-browser-warning.png)
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. Example of a malicious advertisement used in these campaigns Figure_9_Malvertising_captioned](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-9-malvertising-captioned.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-10-phishing-landing-page.png)
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. Install prompt (left) and animated installation prompt on the phishing page (right) Figure_11_Installation](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-11-installation.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-12-ios-installation-michal-blaha.png)
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) Figure_13_WebAPK icon (left) and the in-app phishing login page (right)](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-13-webapk-icon-left-and-the-in-app-phishing-login-page-right.png)
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](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-14-webapk-infomenu.png)
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. Login screen leaking Telegram information Figure_15_telegram_info_leak](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-15-telegram-info-leak.png)
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. C&C administrative panel Figure_16_CC_administration_panel](https://web-assets.esetstatic.com/wls/2024/8-2024/be-careful-what-you-pwish-for/figure-16-cc-administration-panel.png)
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 |
base.apk |
Android/Spy.Banker.CIC |
Android mobile phishing app |
66F97405A1538A74CEE4 |
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 |
Phishing |
Applications are first distributed by malicious advertising or mass phishing. After installation, the application itself is used for phishing. |
|
Credential Access |
Input Capture: GUI Input Capture |
Credentials are harvested by impersonating the login pages of targeted banks. |
|
Command and Control |
Application Layer Protocol: Web Protocols |
PWA/WebAPK phishing apps send login data via JavaScript interfaces, as well as tracking data. |