Cómo usan .NET MAUI para ocultar malware en Android

  • Los atacantes ocultan código en blobs de C# de .NET MAUI para evadir análisis DEX.
  • Las apps falsas se distribuyen fuera de Google Play y roban datos sensibles.
  • Emplean carga por etapas, cifrado multicapa y C2 cifrado para persistir.

Ilustración sobre .NET MAUI y malware en Android

Los ciberdelincuentes han encontrado un nuevo escondite para sus campañas: .NET MAUI, el framework multiplataforma de Microsoft. Un conjunto creciente de apps falsas se disfraza de banca, mensajería, citas o redes sociales, y en realidad busca una sola cosa: robarte datos y esquivar los sistemas de detección en Android con técnicas nada triviales.

El hallazgo, observado principalmente en India y China, marca una tendencia que podría escalar rápido. Aprovechando que .NET MAUI permite empaquetar la lógica en binarios de C# poco habituales en Android, los atacantes consiguen una capa adicional de sigilo frente a antivirus que históricamente analizan archivos DEX o librerías nativas. El resultado: apps que parecen legítimas y que sobreviven más tiempo en tu móvil.

¿Qué es .NET MAUI y por qué es la pieza clave?

.NET Multi-platform App UI (.NET MAUI) es el sucesor de Xamarin y posibilita crear aplicaciones nativas con un único código en C# y XAML para Android, iOS, Windows y macOS. Lanzado en 2022, nació para simplificar el desarrollo multiplataforma, y desde el 1 de mayo de 2024 Xamarin ha quedado oficialmente sin soporte, animando a migrar a .NET MAUI en entornos profesionales.

La clave del abuso en Android está en el empaquetado: a diferencia de las apps clásicas compiladas a DEX (Java/Kotlin), las creadas con .NET MAUI pueden almacenar funcionalidades en grandes blobs binarios de C#. Muchas herramientas de seguridad automatizan su análisis hacia DEX y código nativo, dejando menos escrutados estos blobs, que terminan siendo un escondite eficaz para código malicioso.

Esta arquitectura ofrece a los atacantes varias ventajas: un “modo sigiloso” al ocultar la lógica entre binarios, persistencia prolongada al tardar más en ser detectados y la posibilidad de usar técnicas de evasión poco comunes en el ecosistema Android tradicional. En resumen, el framework actúa en la práctica como un empaquetador que complica la inspección estática.

Apps falsas basadas en .NET MAUI

Cómo se camuflan: de banca a redes sociales

Los casos observados muestran una táctica consistente: apps que imitan servicios legítimos para inspirar confianza. Se han visto APK fuera de Google Play que suplantan a bancos, mensajería, plataformas de citas y redes sociales famosas (incluyendo clones de X, antes Twitter) y que, una vez instalados, solicitan datos sensibles con apariencia de flujos reales.

Ejemplo bancario: una app fraudulenta se presentó como el IndusInd Bank (India). En su interfaz pedía nombre completo, número de teléfono, correo electrónico, fecha de nacimiento, identificadores fiscales (como PAN y Aadhaar) y hasta datos de tarjetas. Al pulsar “enviar”, la información viajaba directamente a un servidor de comando y control (C2) controlado por los atacantes.

Ejemplo de red social: otra app, dirigida a usuarios de habla china, prometía funciones de una SNS pero, por detrás, intentaba leer contactos, mensajes SMS y acceder a fotos del dispositivo. Este tipo de robo silencioso se camufla en flujos aparentemente normales de la app, haciendo que el usuario no perciba nada raro mientras navega.

Distribución: como no superarían la revisión de Google, estas aplicaciones no están en Play Store. Se propagan mediante sitios web falsos, tiendas de terceros, grupos de chat y enlaces compartidos por SMS o mensajería. En entornos donde Google Play está restringido (por ejemplo, China), el hábito de descargar desde tiendas alternativas facilita el fraude.

Las técnicas de evasión que emplean

Además del camuflaje visual, estas campañas usan un conjunto de trucos para evitar la detección y frustrar a los analistas. Un patrón común es la carga por etapas: en lugar de mostrar todo el contenido malicioso de golpe, el malware se despliega en fases, cada una revelando una porción del comportamiento.

En concreto, varios análisis describen un esquema de tres etapas que descifra y ejecuta cargas útiles paso a paso, elevando la dificultad del análisis. A este enfoque se suma el cifrado multicapa, combinando técnicas como XOR y AES para que la lógica y las comunicaciones queden opacas ante inspecciones superficiales.

Otro truco habitual es inflar el AndroidManifest.xml con cadenas aleatorias o permisos sin sentido (por ejemplo, permisos con nombres inventados tipo “android.permission.LhSSzIw6q”). Este “ruido” confunde herramientas automáticas de seguridad, complica el análisis estático y, en ocasiones, rompe heurísticas simplistas.

