[go: up one dir, main page]

0% encontró este documento útil (0 votos)
336 vistas60 páginas

Pentesting Android

Pentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting Android

Cargado por

wilvarel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
336 vistas60 páginas

Pentesting Android

Pentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting AndroidPentesting Android

Cargado por

wilvarel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 60

Pentesting Android

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

Introduccin a la seguridad
en terminales mviles

2. Reversing de aplicaciones mviles


3. Anlisis Forense en dispositivos mviles

Android
Qu es?

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.

Caractersticas de Android

Caractersticas principales:

Soporte a medios:

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

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

Distribucin de versiones

Sistema de ficheros en Android


YAFFS (Yet Another Flash File System)
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


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).

Particiones de 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)

Informacin importante en Android


Datos

Ubicacin

Calendario

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

Browser Data

/data/data/com.android.providers.browser/

Download History
Location Cache
Gmail

/data/data/com.android.providers.downloads/
/data/data/com.google.android.location/
/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/

Seguridad en Android
Nivel de kernel
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 aplicacin

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

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:
.java

.class
compilador
java

.dex
dx

Para el proceso de reversing


.java

.class
JD-Gui

.dex
dex2jar

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 O jetivo del A alista Fo e se es o testa a las p egu tas


Qu ha ocurrido? dnde? cundo? cmo? por qu?

Qu podemos analizar?
Partes

Tarjeta SIM

Memoria interna

Unidades Flash

Discos SD

Posibles pasos de un Anlisis Forense a un terminal mvil


1

Preservar las evidencias

Obtener informacin del dispositivo

Obtener datos de la tarjeta SD

Volcado de la memoria RAM

Adquirir imagen fsica de la memoria interna

Live Forensics

Adquirir informacin de la tarjeta SIM

Informe

Preservar las evidencias

Y redactar el fichero de cadena de custodia

Obtener informacin del dispositivo

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

Obtener datos de la tarjeta SD

SD, MicroSD, MiniSD, etc.

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.

Adquisicin de evidencias de una tarjeta SD


Procedimiento similar al realizado con un disco duro
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

Volcado de memoria RAM

LiME - Linux Memory Extractor (Android)

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/

Adquirir imagen fsica de la memoria interna

Clonacin Hardware vs clonacin Software

Clonacin Hardware
UFED (Universal Forensic Extraction Device)

$4000

Clonacin Software
Para realizar una clonacin va software en Android necesitaremos:
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

Instalacin de SDK (Software Development Kit)


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

Y si o tie e UB Depu ado a tivado y ue e os a tiva lo


pero tiene la pantalla protegida con clave?

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)

Puede que no seamos root


Qu ocurre si intentamos ejecutar un comando que requiere privilegios?

La importancia de ser Root

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

Demo
Rootear mvil Android 2.3.3

Adquisicin de imgenes (clonacin)


Formas de extraccin

A travs de DD

dd if=/dev/mtd/mtd1ro of=/sdcard/mtd1ro.dd bs=4096

Qu archivos podemos clonar?


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
inspeccionando /dev y /proc

de

los

dispositivos

Qu archivos podemos clonar?


Particiones:

Correspondencia de particiones y puntos de montaje:

Ejemplo de clonacin de particin boot (mtd2):

Adquisicin de imgenes con dd

Copiar DD de la memoria SD a un PC
Comando push

Analizando volcados con FTK Imager

Live Forensics

Es interesante realizar un Fo e se 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

Qu ficheros nos interesan?

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

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

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:

WhatsApp Forensic (wForensic)


Herramienta para anlisis forense de Whatsapp

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

Demo
Anlisis forense en Whatsapp

Oxigen Forensics Suite


Analiza todo el mvil

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


Hardware y software no estndar

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

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

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


Hardware y software no estndar

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

Adquirir informacin de la tarjeta SIM

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

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.

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

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 otra informacin


Usaremos MOBILedit!

Contactos

Listado de llamadas recibidas/enviadas

SMS enviados/recibidos

Analizando otra informacin


Usaremos MOBILedit!

Contactos

Listado de llamadas recibidas/enviadas

SMS enviados/recibidos

Informe

Ejemplo:

Un prrafo de presentacin.

Secciones:
Objeto de la Pericia
Elementos Ofrecidos
Operaciones Realizadas
Conclusiones.

Un prrafo de cierre, elevacin y recibo en devolucin.

Preguntas?

Gracias!
juan.antonio.calles.garcia@everis.com

jantonio.calles@flu-project.com
@jantonioCalles

También podría gustarte