Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]
Upcoming SlideShare
Loading in...5
×
 

Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013]

on

  • 2,321 views

http://www.guadalajaracon.org/talleres/busqueda-de-vulnerabilidades-en-aplicaciones-moviles-android/ ...

http://www.guadalajaracon.org/talleres/busqueda-de-vulnerabilidades-en-aplicaciones-moviles-android/
Con el incremento desmesurado de dispositivos móviles también crece nuestra preocupación por la seguridad de los usuarios que confiadamente usan aplicaciones de terceros sin ninguna precaución.

En este taller los asistentes aprenderán a usar las herramientas necesarias para identificar las vulnerabilidades más comunes en aplicaciones Android.

El taller abarcará desde la ingeniería inversa de las aplicaciones hasta el análisis de tráfico para la evaluación de servicios web involucrados.

Statistics

Views

Total Views
2,321
Views on SlideShare
853
Embed Views
1,468

Actions

Likes
0
Downloads
61
Comments
0

5 Embeds 1,468

http://www.guadalajaracon.org 1199
http://www.websec.mx 196
http://calderonpale.com 57
http://www.ipv6.websec.mx 15
https://www.google.com.mx 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013] Búsqueda de vulnerabilidades en aplicaciones de Android [GuadalajaraCON 2013] Presentation Transcript

  • Pwneando aplicacionesAndroid("Búsqueda de vulnerabilidades en aplicaciones Android")Paulino Calderón Pale (@calderpwn)calderon@websec.mxhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • ● Websec Méxicohttp://www.websec.mx● Me gusta codear, pwnear y contribuir alsoftware libre.● Mi página personal eshttp://calderonpale.comAcerca de míhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • ● BCBUS● Mac2wepkey HHG5XX● IP2Hosts● LectorBunsenMis aplicaciones Androidhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Contenido del taller1. Introducción a la arquitectura Android2. Formato APK3. Vulnerabilidades en aplicaciones Android4. Análisis de aplicacionesa. Análisis estáticob. Análisis dinámicohttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Prácticas del taller● Extraer información importante de apks● Decompilar una aplicación● Análisis de código fuente● Detectar vulnerabilidades en almacenamiento inseguro● Hijacking de intents● Encontrar proveedores de contenido sin permisos delectura o escritura● Interceptar el tráfico de la aplicación● Interceptar tráfico SSL● Detectar vulnerabilidades en un proveedor de contenido● Explotar vulnerabilidades de inyección SQLhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Requisitos● Cable de datos● Conexión a internet● VirtualBoxDe preferencia tener rooteado el dispositivopara poder usar apps como apkextractor ydroidproxy.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Herramientas● adb:http://developer.android.com/sdk/index.html● apktool:http://code.google.com/p/android-apktool/● agnitio:http://sourceforge.net/projects/agnitiotool/● mercury:https://github.com/mwrlabs/mercuryhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Herramientas● jad:http://www.varaneckas.com/jad/● dex2jar:https://code.google.com/p/dex2jar/● burp suite:http://portswigger.net/burp/download.html● apkextractor:https://play.google.com/store/apps/details?id=net.sylark.apkextractorhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Introducción a laarquitectura Androidhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Un vistazo al mercado AndroidSistema operativo distribuido en dispositivos:● Samsung● Huawei● Sony, HTC, LG, Lenovo, etc...72.4% del mercado mundial en el tercer cuatrimestre del 2012según Gartner.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Situación actual e impacto● Usuarios confían plenamente en laseguridad de las aplicaciones móviles parallevar a cabo operaciones bancarias oconectarse a cuentas que contieneninformación personal.● Desarrolladores todavía siguen haciendoaplicaciones con muy mala seguridad.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Muchas compañías mexicanas conaplicaciones Android● Telcel● Bancomer● Banco Azteca● Soriana● Aeromexico● ¿Cuales conocen ustedes?http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Arquitectura Android● Kernel Linux● Librería nativas● Dalvik● SDK● Aplicacioneshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Arquitectura Androidhttp://developer.android.com/guide/basics/what-is-android.htmlhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Modelo de seguridad● UIDs y GIDs únicos para cada aplicacióninstalada en el sistema. Paraintercomunicación se usan componentes.● Permisos determinan las capacidades deintercomunicación de los componentes● Aplicaciones son "self-signed".http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Modelo de seguridad● Cada aplicación lista los permisos querequiere antes de ser instalada.● Aplicaciones deben establecer que permisosvan a necesitar.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • DALVIK● Escrito especificamente para Android.● Optimizado para dispositivos con limitantes deespacio y CPU.● Bytecode .dex ( Dalvik Executable ).● Un .class comprimido es normalmente másgrande que bytecode .dex DEScomprimido.Más información sobre hacer ingeniería inversa adalvik bytecode: http://www.slideshare.net/jserv/practice-of-android-reverse-engineeringhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Modelo de aplicaciones AndroidFormato de un contenedor APK● Variante del formato JARDentro del archivo APK encontramos:● META-INF● res● AndroidManifest.xml (Encodeado)● classes.dex● resources.arschttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Aplicaciones Androidhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • AndroidManifest.xml● Nombre del paquete Java● Versión del APK● Permisos y reglas de acceso● Actividades, servicios, proveedores decontenido y receptores de anuncios● Listado de libreríashttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • AndroidManifest.xmlCosas que debemos analizar en el archivoAndroidManifest.xml:1. Declaraciones de intenciones (Intents),servicios, actividades y proveedores decontenido2. Permisos de componentes3. Flag de depuración4. Versión SDKhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • AndroidManifest.xmlhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Trojan/Android.SMSZombie.*http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Trojan/Android.SMSZombie.*http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • classes.dexCódigo dalvik de la aplicación:● Se puede decompilar y parcharPara obtener este archivo simplementenecesitamos extraerlo del apk.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Componentes1. Actividades ( "Activity" )Pantallas de la aplicación con interfaz gráfica.2. Servicios ( "Services" )Corre en el fondo para operaciones largas o que no deben obstruir.3. Receptor de mensajes ( "Broadcast receivers" )Responden a alertas o mensajes del sistema.4. Proveedor de contenido ( "Content providers" )Maneja y comparte datos de una aplicación con otros componenteshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Intents● Mensajero que llama a un componente comouna actividad, servicio o receptor de mensajes yopcionalmente entrega información.● Conectan a diferentes componentes cuandouna aplicación es ejecutada.● Son explícitos cuando especifican que actividaddebe responder.● Son implícitos cuando simplemente sondeclarados y el sistema decide que actividadusar.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Componentes¿Por qué nos importan?Vectores de ataques a aplicaciones Android:○ Intent hijacking○ Intent spoofing○ Sticky Broadcast tampering○ Broadcast hijackinghttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Comunicación entre componentesLos componentes dependen de la complejidadde la aplicación.Algunos eventos interesantes:● android.provider.Telephony.SMS_RECEIVED● android.intent.action._BOOT_COMPLETED● android.provider.Telephony.SMS_RECEIVEDhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Más Intentsandroid.intent.action.ACTION_POWER_CONNECTEDandroid.intent.action.ACTION_POWER_DISCONNECTEDandroid.intent.action.ACTION_SHUTDOWNandroid.intent.action.BATTERY_CHANGEDandroid.intent.action.BATTERY_LOWandroid.intent.action.BATTERY_OKAYandroid.intent.action.BOOT_COMPLETEDandroid.intent.action.CONFIGURATION_CHANGEDandroid.intent.action.DEVICE_STORAGE_LOWandroid.intent.action.DEVICE_STORAGE_OKhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Vulnerabilidades en aplicacionesAndroidhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • OWASP Mobile Top 10 riskshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • 2. Vulnerabilidades en aplicacionesAndroid● Hijacking y Spoofind de Intents● Sticky Broadcast tampering● Almacenamiento inseguro● Tráfico inseguro● SQL Injection● Privilegios excesivoshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Evaluación de vulnerabilidades● Recolección de información:Definimos alcance y secciones a evaluar.● Análisis estático:Analizamos el código fuente/decompilado/ desensamblado.● Análisis dinámico:Ejecutamos la aplicación y observamos.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis estáticoPodemos hacer análisis estático a partir de:● Código fuente● Archivo APKAlgunas aplicaciones usan ProGuard:https://developer.android.com/tools/help/proguard.htmlhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis de código fuente● Siempre es buen punto de inicio listar todas lasllamadas a funciones que podrían ser usadasinseguramente como:○ putString○ setJavaScriptEnabled(true)○ getExternalStorageDirectory()○ getBundleExtra()Afortunadamente podemos ayudarnos deherramientas ( grep FTW ).http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • ScriptDroidScript muy sencillo para detectar funcionespeligrosas relacionadas con:● sharedPreferences● TapJacking● Almacenamiento● Inyecciones● Algoritmos débiles● Tráfico inseguro● Flag de depuración● Y más...DESCARGA: http://t.co/d3uA1jd7http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • ScriptDroidhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Agnitiohttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • AgnitioHerramienta de análisis de código fuente quepuede decompilar APKs y buscar llamadas afunciones peligrosas.Descarga: http://sourceforge.net/projects/agnitiotool/http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • PrácticasEjecuten la máquina virtual Windows y realizalas siguientes acciones:● Ejecuta ScriptDroid● Analiza una aplicación dentro de agnitio● Encuentra una vulnerabilidad dealmacenamiento inseguro en la aplicaciónInsecureBanking.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • PrácticasEn el escritorio de la máquina virtual esta:● Zipfile con ScriptDroidScriptDroid.zip● Instalador de Agnitio (x86)/Agnitio x86/Install.exe● Muestra de output de ScriptDroid ejecutado contra InsecureBanking/OUTPUT/● Código fuente de la app InsecureBankingInsecureBank.zip● APKs para que jueguen:/apks/http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Analizando APKs$unzip app.apkhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Analizando APKsNecesitamos decompilar la aplicación en casode no tener el código fuente con:● apktool● dex2jar● jd-guihttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Extrayendo APKs de dispositivosVarias formas de extraer el contenedor APK:● Usando apps como como apkextractor(https://play.google.com/store/apps/details?id=net.sylark.apkextractor)● Adb:$ adb pull data/app/mx.websec.mac2wepkey.hhg5xx-2.apkhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Decompilando APKsPrácticas:● Extraer recursos y AndroidManifest conapktool.● Convierte bytecode dalvik a .class con d2j-dex2jar.sh● Analiza bytecode de Java con jd-guihttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Decompilando APKsPrácticas:● Extraer recursos y AndroidManifest conapktool.apktool d app.apk● Convierte bytecode dalvik a .class con d2j-dex2jar.shd2j-dex2jar.sh classes.dex● Analiza bytecode de Java con jd-guijd-gui dex2jar.classhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Inter-comunicación seguraLa seguridad de la intercomunicación entrecomponentes puede verse afectada debido a lafalta de permisos y declaraciones públicas delos componentes.Noten el valor "exported", si el valor esverdadero esto permite a cualquiercomponente comunicarse.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Componentes seguros<activity android:name=".TestActivity"android:exported="false"></activity><activity android:name=".TestActivity2"android:exported="true">android:permission="my.permission"><intent-filter><action android:name="my.action.TEST"/></intent-filter></activity>http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Intents explícitosEspecifícan que paquete se encargará de ellos:Intent i = new Intent();i.setClassName("some.package.name","some.package.name.TestActivity");http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Hijacking ActivitiesSe pueden hijackear actividades que tenganpermisos públicos:Intent read1=new Intent();read1.setAction(android.content.Intent.ACTION_VIEW);read1.setData(ContactsContract.Contacts.CONTENT_URI);startActivity(read1);http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Inter-comunicación seguraPráctica: Listar broadcast en el sistemahttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Identificando vulnerabilidadesestáticamenteComDroid ( http://comdroid.org ):Herramienta online para el análisis estático deinter comunicaciones.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis dinámicoNavegar la aplicación manualmente paragenerar logs y tráfico.Logcat da muchísima información:$adb logcato$adb logcat -s "tag"http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis de tráficoAplicaciones complejas normalmenteinteractúan con servicios web remotos.Aplicaciones como:Taxi seguro: Yaxi, ClicabTelefonia: Mi TelcelBanco: Bancomerhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis de tráficoPodemos analizar el tráfico de red:● Desde un proxy● Desde el Android ( tcpdump )Filtros útiles de wireshark:● http or dns● http.requesthttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Práctica: Identificandocomunicaciones insegurashttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Análisis de tráfico SSLPráctica: Interceptar comunicación cifrada SSLde la aplicación instagram.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Certificate Pinning● Programadores hardcodean el certificado● Ya no se necesita un CA● Muy pocas apps implementan esto.Sin embargo... existe research donde sedemuestra que también puede serbypasseado:https://github.com/iSECPartners/android-ssl-bypasshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Almacenamiento inseguroProblemas:1. Todos los archivos del SD card pueden serleídos por cualquier aplicación.2. Programadores erróneamente guardaninformación sensible.3. sharedPrefs es un simple archivo XML quepuede ser extraídohttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Almacenamiento inseguro/data/data/nombre.de.paquete/:● cache● databases● lib● shared_prefsPráctica: Descargar una base de datos desharedPrefshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Proveedores de contenidoInterfaces que manejan el acceso a ciertainformación que programadores deseancompartir entre diferentes componentes.Formato:content://<paquete>.<accion>http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Proveedores de contenidoCONTENT PROVIDERSQLITEFILES INTERNEThttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Proveedores de contenido<provider android:name="com.websec.providers.Pwnage" android:authorities="com.websec.providers.Pwnage" />Práctica: Lista todos los content providers deuna aplicación.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Proveedores de contenido:Problemas● Permisos incorrectos● Vulnerables a SQL injection● A veces erróneamente revelan informaciónsensible.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Proveedores de contenidoPráctica: Leer un content provider coninformación sensible.Práctica #2: Listar los content providers delsistema.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Content providers: SQL InjectionmCursor = getContentResolver().query(URI, // The content URI of the words tablemProjection, // The columns to returnfor each rowmSelectionClause // Selection criteriamSelectionArgs, // Selection criteriamSortOrder); // The sort order for thereturned rowshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Content providersPráctica: Explotando vulnerabilidades de tipoSQLi con Mercuryhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Aplicaciones depurablesDesarrolladores olvidan desactivar el flag"debuggable" en sus aplicaciones.Aplicaciones con el mínimo de permisospueden ejecutar código usando el socket@jwpdhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Aplicaciones depurablesPráctica: Detectar aplicaciones que seandepurables en sus dispositivos.Solucion 1:$aapt d xmltree app.apk AndroidManifest.xml |grep debuggableOtras soluciones:Mercury, apktool, manual, etchttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • La práctica hace al maestro...● Revisa tus dispositivos.● Explota vulnerabilidades conocidas. Existenlibrerías de versiones de las aplicacionesmás populares.● Apps mexicanas: Telcel, Bancomer, BancoAzteca, Soriana, Aeromexico.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Apps de prácticaInsecureBank: http://www.paladion.net/downloadapp.htmlGoatDROID:https://github.com/jackMannino/OWASP-GoatDroid-ProjectExploitME:http://securitycompass.github.com/AndroidLabs/Hacme Bank:http://www.mcafee.com/us/downloads/free-tools/hacme-bank-android.aspxhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • RecursosF-droid: http://f-droid.org/repository/browse/Comdroid : http://www.comdroid.org/Agnitio: http://sourceforge.net/projects/agnitiotoolhttp://developer.android.com/training/articles/security-tips.htmlDex2jar, Jd-gui, apktool, androguard, or IDA.https://github.com/iSECPartners/android-ssl-bypasshttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • Referencias● http://www.cs.berkeley.edu/~afelt/intentsecurity-mobisys.pdf● http://www.paladion.net/downloadapp.html● SANS Institute: Malicious AndroidApplications: Risks and Exploitation● Seven ways to hang yourself with Android Y.ONeil and E. Chin.http://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx
  • #haltPaulino Calderón PaleWWW: http://calderonpale.comEmail: calderon@websec.mxTwitter: @calderpwnhttp://guadalajaracon.orgGuadalajaraCONBúsqueda de vulnerabilidades en aplicaciones AndroidPaulino Calderoncalderon@websec.mx