Qu esconde tu telfono? Adquisicin forense de dispositivos Android

  • Published on
    20-Jul-2015

  • View
    1.132

  • Download
    75

Transcript

  • Qu esconde tu telfono? Adquisicin forense de dispositivos Android

    Vte. Javier Garca Mayn (@neosysforensics)

  • Agenda

    Introduccin y objetivos

    Conexin del dispositivo

    Proceso de adquisicin

  • Agenda

    Introduccin y objetivos

    Conexin del dispositivo

    Proceso de adquisicin

  • Evaluar y valorar la incidencia

    Adquisicin de evidencias

    Anlisis de las evidencias

    Informe con las conclusiones

    Procedimiento de investigacin forense

    Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials

  • Procedimiento de investigacin forense

    Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials

  • Tipos de adquisicin forense de datos: Adquisicin fsica

    Obtencin y copiado de los datos bit a bit accediendo para ello directamente al medio fsico.

    Adquisicin lgica

    Obtencin y copiado de los datos desde la capa de abstraccin proporcionada por el sistema de ficheros.

  • Factores que determinan el tipo de adquisicin en dispositivos Android

    1. Finalidad de la investigacin

    2. Caractersticas del terminal

    3. Est habilitada la depuracin USB?

    4. Somos o no somos root?

    5. Versin de Android

  • Factores que determinan el tipo de adquisicin en dispositivos Android

    1. Finalidad de la investigacin

    2. Caractersticas del terminal

    3. Est habilitada la depuracin USB?

    4. Somos o no somos root?

    5. Versin de Android

  • Factores que determinan el tipo de adquisicin en dispositivos Android

    1. Finalidad de la investigacin

    2. Caractersticas del terminal

    3. Est habilitada la depuracin USB?

    4. Somos o no somos root?

    5. Versin de Android

  • Factores que determinan el tipo de adquisicin en dispositivos Android

    1. Finalidad de la investigacin

    2. Caractersticas del terminal

    3. Est habilitada la depuracin USB?

    4. Somos o no somos root?

    5. Versin de Android

  • Factores que determinan el tipo de adquisicin en dispositivos Android

    1. Finalidad de la investigacin

    2. Caractersticas del terminal

    3. Est habilitada la depuracin USB?

    4. Somos o no somos root?

    5. Versin de Android

  • Imagen propiedad de Google Inc. http://www.android.com/history/

    Android Donut Released at september 2009

    Version: 1.6

  • Android Eclair Released at november 2009

    Versions: 2.0, 2.01, 2.1

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Froyo Released at june 2010

    Versions: 2.2, 2.2.1 - 2.2.3

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Gingerbread Released at november 2010

    Versions: 2.3.1 - 2.3.7

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Honeycomb Released at february 2011

    Versions: 3.0, 3.1, 3.2, 3.2.1 - 3.2.6

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Ice Cream Sandwich Released at october 2011

    Versions: 4.0, 4.0.1 - 4.0.4

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Jelly Bean Released at june 2012

    Versions: 4.2, 4.2.1, 4.2.2, 4.3, 4.3.1

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android KitKat Released at october 2013

    Versions: 4.4, 4.4.1 - 4.4.4

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Android Lollipop Released at november 2014

    Version: 5.0

    Imagen propiedad de Google Inc. http://www.android.com/history/

  • Fuente: https://developer.android.com/about/dashboards/index.html

  • Agenda

    Introduccin y objetivos

    Conexin del dispositivo

    Proceso de adquisicin

  • Conexin del dispositivo

  • Autorizar la conexin USB desde el PC

    Restriccin

    Capa de seguridad para adb desde Android 4.2.2

    Es necesario Aceptar para permitir la conexin

    Impide conectar un terminal bloqueado a un pc

    Vulnerabilidad

    Android 4.4.2 Secure USB Debugging Bypass

    Reportada por MWRLabs http://tinyurl.com/ktnqf6r

    Afecta a sistemas Android 4.2.2 a 4.4.2

    Solucionada en Android 4.4.3 y posteriores

    Desde la llamada de emergencia o la cmara veremos el mensaje y podremos autorizar la conexin!

  • Instalar apk para desbloquear terminal

    adb install unlockandroid.apk

    adb shell "am start -n com.rohit.unlock/.MainActivity"

    Desarrollada por Rohit (@rorot333), http://tinyurl.com/q7sell5

    Solicita el permiso de sistema android.permission.DISABLE_KEYGUARD

    Si se termina el proceso vuelve a activarse el bloqueo del terminal

  • CVE-2013-6237: Remove device locks

    adb shell am start -n

    com.android.settings/com.android.settings.ChooseLockGeneric

    --ez confirm_credentials false

    --ei lockscreen.password_type 0

    --activity-clear-task

    Reportada por curesec, http://blog.curesec.com/article/blog/26.html

    Afecta a todas las versiones de Android desde la 4.0 a la 4.3

    Puede lanzarse desde un apk o directamente desde adb

    Error en el cdigo de la clase com.android.settings.ChooseLockGeneric.class

  • Evasin o cracking del bloqueo (requiere root)

    Evasin o cracking del mtodo de bloqueo por patrn

    Eliminamos el fichero con el patrn lanzando una shell de root con adb:

    adb shell rm /data/system/gesture.key

    Descargamos el fichero con el patrn y lo crackeamos con Android Pattern Lock Cracker, https://github.com/sch3m4/androidpatternlock:

    adb pull /data/system/gesture.key gesture.key

    python crack.pattern.py gesture.key

    ...

    [+] Gesture:

    ----- ----- -----

    | 1 | | 2 | | |

    ----- ----- -----

    ----- ----- -----

    | 4 | | 3 | | |

    ----- ----- -----

    ----- ----- -----

    | 5 | | 6 | | 7 |

    ----- ----- -----

  • Evasin o cracking del mtodo de bloqueo por PIN

    Eliminamos el fichero con el PIN lanzando una shell de root con adb:

    adb shell rm /data/system/password.key

    Cracking an android device's PIN lock password like a BOSS: http://khorchanov.blogspot.com.es/2013/07/cracking-android-devices-pin-lock.html

    Script para el crack del PIN en terminales Samsung desarrollado por @JoseSelvi: http://tools.pentester.es/androidpincrack

    Evasin o cracking del bloqueo (requiere root)

  • Smudge attack

    Smudge Attacks on Smartphone Touch Screens http://tinyurl.com/oeorhqm

    Publicado por un grupo de investigadores de la Universidad de Pensilvania

    Permite evadir el mtodo de bloqueo de

    pantalla mediante patrn Se toman fotografas desde distintos ngulos

    modificando las propiedades de luz y color

    Foto obtenida de Gizmodo http://tinyurl.com/259whg9

  • Instalar apk desde el Play Store

    Screen Lock Bypass Pro http://tinyurl.com/7hj7gnp

    Desarrollada por Thomas Cannon

    Tiene un coste de 3,20

    Necesario conocer user y pass de Gmail

    Para activarla hay que conectar el cargador

  • Multiplexed Wired Attack

    http://greatscottgadgets.com/infiltrate2013/

    Presentado en Infiltrate 2013 por Michael Ossmann y Kyle Osborn

    Ataque basado en el desarrollo de un conector MicroUSB 2.0 especial

    Resultados variables en funcin del terminal y de la versin de software

    Galaxy Nexus con Cyanogenmod: acceso a interfaz de debug desde la que es posible lanzar una consola y habilitar adb

    Samsung Galaxy SIII con Cyanogenmod: acceso a interfaz de debug desde la que es posible lanzar una consola de root

  • Agenda

    Introduccin y objetivos

    Conexin del dispositivo

    Proceso de adquisicin

  • Adquisicin lgica: AFLogical OSE

    Caractersticas

    Herramienta desarrollada por viaForensics Obtencin de datos va Content Providers Los datos se vuelcan en ficheros de tipo csv

    Restricciones

    Requiere activar la depuracin USB Datos obtenidos muy limitados Genera el volcado en la sdcard

    Ventajas

    No requiere ningn tipo de privilegio especial Puede instalarse y ejecutarse mediante adb

    (com.viaforensic.android.ExtractAllData)

    AFLogical, http://tinyurl.com/q8o9lfj Howto (Santoku), http://tinyurl.com/of27flo

  • Adquisicin lgica: AFLogical OSE

    adb devices

    adb install AFLogical-OSE_1.5.2.apk

    adb shell "am start com.viaforensics.android.aflogical_ose/com.viaforensics.

    android.ExtractAllData"

    adb pull /sdcard/forensics aflogicalose

  • Adquisicin lgica: adb backup

    adb backup -apk -shared -all -system -f file.bak

    Ventajas

    No requiere privilegios de root

    Formato de fichero resultante conocido

    Acceso a directorios internos y seguros:

    /system/app/*.apk /data/app/*.apk

    /data/data/*

    Restricciones

    Requiere activar la depuracin USB

    Android 4.0 (Ice Cream Sandwich)

    El terminal tiene que estar desbloqueado*

    Unpacking Android backups, http://tinyurl.com/ltcz7le Intecure Internal Storage in Android, http://tinyurl.com/kogot63

  • Adquisicin lgica: adb backup

    Problema

    Si el terminal est bloqueado no podremos iniciar el proceso

    Solucin

    Simular la pulsacin de la tecla capturando antes los eventos correspondientes:

    adb shell sendevent /dev/input/event1 3 57 598

    adb shell sendevent /dev/input/event1 3 48 14

    adb shell sendevent /dev/input/event1 3 58 86

    adb shell sendevent /dev/input/event1 3 53 537

    adb shell sendevent /dev/input/event1 3 54 1127

    adb shell sendevent /dev/input/event1 0 0 0

    adb shell sendevent /dev/input/event1 3 58 72

    adb shell sendevent /dev/input/event1 3 54 1130

    adb shell sendevent /dev/input/event1 0 0 0

    adb shell sendevent /dev/input/event1 3 57 4294967295

    adb shell sendevent /dev/input/event1 0 0 0

    Documentation for adb shell getevent/sendevent, http://tinyurl.com/p42cy2c

  • Adquisicin lgica: adb pull

    adb pull /device_directory /workstation_directory

    Ventajas:

    Tcnica muy simple que obtendr el contenido de forma recursiva

    Directorio local conserva la estructura del directorio adquirido

    Restricciones:

    Los datos obtenidos dependen de los privilegios de adb (shell user por defecto)

    El comando puede fallar en mitad del proceso, por lo que es mejor dividirlo en varios

  • Demo 1

    Adquisicin lgica

  • Mtodos hardware de adquisicin fsica

    Extraccin de la NAND (chip-off)

    Tcnica destructiva, el mvil queda inservible

    Se retira el chip de la PCB aplicando calor a las soldaduras

    El chip puede daarse durante el proceso

    Una vez retirado se extrae su contenido

    Conexin mediante la interfaz JTAG

    Interfaz para testear la PCB

    Variaciones entre los distintos fabricantes

    No todos los fabricantes publican sus especificaciones

  • Mtodo software de adquisicin fsica

    Es imprescindible contar con acceso adb al terminal

    Pasos genricos para el proceso de adquisicin:

    1. Obtener privilegios de root

    2. Identificar las particiones a clonar

    3. Copiar las herramientas en el terminal

    4. Lanzar el proceso de clonado

    5. Eliminar los restos del proceso

  • Adquisicin fsica: obtener privilegios de root

    Si el dispositivo no est rooteado utilizaremos un exploit para rootearlo de forma temporal

    El exploit depender del terminal (marca y modelo), versin de Android, versin del kernel, etc

    Algunas herramientas/exploits para obtener root temporal:

    SuperOneClick: incluye zergrush y psneuter

    CVE-2012-0056: mempodroid.c

    CVE-2012-6422: exynox-abuse.c

    CVE-2013-4254: arm_perf_exploit.c

    CVE-2013-6282: ptrace_test.c, 31574.c (exploit-db)

    CVE-2014-3153: cube-towel.c, getroot.c, newroot.c

  • $ adb shell "ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name"

    ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name

    lrwxrwxrwx root root 2014-11-14 13:37 boot -> /dev/block/mmcblk0p7

    lrwxrwxrwx root root 2014-11-14 13:37 cache -> /dev/block/mmcblk0p11

    lrwxrwxrwx root root 2014-11-14 13:37 dgs -> /dev/block/mmcblk0p6

    lrwxrwxrwx root root 2014-11-14 13:37 efs -> /dev/block/mmcblk0p3

    lrwxrwxrwx root root 2014-11-14 13:37 metadata -> /dev/block/mmcblk0p13

    lrwxrwxrwx root root 2014-11-14 13:37 misc -> /dev/block/mmcblk0p5

    lrwxrwxrwx root root 2014-11-14 13:37 param -> /dev/block/mmcblk0p4

    lrwxrwxrwx root root 2014-11-14 13:37 radio -> /dev/block/mmcblk0p9

    lrwxrwxrwx root root 2014-11-14 13:37 recovery -> /dev/block/mmcblk0p8

    lrwxrwxrwx root root 2014-11-14 13:37 sbl -> /dev/block/mmcblk0p2

    lrwxrwxrwx root root 2014-11-14 13:37 system -> /dev/block/mmcblk0p10

    lrwxrwxrwx root root 2014-11-14 13:37 userdata -> /dev/block/mmcblk0p12

    lrwxrwxrwx root root 2014-11-14 13:37 xloader -> /dev/block/mmcblk0p1

    Adquisicin fsica: identificar las particiones

    Galaxy Nexus con sistema de ficheros EXT4 e interfaz eMMC*:

    Particiones ms relevantes: cache, system y userdata

    *Managing flash storage with Linux, http://free-electrons.com/blog/managing-flash-storage-with-linux/

  • Adquisicin fsica: copia de herramientas

    Utilizaremos BusyBox, un ejecutable que integra muchas utilidades de UNIX (ls, df, dd, nc, etc):

    NOTA: si el sistema de ficheros es YAFFS2 subiremos nanddump, en las mtd-utils, para el proceso de clonado

    $ adb shell "mkdir /dev/tools"

    $ adb push busybox-armv4l /dev/tools

    $ adb shell "ls -l /dev/tools"

    -rw-rw-rw- root root 1072032 2013-07-09 04:02 busybox-armv4l

    $ adb shell "chmod 755 /dev/tools/busybox-armv4l

    $ adb shell "ls -l /dev/tools"

    -rwxr-xr-x root root 1072032 2013-07-09 04:02 busybox-armv4l

  • NOTA: si utilizamos la sdcard como destino el clonado es ms rpido

    Adquisicin fsica: proceso de clonado

    Creamos un puerto tcp a la escucha para conectar con el terminal:

    Ejecutaremos el clonado bit a bit mediante dd redirigiendo la salida al puerto tcp utilizando nc:

    $ adb forward tcp:5555 tcp:5555

    $ adb shell "/dev/tools/busybox-armv4l dd if=/dev/block/mmcblk0p12 |

    /dev/tools/busybox-armv4l nc -l -p 5555"

    En otra consola nos conectamos al puerto tcp y redirigimos los datos a un fichero; mediante pv mostramos el progreso:

    $ nc 127.0.0.1 5555 | pv -i 0.5 > userdata.img

  • NOTA: si hemos utilizado la sdcard del terminal eliminamos la imagen o imgenes; si hemos insertado una sdcard para el volcado apagamos el terminal y la retiramos

    Adquisicin fsica: limpiar los restos

    Una vez terminado el proceso eliminamos el binario de busybox:

    Por ltimo, si hemos obtenido root temporal eliminamos el fichero del exploit y dems restos asociados y reiniciamos el terminal

    $ adb shell "rm -Rf /dev/tools"

  • Mtodo software de adquisicin fsica: recovery

    Proceso ejecutado mediante un recovery personalizado para el terminal

    Secuencia simplificada de pasos a seguir para completar el proceso:

    1. Flashear bootloader con recovery personalizado

    2. Reiniciar el terminal provocando el arranque del recovery

    3. Lanzar el proceso de clonado

    4. Restaurar el bootloader original

    Referencias:

    Towards a general collection methodology for Android devices http://dfrws.org/2011/proceedings/07-339.pdf

    A study of user data integrity during acquisition of Android devices http://dfrws.org/2013/proceedings/DFRWS2013-3.pdf

  • Demo 2: Adquisicin fsica

    Demo

  • Conclusin

    El mtodo de adquisicin depende de:

    1. El tipo de investigacin

    2. Las limitaciones tcnicas

  • Preguntas?

    Photo credit: WingedWolf (creative commons)

    https://www.flickr.com/photos/wingedwolf/

  • Bibliografa