Post on 11-Nov-2015
description
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! juan.antonio.calles.garcia@everis.com
jantonio.calles@flu-project.com
@jantonioCalles