La exfiltración va igualmente blindada: los datos robados se envían a servidores C2 a través de sockets TCP cifrados, de modo que, aunque se intercepte el tráfico, resulte difícil descifrar su contenido y correlacionarlo con un comportamiento malicioso. Todo ello, escondido en blobs de C# que no siempre reciben la misma atención que el DEX tradicional.

Qué capacidades suelen incluir

Las campañas observadas cubren desde el robo de información personal hasta funcionalidades propias de spyware. Entre las capacidades más repetidas aparecen la lectura de contactos, acceso a SMS, obtención de fotos almacenadas y recolección de información del dispositivo, todo con el objetivo de perfilar a la víctima o monetizar los datos.

En el ámbito financiero, son comunes los troyanos bancarios que capturan credenciales, números de tarjeta y otros secretos. En algunos casos, recurren a superposiciones (overlay) para imitar la pantalla de un banco legítimo y robar lo que el usuario introduce. Se citan familias como Cerberus o Alien en el ecosistema Android, y aunque el foco de esta ola es .NET MAUI, la lógica de robo sigue principios muy similares.

No se limita al fraude bancario: ciertos ejemplares se comportan como spyware, rastreando actividad en redes sociales y comunicaciones, o como ransomware, cifrando archivos y exigiendo pagos. La convergencia entre .NET MAUI y este catálogo de amenazas multiplica su eficacia al añadir una capa de evasión novedosa.

Importante: a diferencia de muchos malwares Android que descargan el payload malicioso después de la instalación (técnica “descarga bajo demanda”), con .NET MAUI parte de la lógica peligrosa ya viene preempaquetada y oculta, reduciendo la exposición a controles intermedios.

Señales de alarma y cómo identificarlas

Aunque el disfraz sea bueno, hay indicios que permiten sospechar. El más claro es el origen de instalación: si la app llega por enlaces en SMS, grupos de chat, webs desconocidas o tiendas alternativas, extrema la cautela, especialmente si replica servicios ya presentes en Google Play.

Otra pista es la solicitud de permisos desmesurados: una app de linterna que pide SMS y contactos, una utilidad que requiere accesibilidad sin motivo, o un “banco” que exige más de lo razonable. El manifiesto inflado con permisos extraños —cuando se alcanza a revisar— es una anomalía de libro.

También conviene desconfiar de apps con iconos que desaparecen del cajón, cambios sutiles en la configuración o comportamientos que degradan el rendimiento y la batería sin explicación. Estas señales, aunque no concluyentes, apuntan a procesos activos en segundo plano que podrían ser maliciosos.

Por último, habilita y revisa regularmente Google Play Protect. Esta función —cuando está activa— es capaz de bloquear o advertir sobre algunas de las apps marcadas en investigaciones recientes, y añade una barrera adicional si te mueves fuera del ecosistema oficial.

Cómo se distribuyen y a quién apuntan

Los operadores han priorizado regiones donde la descarga desde tiendas alternativas es habitual, como China, o países donde el gancho de la banca móvil y los pagos digitales es fuerte, como India. Esto explica campañas dirigidas con apps que imitan a X o a bancos locales como IndusInd.

El canal de entrada suele ser un flujo social: mensajes privados, grupos de chat, “ofertas” o promesas de funcionalidades premium. A veces, los dominios que alojan los APK son clones convincentes de marcas reales, lo que aumenta el índice de instalación y reduce la sospecha inicial del usuario.

La no presencia en Google Play Store es intencional: evita pasar por controles automáticos y manuales de la tienda. En su lugar, los atacantes despliegan infraestructuras propias para servir las descargas y reciclan el mismo núcleo malicioso en múltiples “marcas” con iconos y nombres distintos.

Buenas prácticas para protegerte

Hay un conjunto de hábitos que reduce drásticamente el riesgo. El primero es el más obvio: instalar apps solo desde fuentes oficiales (Google Play o tiendas verificadas del fabricante). Aunque no es infalible, recorta el 90% de los escenarios peligrosos que dependen de la instalación directa de APK.

Mantén el sistema y las apps siempre actualizados. Los parches de seguridad cierran vectores que muchos malwares aprovechan de manera oportunista. Dado que estas campañas evolucionan rápido, tener la última versión de Android y de tus apps es una defensa clave.

Presta atención a los permisos. Si algo no encaja con la función de la app, pregunta por qué lo necesita y, en caso de duda, deniega. Algunas herramientas de seguridad permiten categorizar y auditar permisos para ayudarte a decidir con más información.

