APK Malicioso
Paquete de instalación Android (Android Package Kit) modificado para contener código malicioso. Principal vector de distribución de troyanos bancarios: Kaspersky contabilizó 12.184.351 ataques a dispositivos Android en el primer trimestre de 2025, y los troyanos bancarios encabezan los paquetes maliciosos detectados por tipo.
APK Malicioso
12.184.351. Esa es la cantidad de ataques a dispositivos Android que involucraron malware, adware o aplicaciones potencialmente no deseadas solo en el primer trimestre de 2025, según Kaspersky Securelist. La puerta de entrada principal: APKs maliciosos distribuidos fuera de la Play Store oficial. En España, troyanos como ToxicPanda, Crocodilus y Klopatra han infectado miles de dispositivos durante 2025, con ToxicPanda alcanzando 4.500 dispositivos en su punto máximo y Klopatra comprometiendo más de 3.000 terminales a traves de dos botnets coordinadas, apuntando directamente a la banca móvil española.
Definición técnica
APK (Android Package Kit) es el formato de archivo utilizado por el sistema operativo Android para la distribución e instalación de aplicaciones. Un APK malicioso es un paquete de instalación que ha sido modificado para incluir código danino: troyanos bancarios, spyware, ransomware, adware o cryptominers.
Estructura interna de un APK:
| Componente | Función | Relevancia forense |
|---|---|---|
| AndroidManifest.xml | Permisos, actividades, servicios declarados | Revela permisos peligrosos solicitados |
| classes.dex | Código ejecutable Dalvik/ART | Contiene lógica maliciosa (overlay, keylogger) |
| res/ | Recursos (imágenes, layouts) | Pantallas fake de overlay (imitación bancos) |
| lib/ | Librerias nativas (.so) | Código ofuscado en C/C++ (anti-análisis) |
| assets/ | Archivos adicionales | Configuración C2, payloads cifrados |
| META-INF/ | Firma digital del paquete | Certificado del desarrollador (falso o robado) |
Diferencia vs app legitima:
- App Play Store: Firmada por desarrollador verificado, escaneada por Play Protect, permisos justificados
- APK malicioso: Firmada con certificado auto-generado, distribuida por sideloading, solicita permisos excesivos (accesibilidad, overlay, SMS)
Vectores de distribución: como llegan los APKs maliciosos al dispositivo
1. Sideloading via SMS/WhatsApp
El vector más comun en España. El usuario recibe un mensaje urgente con enlace a descarga directa de APK.
Ejemplo real campana ToxicPanda (2025):
SMS: "CORREOS: Su paquete no pudo ser entregado.
Descargue la app para reprogramar:
https://correos-tracking[.]app/descarga.apk"
WhatsApp: "BBVA: Hemos detectado acceso no autorizado.
Instale la actualizacion de seguridad:
https://bbva-seguridad[.]net/app.apk"
Telegram: "Binance: Verifique su cuenta o sera bloqueada.
https://binance-verify[.]com/app.apk"2. Tiendas alternativas y sitios de descarga
| Fuente | Riesgo | Ejemplo |
|---|---|---|
| APKMirror | Bajo (verifican firmas) | Apps legítimas pre-release |
| APKPure | Medio | Algunas apps con adware inyectado |
| Sitios warez | Muy alto | Apps premium crackeadas con troyanos |
| Telegram channels | Muy alto | APKs “mod” de WhatsApp, juegos con malware |
3. Fake stores y malvertising
Sitios web que imitan la interfaz de Google Play Store para engajar al usuario.
Pagina falsa Play Store:
┌──────────────────────────────────────────┐
│ play.google.com.app-store[.]net 🔒 │ ← URL FALSA
│ │
│ [Logo Google Play] │
│ │
│ ┌──────────┐ BBVA Banca Movil │
│ │ [icono] │ ★★★★★ 4.8 (125K) │ ← Datos FALSOS
│ │ │ │
│ └──────────┘ [INSTALAR] │ ← Descarga APK
│ │ malicioso
│ Requiere Android 8.0+ │
│ 50M+ descargas │ ← Todo falso
└──────────────────────────────────────────┘4. Compromiso de la cadena de suministro
Apps legítimas en Play Store que se actualizan para incluir código malicioso después de pasar la revisión inicial (dropper technique).
Kaspersky (2026): la cantidad de amenazas Android detectadas creció casi la mitad, y solo en el tercer trimestre de 2025 las detecciones aumentaron un 38 % respecto al segundo.
Permisos peligrosos: indicadores de APK malicioso
Permisos críticos que solicitan los APKs maliciosos
| Permiso Android | Uso legitimo | Abuso por malware | Nivel riesgo |
|---|---|---|---|
| BIND_ACCESSIBILITY_SERVICE | Lectores pantalla, asistentes | Overlay attacks, captura interacciones | CRITICO |
| SYSTEM_ALERT_WINDOW | Chat bubbles, PiP video | Pantallas falsas sobre apps bancarias | CRITICO |
| READ_SMS / RECEIVE_SMS | Apps mensajería | Intercepción códigos OTP bancarios | ALTO |
| READ_CONTACTS | Agenda, redes sociales | Propagación malware a contactos | ALTO |
| CAMERA / RECORD_AUDIO | Apps foto/video/llamadas | Espionaje, grabación sin consentimiento | ALTO |
| REQUEST_INSTALL_PACKAGES | Tiendas apps alternativas | Instalar payloads adicionales (dropper) | ALTO |
| QUERY_ALL_PACKAGES | Gestores apps | Identificar apps bancarias instaladas | MEDIO |
Regla forense: Una app que solicita simultáneamente BIND_ACCESSIBILITY_SERVICE + SYSTEM_ALERT_WINDOW + READ_SMS tiene una probabilidad superior al 90% de ser un troyano bancario.
Abuso del servicio de accesibilidad
El servicio de accesibilidad de Android es el permiso más peligroso que puede conceder un usuario. Fue diseñado para ayudar a personas con discapacidad, pero los APKs maliciosos lo explotan para:
- Leer todo lo que aparece en pantalla (credenciales, mensajes, emails)
- Realizar acciones automáticamente (clicar botones, rellenar formularios)
- Interceptar notificaciones (códigos OTP, alertas bancarias)
- Evitar desinstalacion (cancelar automáticamente intentos de eliminar la app)
- Concederse permisos adicionales sin intervención del usuario
Crocodilus (2025): Este troyano, activo en España desde marzo 2025, explota el servicio de accesibilidad para cubrir la pantalla con una capa negra mientras ejecuta transacciones en segundo plano, haciendo que el usuario crea que su teléfono esta bloqueado temporalmente.
Análisis forense de APKs maliciosos: herramientas y metodología
Análisis estático (sin ejecutar el APK)
1. Decompilación con APKTool y JADX
## Paso 1: Decompilar APK con APKTool
apktool d sospechoso.apk -o ./output_apktool/
## Resultado: AndroidManifest.xml legible + recursos + smali code
## Paso 2: Decompilacion a Java con JADX
jadx sospechoso.apk -d ./output_jadx/
## Resultado: Código Java legible (mas facil de analizar)
## Paso 3: Verificar permisos en AndroidManifest.xml
cat ./output_apktool/AndroidManifest.xml | grep "uses-permission"2. Análisis con Androguard (Python)
## Script: Análisis forense de APK sospechoso con Androguard
from androguard.core.apk import APK
from androguard.misc import AnalyzeAPK
import hashlib
def analizar_apk_forense(apk_path):
"""
Analisis forense completo de APK sospechoso.
Extrae permisos, actividades, receptores y strings sospechosos.
"""
a, d, dx = AnalyzeAPK(apk_path)
# 1. Informacion basica
print("=" * 60)
print("INFORME FORENSE APK")
print("=" * 60)
print(f"Package: {a.get_package()}")
print(f"Version: {a.get_androidversion_name()}")
print(f"Min SDK: {a.get_min_sdk_version()}")
print(f"Target SDK: {a.get_target_sdk_version()}")
print(f"Main Activity: {a.get_main_activity()}")
# 2. Hash SHA256 (cadena de custodia)
with open(apk_path, 'rb') as f:
sha256 = hashlib.sha256(f.read()).hexdigest()
print(f"SHA256: {sha256}")
# 3. Certificado firmante
for cert in a.get_certificates():
print(f"Certificado issuer: {cert.issuer}")
print(f"Certificado serial: {cert.serial_number}")
# 4. Permisos peligrosos
permisos_criticos = {
"android.permission.BIND_ACCESSIBILITY_SERVICE": "CRITICO",
"android.permission.SYSTEM_ALERT_WINDOW": "CRITICO",
"android.permission.READ_SMS": "ALTO",
"android.permission.RECEIVE_SMS": "ALTO",
"android.permission.SEND_SMS": "ALTO",
"android.permission.READ_CONTACTS": "ALTO",
"android.permission.CAMERA": "ALTO",
"android.permission.RECORD_AUDIO": "ALTO",
"android.permission.REQUEST_INSTALL_PACKAGES": "ALTO",
}
print("\n--- PERMISOS PELIGROSOS ---")
riesgo_total = 0
for perm in a.get_permissions():
if perm in permisos_criticos:
nivel = permisos_criticos[perm]
print(f" [{nivel}] {perm}")
riesgo_total += 3 if nivel == "CRITICO" else 2
# 5. Strings sospechosos en codigo DEX
print("\n--- STRINGS SOSPECHOSOS ---")
keywords_malware = [
"overlay", "accessibility", "banking",
"c2", "command", "inject", "keylog",
"sms_intercept", "admin", "device_admin"
]
for dex_file in d:
for string in dex_file.get_strings():
lower = string.lower()
for kw in keywords_malware:
if kw in lower and len(string) < 200:
print(f" {string[:100]}")
break
# 6. Receptores de broadcast (triggers)
print("\n--- BROADCAST RECEIVERS ---")
for receiver in a.get_receivers():
print(f" {receiver}")
# 7. Evaluacion riesgo
print("\n" + "=" * 60)
if riesgo_total >= 6:
print("VEREDICTO: ALTAMENTE SOSPECHOSO (probable malware)")
elif riesgo_total >= 3:
print("VEREDICTO: SOSPECHOSO (requiere analisis dinamico)")
else:
print("VEREDICTO: RIESGO BAJO (analisis adicional recomendado)")
print(f"Puntuacion riesgo: {riesgo_total}/15")
## Uso
analizar_apk_forense("sospechoso.apk")Análisis dinámico (ejecutar en sandbox)
MobSF (Mobile Security Framework)
## Instalar y ejecutar MobSF
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf
## Acceder via navegador: http://localhost:8000
## Subir APK para análisis automatizado completo:
## - Permisos
## - Actividades de red
## - Llamadas API peligrosas
## - URLs hardcoded
## - Componentes exportados
## - Vulnerabilidades conocidasFrida (instrumentacion runtime)
## Interceptar llamadas a funciones criticas en tiempo real
frida -U -f com.sospechoso.app -l hook_script.js --no-pause
## hook_script.js ejemplo:
## Intercepta llamadas a APIs de SMS y Accesibilidad
## para documentar comportamiento maliciosoHerramientas forenses especializadas
| Herramienta | Tipo | Función principal | Licencia |
|---|---|---|---|
| APKTool | Estático | Decompilación recursos + smali | Open source |
| JADX | Estático | Decompilación a Java legible | Open source |
| Androguard | Estático | Análisis programático Python | Open source |
| MobSF | Estático + Dinámico | Framework completo automatizado | Open source |
| Frida | Dinámico | Instrumentación runtime | Open source |
| VirusTotal | Reputación | Escaneo multi-antivirus (70+ motores) | Freemium |
| Koodous | Comunidad | Base datos malware Android | Gratuita |
| Cellebrite UFED | Forense | Extracción física dispositivo | Comercial |
| Magnet AXIOM | Forense | Timeline completo sistema | Comercial |
Troyanos bancarios recientes distribuidos via APK malicioso en España
ToxicPanda (2024-2025)
| Característica | Detalle |
|---|---|
| Objetivo | Apps bancarias y wallets digitales |
| Distribución | Sideloading via sitios web comprometidos |
| Técnica | Overlay + intercepción OTP + DGA (Domain Generation Algorithms) |
| Impacto | 4.500 dispositivos infectados (pico), España y Portugal principales targets |
| Detección | Solicita accesibilidad + overlay + lectura SMS |
Crocodilus (2025)
| Característica | Detalle |
|---|---|
| Objetivo | Banca móvil + wallets cripto (recovery phrases) |
| Distribución | APKs troyanizados via dropper que elude restricciones Android |
| Técnica | Accesibilidad + overlay + pantalla negra mientras opera |
| Impacto | Campañas activas en España y Turquía, expansión a Sudamérica |
| Particularidad | Circunvala restricciones de Android 13+ para sideloading |
Klopatra (2025)
| Característica | Detalle |
|---|---|
| Objetivo | Banca móvil española e italiana |
| Distribución | Dos botnets coordinadas desde marzo 2025 |
| Técnica | VNC oculto para control remoto de smartphones |
| Impacto | Más de 3.000 dispositivos comprometidos |
| Particularidad | Permite al atacante operar el teléfono en tiempo real |
Caso real: troyano bancario via APK en España
Nota: El siguiente caso esta basado en investigaciones forenses reales realizadas en España durante 2024-2025. Los datos específicos han sido anonimizados para proteger la confidencialidad de los afectados, preservando los aspectos técnicos relevantes para fines educativos.
Campaña Crocodilus contra banca española (2025)
Contexto: Un usuario de Málaga recibio un SMS aparentemente de CaixaBank informando de una “actualización de seguridad obligatoria”. El enlace descargaba un APK que simulaba ser la app oficial.
Timeline del ataque:
| Timestamp | Evento | Evidencia |
|---|---|---|
| 10:15:00 | SMS recibido con enlace descarga | Base datos SMS del dispositivo |
| 10:17:23 | APK descargado (CaixaBank_v5.2.apk) | Directorio /sdcard/Download/ |
| 10:18:45 | Instalación completada | packages.list (install_time) |
| 10:19:02 | Permisos accesibilidad concedidos | appops.xml, settings.db |
| 10:19:30 | Permisos overlay concedidos | appops.xml |
| 10:35:10 | Usuario abre app CaixaBank real | logcat (ActivityManager) |
| 10:35:12 | Overlay activado (pantalla falsa) | logcat (WindowManager) |
| 10:36:00 | Credenciales capturadas | Tráfico de red (PCAP) |
| 10:36:15 | SMS OTP recibido e interceptado | telephony.db (received + deleted) |
| 10:38:00 | Transferencia de 8.500 euros ejecutada | Extracto bancario |
Análisis forense del APK:
Resultado analisis Androguard + MobSF:
Package: com.caixa.seguridad.update
SHA256: 7f3a2d1c8e9b4f5a6d7e8c9b0a1f2d3e4c5b6a7...
Certificado: Auto-firmado (NO coincide con CaixaBank real)
Min SDK: 26 (Android 8.0)
Permisos criticos detectados:
[CRITICO] BIND_ACCESSIBILITY_SERVICE
[CRITICO] SYSTEM_ALERT_WINDOW
[ALTO] READ_SMS
[ALTO] RECEIVE_SMS
[ALTO] READ_CONTACTS
[ALTO] CAMERA
[ALTO] REQUEST_INSTALL_PACKAGES
Strings sospechosos:
"overlay_inject_caixa"
"sms_intercept_otp"
"c2_server_connect"
"https://api.evil-c2[.]com/gate.php"
Comunicacion C2:
IP destino: 185.xxx.xxx.xxx (Paises Bajos)
Protocolo: HTTPS (puerto 443)
Datos exfiltrados: credenciales, SMS, contactosResultado:
- Informe pericial acredito que el APK era malware sofisticado (Crocodilus)
- Denuncia ante Policía Nacional (Brigada Central de Investigación Tecnológica)
- Banco devolvio el 70% de la cantidad sustraida al acreditar engaño sofisticado
- Coste pericial total: 1.800 euros (extracción + análisis APK + timeline + informe)
Marco legal español
Delitos tipificados en el Código Penal
| Artículo | Delito | Pena | Aplicación APK malicioso |
|---|---|---|---|
| Art. 197.1 CP | Descubrimiento y revelación secretos | 1-4 años prisión | Intercepción credenciales y SMS via APK |
| Art. 197.2 CP | Acceso ilícito a datos | 1-4 años prisión | Acceso a datos bancarios mediante malware |
| Art. 248 CP | Estafa informática | 6 meses - 3 años | Transferencias fraudulentas con credenciales robadas |
| Art. 264.1 CP | Daños informáticos | 6 meses - 3 años | Daño a datos/programas del dispositivo infectado |
| Art. 264 bis CP | Interrupción sistemas | 6 meses - 3 años | Bloqueo de funciones del dispositivo |
| Art. 264 ter CP | Facilitación herramientas delictivas | 6 meses - 2 años | Creación y distribución del APK malicioso |
Agravantes relevantes
- Art. 250.1.5 CP: estafa agravada cuando afecta a un elevado número de personas (campañas masivas de APKs)
- Art. 264.2 CP: Daños agravados si se comete en el marco de organización criminal
- Art. 264.3 CP: Penas en mitad superior si se utilizan datos personales de terceros
Responsabilidad del banco
Según la jurisprudencia española y la Directiva PSD2, las entidades bancarias tienen obligación de:
- Implementar autenticación reforzada (SCA) para operaciones sensibles
- Monitorizar operaciones anómalas en tiempo real
- Reembolsar al cliente en caso de operaciones no autorizadas, salvo negligencia grave
Criterio judicial habitual: Si el informe pericial demuestra que el APK empleaba técnicas sofisticadas (accesibilidad, overlay, intercepción SMS), los tribunales consideran que la víctima fue enganada con medios que exceden la diligencia exigible a un usuario medio.
Prevención y detección
Señales de alarma para usuarios
Un APK es sospechoso si:
- Se descarga fuera de Google Play Store oficial
- El enlace llega por SMS, WhatsApp o Telegram
- Solicita activar “Orígenes desconocidos” o “Instalar apps desconocidas”
- Solicita permisos de accesibilidad (ninguna app bancaria legitima lo requiere)
- Solicita permiso de superposición sobre otras apps
- El certificado firmante no coincide con el desarrollador oficial
Medidas de protección
- NUNCA instalar APKs fuera de Google Play Store
- Verificar permisos antes de instalar cualquier app
- Mantener Google Play Protect activado (detecta 50-70% variantes conocidas)
- Desactivar la opción “Instalar aplicaciones desconocidas” para todas las fuentes
- Usar antivirus móvil complementario (Kaspersky, Bitdefender, Malwarebytes)
- Activar alertas bancarias para cada transacción superior a 100 euros
- Establecer límites diarios de transferencia en la app bancaria
FAQ
P: Google Play Protect detecta todos los APKs maliciosos? R: No. Google Play Protect detecta entre el 50% y el 70% de las variantes conocidas de malware, pero las versiones nuevas (zero-day) pueden pasar inadvertidas durante los primeros 7-15 días. Troyanos como Crocodilus y ToxicPanda fueron diseñados específicamente para evadir Play Protect. Es recomendable complementar con antivirus móvil y, sobre todo, no instalar APKs de fuentes no oficiales.
P: Puede un perito recuperar evidencia de un APK malicioso después de un factory reset? R: Parcialmente. Un factory reset elimina la mayoría de datos del usuario y el malware, pero un perito con herramientas de extracción física (Cellebrite UFED, Oxygen Forensics) puede recuperar fragmentos de bases de datos SQLite, logs de instalación y artefactos de red. Sin embargo, la evidencia sera significativamente menor. Por eso es critico contactar a un perito ANTES de realizar el reseteo, para preservar la cadena de custodia completa.
P: Cuanto cuesta un análisis forense de APK malicioso? R: Los costes típicos son: extracción de evidencia del dispositivo Android (800-1.200 euros), análisis estático y dinámico del APK (600-1.000 euros), reconstrucción del timeline del ataque (400-800 euros) y ratificación judicial (300-600 euros). Total típico: 2.100-3.600 euros. El retorno de inversión es alto: el informe pericial permite acreditar el engaño sofisticado y facilita la recuperación del dinero sustraído (60-100% via seguro de fraude bancario).
P: Es delito distribuir un APK malicioso en España? R: Si. La creación y distribución de APKs maliciosos esta tipificada en el Art. 264 ter del Código Penal como facilitacion de herramientas delictivas, con penas de 6 meses a 2 años de prisión. Si además se usa para robar credenciales (Art. 197 CP) o cometer estafa (Art. 248 CP), las penas se acumulan y pueden superar los 6 años de prisión, especialmente con agravantes de organización criminal o pluralidad de víctimas.
Conceptos relacionados
- Troyano bancario: Tipo de malware distribuido mediante APKs maliciosos, especializado en robo de credenciales bancarias
- Overlay attack: Técnica principal utilizada por APKs maliciosos para mostrar pantallas falsas sobre apps bancarias
- Análisis de malware: Metodología general de análisis estático y dinámico aplicable a APKs
- ADB (Android Debug Bridge): Herramienta esencial para extracción forense de evidencia desde dispositivos Android infectados
¿Tu organización ha sufrido un incidente?
El análisis post-incidente responde qué entró, cuándo, por dónde y qué se llevó — y lo deja documentado con validez para un procedimiento.
Referencias y fuentes
Kaspersky Securelist. (2025). “IT threat evolution Q1 2025: Mobile statistics”. securelist.com
- 12.184.351 ataques a Android en el primer trimestre de 2025 (verificado, literal)
Kaspersky Securelist. (2025). “IT threat evolution Q2 2025: Mobile statistics”. securelist.com
- Amenazas Android crecieron casi 50% en 2025; +38% detecciones Q3 vs Q2
Kaspersky España. (2026). “Aplicaciones falsas, ataques NFC y otros problemas Android en 2026”. kaspersky.es
- Crecimiento de las amenazas Android en 2025: casi la mitad en el año y +38 % en el tercer trimestre respecto al segundo
BitSight. (2025). “ToxicPanda: The Android Banking Trojan Targeting Europe”. bitsight.com
- 4.500 dispositivos infectados; España y Portugal principales objetivos
The Hacker News. (2025). “New Android Trojan Crocodilus Abuses Accessibility”. thehackernews.com
- Crocodilus activo en España: overlay + accesibilidad + pantalla negra
The Hacker News. (2025). “New Android Banking Trojan Klopatra Uses Hidden VNC”. thehackernews.com
- Klopatra: 3.000+ dispositivos en España e Italia via dos botnets coordinadas
Cybernews. (2025). “New Android banking trojan hijacks thousands of phones”. cybernews.com
- Análisis técnico de nuevos troyanos bancarios Android
Malwarebytes. (2025). “New Android malware lets criminals control your phone”. malwarebytes.com
- Técnicas de control remoto en malware Android 2025
INCIBE. (2026). “Balance ciberseguridad 2025: 122.223 incidentes (+26%)”. incibe.es
- 55.411 incidentes de malware en España en 2025
Código Penal Español: Arts. 197 (revelación secretos), 248 (estafa), 264 (daños informáticos), 264 ter (facilitacion herramientas)
Directiva PSD2 (UE) 2015/2366: Autenticación reforzada y responsabilidad entidades bancarias en operaciones no autorizadas
Última actualización: 12 Febrero 2026 Categoría: Malware (MAL-009) Nivel técnico: Intermedio-Avanzado Relevancia forense: MUY ALTA (principal vector distribución troyanos bancarios 2026)
¿Necesitas un peritaje forense?
Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.
Solicitar Consulta Gratuita
