60
Pentesting Android

Pentesting Android

Embed Size (px)

DESCRIPTION

Pentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting Android

Citation preview

  • Pentesting Android

  • Juan Antonio Calles Responsible del Centro Hacking de everis 50% de Flu Project Doctorando en Informtica Twitter: @jantonioCalles Blog: www.flu-project.com

    \> whoami

  • 2. Reversing de aplicaciones mviles

    3. Anlisis Forense en dispositivos mviles

    Introduccin a la seguridad

    en terminales mviles

  • Plataforma open source para dispositivos mviles

    Se basa en el kernel de Linux 2.6

    Es mantenida por la Open Handset Alliance (OHA), grupo de fabricantes de dispositivos mviles,

    desarrolladores de software, y desarrolladores de

    componentes.

    OHA cuenta, entre otros, con integrantes como Vodafone, Telefnica, T-Mobile o LG Uplus.

    Android

    Qu es?

  • Caractersticas principales:

    Framework de aplicaciones Mquina virtual Dalvik, optimizada para dispositivos mviles. Navegador integrado Webkit. SQLite como motor de base de datos.

    Soporte a medios:

    Soporte para audio/vdeo/imgenes Bluetooth, EDGE, 3G, y WiFi Cmaras, GPS, brjula y acelermetros Telefona GSM Pantalla tctil Market

    SDK (Software Development Kit)

    Permitir acceder por USB al terminal

    Caractersticas de Android

  • Distribucin de versiones

  • YAFFS1 (tamao mximo del sistema de ficheros: 1 GiB*) YAFFS2 (mejora de prestaciones, tamao mximo del FS: 8 GiB) En la versin 2.3 (Gingerbread) del Nexus S de Google ya se utiliza EXT4.

    *GiB=Gibibyte (230Bytes)

    Sistema de ficheros en Android

    YAFFS (Yet Another Flash File System)

  • Hay tres carpetas fundamentales del sistema de ficheros.

    /system/: Corresponde al sistema operativo android

    /mnt/sdcard/ /sdcard/: Se corresponde con la tarjeta SD en un dispositivo real. Contiene el almacenamiento

    de ficheros, msica, etc.

    /data/: Almacena los datos de usuario y aplicaciones: /data/app/: Almacena aplicaciones /data/data/: Almacena datos de las aplicaciones Incluye un subdirectorio por aplicacin, con los

    permisos de esa aplicacin (un usuario en Linux).

    Sistema de ficheros en Android

  • Particiones estndar de la memoria interna. /boot (Arranque del dispositivo) /system (Sistema Operativo) /recovery (Particin de recuperacin) /data (Datos de aplicaciones) /cache (Informacin de acceso frecuente) /misc (Informacin de configuracin)

    Particiones pertenecientes a la tarjeta SD: /sdcard (Configuraciones y datos de aplicaciones, imgenes, etc.) /sd-ext (Extensin de /data)

    Particiones de Android

  • Datos Ubicacin

    Calendario /data/data/com.android.providers.calendar/

    Browser Data /data/data/com.android.providers.browser/

    Download History /data/data/com.android.providers.downloads/

    Location Cache /data/data/com.google.android.location/

    Gmail /data/data/com.google.android.providers.gmail/

    SMS & MMS /data/data/com.android.providers.telephony/

    Contactos /data/data/com.android.providers.contacts/

    Whatsapp /data/data/com.whatsapp/databases

    Backup: /sdcard/WhatsApp/databases/

    Informacin importante en Android

  • Control de Acceso SEAndroid: mdulo para soportar polticas de seguridad para el control de acceso Sandboxing de aplicaciones: las app usan un usuario univoco distinto a root o system Antivirus, poltica de contraseas, MDM, etc. Cifrado del sistema de ficheros (desde versin 4)

    Seguridad en Android

    Nivel de kernel

  • Solicitud de permisos en el AndroidManifest.xml: Informacin personal (calendario, contactos, ) Informacin del dispositivo (Datos de red, SMS, ..) Sino aceptas los permisos no puedes instalar Firma de aplicaciones Requisito de Google Play Evitar la modificacin de la aplicacin

    Seguridad en Android

    Nivel de aplicacin

  • Reversing de aplicaciones

    mviles

    3. Anlisis Forense en dispositivos mviles

  • Fundamentos de aplicaciones Android

    Java + Android SDK Cada aplicacin se ejecuta en una instancia de la mquina virtual Dalvik

  • Ficheros .apk

    Empaqueta todo el contenido de las aplicaciones Android bajo un mismo fichero Es un archivo comprimido .zip

    Contiene: assets META-INF res resources.asrc AndroidManifest.xml classes.dex

  • Mquina Virtual Dalvik

    Interpreta archivos en el formato Dalvik Executable (*.dex) La conversin de .class a .dex se realiza con la herramienta dx.

    Cdigo fuente Compilador

    Java JAR

    Conversor DX

    Dalvik VM

  • Anlisis del AndroidManifiest.xml

    Si descomprimimos el fichero .apk y abrimos el fichero AndroidManifest.xml, no veremos nada

    porque est codificado.

    Pasos a seguir: 1. Descargar la herramienta apktool

    2. Copiar el archivo .apk en la carpeta raz

    3. Introducir el comando:

    apktool d NombreApp.apk ./RutaDeSalida Ej. apktool.bat d facebook.apk fb

  • Demo

    Anlisis del AndroidManifiest.xml

    1. Ejecutar: apktool d facebook.apk fb

  • Reversing de aplicaciones Android

    Extraer el cdigo fuente de la aplicacin a partir del fichero .apk En el proceso de empaquetado:

    Para el proceso de reversing

    .java .class .dex

    compilador java

    dx

    .dex .class .java

    dex2jar JD-Gui

  • Demo

    Reversing de aplicacin APK de Android

    1. Ejecutar: dex2jar.bat facebook.apk

    2. Ejecutar jd-gui.exe

    3. Abrir facebook_dex2jar.jar

  • Anlisis Forense en

    dispositivos mviles

  • El Ojetivo del Aalista Foese es otesta a las pegutas Qu ha ocurrido? dnde? cundo? cmo? por qu?

  • Tarjeta SIM

    Memoria interna

    Unidades Flash

    Discos SD

    Qu podemos analizar?

    Partes

  • 1 Preservar las evidencias 2 Obtener informacin del dispositivo 3 Obtener datos de la tarjeta SD 4 Volcado de la memoria RAM 5 Adquirir imagen fsica de la memoria interna 6 Live Forensics 7 Adquirir informacin de la tarjeta SIM 8 Informe

    Posibles pasos de un Anlisis Forense a un terminal mvil

  • 1 Preservar las evidencias

    Y redactar el fichero de cadena de custodia

  • Identificar el dispositivo Marca, modelo y proveedor de servicio http://www.phonescoop.com/phones/finder.php

    Otros datos interesantes Interfaz de dispositivo Etiquetas Series Hora del mvil Software de sincronizacin

    2 Obtener informacin del dispositivo

  • En las tarjetas SD no se almacena la informacin del sistema

    Se almacenan datos de usuario como archivos grandes, multimedia, fotos, vdeos, etc.

    El proceso de extraccin es bastante sencillo y se centra en el uso de ciertas herramientas.

    3 Obtener datos de la tarjeta SD

    SD, MicroSD, MiniSD, etc.

  • 1. Extraeremos la tarjeta SD/MicroSD/MiniSD del terminal

    2. La insertaremos en un lector de tarjetas, mapendola como solo lectura para no daar la evidencia

    3. La clonaremos con dd u otra herramienta y calcularemos el hash

    4. Analizaremos el clon de la tarjeta con herramientas como Autopsy o FTK Imager

    Adquisicin de evidencias de una tarjeta SD

    Procedimiento similar al realizado con un disco duro

  • Herramienta Open Source para anlisis forense de memoria RAM

    Permite volcar la memoria RAM directamente a la tarjeta SD a travs de ADB (lo veremos posteriormente)

    Descarga: http://code.google.com/p/lime-forensics/

    4 Volcado de memoria RAM

    LiME - Linux Memory Extractor (Android)

  • Clonacin Hardware vs clonacin Software

    5 Adquirir imagen fsica de la memoria interna

  • $4000

    Clonacin Hardware

    UFED (Universal Forensic Extraction Device)

  • Manualmente en Android (opcin barata):

    1. Instalar el SDK de Android en un PC

    2. Conectar el mvil al PC mediante ADB

    3. Rootear (al menos temporalmente) el mvil con Android

    4. Clonar mediante dd las particiones del mvil

    Automticamente (opcin cara):

    1. Adquirir un producto de anlisis forense automtico

    Clonacin Software

    Para realizar una clonacin va software en Android necesitaremos:

  • Instalacin de SDK (Software Development Kit)

    Una vez instalado el SDK, conectar mvil con modo depuracin USB activado

  • Smudge Attack

    Solicitar clave al dueo

    Ingeniera social

    Uso de herramientas como Screen lock bypass App, para atacar por fuerza bruta. Son bastante

    intrusivas en la RAM y pueden requerir el rooteo

    del mvil (que puede no estarlo)

    Y si o tiee UB Depuado ativado y ueeos ativalo pero tiene la pantalla protegida con clave?

  • $

    Puede que no seamos root

    Qu ocurre si intentamos ejecutar un comando que requiere privilegios?

  • No es posible lanzar muchos comandos de ADB sin ser root

    Se podr realizar un rooteo temporal o permanente:

    Temporal: Uso de software como SuperOneClick o ExynosAbuse (exploit)

    Permanente: Root a travs de recovery

    Una vez rooteado, podremos utilizar dd para realizar la clonacin bit a bit de las distintas particiones del terminal

    La importancia de ser Root

  • Demo

    Rootear mvil Android 2.3.3

  • A travs de DD dd if=/dev/mtd/mtd1ro of=/sdcard/mtd1ro.dd bs=4096

    Adquisicin de imgenes (clonacin)

    Formas de extraccin

  • Memory Technology Device (MTD): Subsistema Linux utilizado en medios flash como en mviles.

    IDE (/dev/hd* = hard drive) SCSI o SATA (/dev/sd*) MTD (/dev/mtd*)

    Podemos obtener ms informacin de los dispositivos inspeccionando /dev y /proc

    Qu archivos podemos clonar?

  • Particiones: Correspondencia de particiones y puntos de montaje:

    Ejemplo de clonacin de particin boot (mtd2):

    Qu archivos podemos clonar?

  • Adquisicin de imgenes con dd

  • Comando push

    Copiar DD de la memoria SD a un PC

  • Analizando volcados con FTK Imager

  • 6 Live Forensics

    Es interesante realizar un Foese en vivo para analizar el comportamiento del sistema arrancado.

    Realizar el anlisis, si es posible, sobre una copia de la evidencia para alterar lo menos posible las pruebas.

    Podemos utilizar el emulador de Android de PC virtual para el anlisis.

  • Forense en WhatsApp

  • wa.db, es el fichero donde se almacenan los contactos (para acceder a l necesitamos ser root)

    msgstore.db.crypt, el fichero donde se almacenan las conversaciones actuales cifradas. msgstore-AAAA-MM-DD.X.db.crypt, fichero con las conversaciones

    no recientes cifradas

    Qu ficheros nos interesan?

  • La base de datos est cifrada con el algoritmo AES.

    El fichero de backups de msgstore.db siempre se cifra con la misma clave: 346a23652a46392b4d73257c67317e352e3372482177652c

    Para poder descifrarla podemos utilizar OpenSSL:

    Cmo desciframos la base de datos mgstore.db.crypt?

  • Python (Django)

    Permite descifrar la bbdd de Whatsapp.

    Lanza servidor web para poder ver el contenido de la base de datos de los mensajes y los contactos.

    Se puede descargar desde aqu: https://github.com/sch3m4/forensic

    Herramienta para anlisis forense de Whatsapp

    WhatsApp Forensic (wForensic)

  • Demo

    Anlisis forense en Whatsapp

  • Analiza todo el mvil

    Oxigen Forensics Suite

  • http://www.edecdigitalforensics.com/tarantula-chinese-cell-phone-analysis-kit

    Extrae registros de llamadas, SMS, agenda, contraseas, IMEI, etc.

    Hardware y software no estndar

    El problema de los mviles chinos (30% de mviles del mundo)

  • http://www.cellebrite.com/es/mobile-forensic-products/ufed-chinex.html

    Extrae lgica y fsicamente datos probatorios y contraseas de telfonos con chips chinos: MTK y Spreadtrum

    Hardware y software no estndar

    El problema de los mviles chinos (30% de mviles del mundo)

  • En este punto ya podremos apagar el mvil y recuperar la SIM para analizarla

    7 Adquirir informacin de la tarjeta SIM

    SMART Card: contiene 16-64 Kb de memoria, un procesador y un sistema operativo.

    Identifica al subscritor, el nmero de telfono y contiene el algoritmo para autenticar al subscriptor en la red.

  • ICCID (Integrated Circuit Card ID): Nmero de serie que el fabricante da al chip

    IMSI (International Mobile Subscriber Identity)

    Location Area Identify (LAI) Las redes de operadores se dividen en reas locales, cada una tiene un LAI nico. Si el mvil cambia de rea, registra el LAI en la SIM y la enva al operador. Cuando se apaga y se enciende, lo recupera de la SIM y busca el LAI donde estaba

    Analizando identificadores de la SIM

  • ICCID (Integrated Circuit Card ID): Nmero de serie que el fabricante da al chip

    IMSI (International Mobile Subscriber Identity)

    Location Area Identify (LAI) Las redes de operadores se dividen en reas locales, cada una tiene un LAI nico. Si el mvil cambia de rea, registra el LAI en la SIM y la enva al operador. Cuando se apaga y se enciende, lo recupera de la SIM y busca el LAI donde estaba

    Analizando identificadores de la SIM

  • Contactos

    Listado de llamadas recibidas/enviadas

    SMS enviados/recibidos

    Usaremos MOBILedit!

    Analizando otra informacin

  • Contactos

    Listado de llamadas recibidas/enviadas

    SMS enviados/recibidos

    Usaremos MOBILedit!

    Analizando otra informacin

  • Ejemplo:

    Un prrafo de presentacin.

    Secciones:

    Objeto de la Pericia Elementos Ofrecidos Operaciones Realizadas Conclusiones. Un prrafo de cierre, elevacin y recibo en devolucin.

    8 Informe

  • Preguntas?

  • Gracias! [email protected]

    [email protected]

    @jantonioCalles