Valora una solución de seguridad móvil de confianza: opciones como McAfee+, Bitdefender Mobile Security o Kaspersky Internet Security para Android ofrecen protección en tiempo real y mejoran el filtrado de instalaciones dudosas. Y, muy importante, mantén Google Play Protect activado.

Si operas en regiones sin Play Store, antes de instalar un APK pásalo por un escáner de malware reconocido y comprueba que el origen sea fiable. La prisa es mala consejera: dedicar dos minutos a validar la procedencia te puede ahorrar un disgusto.

Qué hace legítimamente .NET MAUI (y por qué eso no te debería asustar)

Conviene recordar que .NET MAUI es un framework legítimo y potente usado por miles de desarrolladores. De hecho, incluye APIs pensadas para proteger al usuario, como ISecureStorage (expuesta como SecureStorage.Default), diseñada para guardar pares clave–valor de forma segura y con limitaciones explícitas (ideal para pequeñas cadenas, no para grandes volúmenes). Estas capacidades se emplean a diario en apps respetuosas con tu privacidad.

En el ecosistema también hay herramientas que mejoran la calidad y la respuesta ante fallos como Sentry, con SDK para .NET MAUI (Sentry.Maui) y panel de control para monitorizar errores y eventos. Su propósito es ayudar a los equipos a detectar problemas, priorizarlos y resolverlos de forma más ágil, no es un mecanismo de espionaje.

Además, existen utilidades de productividad del propio ecosistema, como el FileSaver del .NET MAUI Community Toolkit, que permite proponer un nombre y guardar un archivo en una ruta elegida por el usuario con confirmación del sistema. Estas funciones están diseñadas con diálogos del sistema, permisos y buenas prácticas de plataforma, y son parte del desarrollo normal de apps.

En definitiva, el hecho de que los atacantes abusen de .NET MAUI no convierte al framework en “peligroso” per se; lo que ocurre es que su empaquetado y su condición multiplataforma ofrece un nicho de evasión que los defensores ya están cerrando con mejores firmas y análisis más profundos.

Estrategias internas de los atacantes: capas, confusión y C2

Resumiendo la anatomía técnica, los elementos más repetidos son: empaquetado en blobs de C# poco comunes para Android, cifrado por capas (combinaciones de XOR y AES) para esconder strings y payloads, y carga en fases para retrasar la exposición de la funcionalidad real durante el análisis.

En paralelo, aparece la manipulación del AndroidManifest.xml con permisos aleatorios o inflados para romper heurísticas y confundir herramientas automáticas, y el uso de sockets TCP cifrados para hablar con servidores C2. Ese canal cerrado complica la interceptación y hace más difícil reconstruir el flujo de datos robados.

Con este cóctel, las muestras pueden permanecer activas largos periodos sin ser detectadas, reciclarse en nuevas “marcas” y expandirse a otros países con pocas modificaciones. Que ya existan múltiples variantes con los mismos trucos sugiere que estamos ante una tendencia, no casos aislados.

Qué hacer si sospechas que instalaste una app trampa

Si notas señales extrañas (consumo inusual, permisos fuera de lugar, icono que desaparece, mensajes o llamadas no reconocidas), actúa rápido. Desinstala la app, pasa un escáner de reputación contrastada y cambia de inmediato contraseñas claves (especialmente banca y correo). Revisa movimientos bancarios y activa alertas.

En casos graves, considera restaurar el dispositivo a valores de fábrica y reinstalar desde cero solo apps de fuentes oficiales. La limpieza total es la manera más segura de deshacerte de persistencias poco evidentes y dejar el terminal en un estado confiable.

Si la app suplantaba a un servicio concreto (por ejemplo, tu banco), avisa al proveedor real; muchos tienen procedimientos para revocar tokens, bloquear sesiones y ayudarte a asegurar tus cuentas. Tu aviso también puede servir para que otros usuarios no caigan.

La conclusión práctica es clara: aunque estas campañas suban el listón técnico, con hábitos prudentes, herramientas adecuadas y atención a las señales, puedes mantenerte un paso por delante. Descargar desde tiendas oficiales, vigilar permisos, actualizar y usar seguridad en tiempo real sigue siendo la receta que más reduce el riesgo.

Este fenómeno demuestra que los atacantes siguen evolucionando y buscando regiones y formatos donde colarse; sin embargo, conocer cómo aprovechan .NET MAUI, qué tácticas usan (blobs en C#, cifrado multicapa, manifest inflado y C2 cifrado) y dónde se distribuyen (fuera de Play, por enlaces y tiendas de terceros) te da las herramientas para reconocer la trampa y proteger tus datos sin renunciar a las apps legítimas que sí usan el framework de forma responsable.