Este documento presenta los diferentes métodos para la adquisición forense de datos en dispositivos Android. Explica los factores que determinan el tipo de adquisición, como la versión de Android y si se tiene acceso root. También describe procesos de adquisición lógica a través de herramientas como adb backup y adb pull, así como métodos de adquisición física como la extracción del chip NAND o el uso de la interfaz JTAG.
¿Qué esconde tu teléfono? Adquisición forense de dispositivos AndroidSEINHE
Introducción al proceso de adquisición forense de dispositivos móviles ejecutando Android como sistema operativo. Incluye un listado de las técnicas de bypass para la mayoría de las restricciones impuestas por la configuración de seguridad y ejemplos para los distintos tipos de adquisición forense, tanto físicos como lógicos.
Curso de formación en Movilidad (Parte II) - Personalización Mobivery
Curso de formación en Movilidad que consta de tres partes. En esta primera parte del curso se hablará de: ROM's, Becoming root, CyanogenMod y Paranoid Android, además de Monitorización, Batería y Backups
El objetivo de la ponencia es extraer todos los datos relativos a la aplicación Android, tanto a nivel de código como de archivos generados durante el análisis dinámico de la misma.Una vez obtenidos todos los archivos empezaríamos con un análisis de código en busca de fugas de información relativa a entornos de preproducción, conexiones a servidor, credenciales...Por otro lado, analizaremos los archivos creados por la aplicación y los datos almacenados en estos, como pueden ser bases de datos, archivos de log, caché, archivos xml como el sharedpreferences...Una vez se han analizado los archivos creados por la aplicación pasaríamos a un análisis de las comunicaciones entre la aplicación y el servidor, datos que se envían, cómo se envían, archivos enviados, datos recibidos, etc.Enfocado a un nivel medio y si da tiempo, veremos también en que consistiría la evasión de controles proporcionados por la aplicación, como pueden ser controles de root, controles de integridad, certificate pinning, etc. Esto se llevaría a cabo mediante Xposed Framework.Adicionalmente, en este nivel medio hablaríamos del análisis estático del código en smali en lugar del código java obtenido, donde además de poder obtener más detalle del comportamiento de la aplicación nos permitiría modificar dicha aplicación y recompilarla para que ejecute el código que nosotros hayamos modificado.
FONTIC: Introducción al desarrollo en AndroidRomán Hernández
Charla práctica-Taller de "Introducción al desarrollo en Android", impartido en el Foro de Oportunidades y Negocios en las TIC" de Tenerife (2012):
http://fontic.sitios.feull.org/
Descripción: Introducción a conceptos y teoría sobre Android (software, hardware y sistema), preparación y configuración del entorno de desarrollo y SDK y un repaso a la plataforma de distribución de aplicaciones Google Play, junto a una breve introducción a la rentabilización de una aplicación.
Organiza EmprendeULL: http://www.emprende.ull.es/
Gestiona FEULL y ULL: http://www.feull.org/ - http://www.ull.es/
Impartido por José Román (Manz): http://www.emezeta.com/
¿Qué esconde tu teléfono? Adquisición forense de dispositivos AndroidSEINHE
Introducción al proceso de adquisición forense de dispositivos móviles ejecutando Android como sistema operativo. Incluye un listado de las técnicas de bypass para la mayoría de las restricciones impuestas por la configuración de seguridad y ejemplos para los distintos tipos de adquisición forense, tanto físicos como lógicos.
Curso de formación en Movilidad (Parte II) - Personalización Mobivery
Curso de formación en Movilidad que consta de tres partes. En esta primera parte del curso se hablará de: ROM's, Becoming root, CyanogenMod y Paranoid Android, además de Monitorización, Batería y Backups
El objetivo de la ponencia es extraer todos los datos relativos a la aplicación Android, tanto a nivel de código como de archivos generados durante el análisis dinámico de la misma.Una vez obtenidos todos los archivos empezaríamos con un análisis de código en busca de fugas de información relativa a entornos de preproducción, conexiones a servidor, credenciales...Por otro lado, analizaremos los archivos creados por la aplicación y los datos almacenados en estos, como pueden ser bases de datos, archivos de log, caché, archivos xml como el sharedpreferences...Una vez se han analizado los archivos creados por la aplicación pasaríamos a un análisis de las comunicaciones entre la aplicación y el servidor, datos que se envían, cómo se envían, archivos enviados, datos recibidos, etc.Enfocado a un nivel medio y si da tiempo, veremos también en que consistiría la evasión de controles proporcionados por la aplicación, como pueden ser controles de root, controles de integridad, certificate pinning, etc. Esto se llevaría a cabo mediante Xposed Framework.Adicionalmente, en este nivel medio hablaríamos del análisis estático del código en smali en lugar del código java obtenido, donde además de poder obtener más detalle del comportamiento de la aplicación nos permitiría modificar dicha aplicación y recompilarla para que ejecute el código que nosotros hayamos modificado.
FONTIC: Introducción al desarrollo en AndroidRomán Hernández
Charla práctica-Taller de "Introducción al desarrollo en Android", impartido en el Foro de Oportunidades y Negocios en las TIC" de Tenerife (2012):
http://fontic.sitios.feull.org/
Descripción: Introducción a conceptos y teoría sobre Android (software, hardware y sistema), preparación y configuración del entorno de desarrollo y SDK y un repaso a la plataforma de distribución de aplicaciones Google Play, junto a una breve introducción a la rentabilización de una aplicación.
Organiza EmprendeULL: http://www.emprende.ull.es/
Gestiona FEULL y ULL: http://www.feull.org/ - http://www.ull.es/
Impartido por José Román (Manz): http://www.emezeta.com/
Diapositivas de mi curso introductorio de Android en 5 horas.
EN EL CONGRESO UNIVERSITARIO MOVIL 2012 SE USÓ ESTA PRESENTACIÓN PARA HABLAR DE ANDROID Y SE HIZO UNA APP PARLANCHINA COMO EJEMPLO DEL CONTENIDO, AQUI ESTÁ EL CODIGO FUENTE https://www.dropbox.com/s/1dbso3rb47be1hj/Hablar.zip?%20m
Hoy en día, los bancos chilenos buscan convencer a sus clientes para que realicen sus operaciones bancarias con su celular mediante el uso de aplicaciones móviles disponibles en las tiendas en linea de las diferentes plataformas móviles, bajo la premisa de su facilidad de uso y su seguridad. Sin embargo, cuando se trata de información extremadamente sensible, como saldos financieros, números de tarjetas de crédito, datos de contactos del usuario, información geográfica, etc., cabe hacerse la pregunta: ¿Cuán seguras son estas apps?
Charla para la conferencia de seguridad 8.8 2015.
Conferencia ofrecida por Ander Martínez de Mundo Glass en Droidcon Spain. Droidcon Spain fue el primer evento donde se analizó el GDK, el Glass Development Kit. La versión preliminar del GDK que permitirá a los desarrolladores crear aplicaciones específicas para Google Glass. Hace solo unas semanas que Google liberó esta primera versión del kit de desarrollo de software para hacer las delicias de todos los developers que lo estaban esperando con ansias.
Gremlin Botnets: El club de los poetas muertosTelefónica
Charla impartida por Chema Alonso en la RootedCON 2020 sobre las Gremlin Botnets. Tienes el artículo completo en la URL: https://www.elladodelmal.com/2020/03/el-club-de-los-poetas-muertos-parte-1.html
Puedes contactar con Chema Alonso en https://www.mypublicinbox.com/ChemaAlonso
Android es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas.
Diapositivas de mi curso introductorio de Android en 5 horas.
EN EL CONGRESO UNIVERSITARIO MOVIL 2012 SE USÓ ESTA PRESENTACIÓN PARA HABLAR DE ANDROID Y SE HIZO UNA APP PARLANCHINA COMO EJEMPLO DEL CONTENIDO, AQUI ESTÁ EL CODIGO FUENTE https://www.dropbox.com/s/1dbso3rb47be1hj/Hablar.zip?%20m
Hoy en día, los bancos chilenos buscan convencer a sus clientes para que realicen sus operaciones bancarias con su celular mediante el uso de aplicaciones móviles disponibles en las tiendas en linea de las diferentes plataformas móviles, bajo la premisa de su facilidad de uso y su seguridad. Sin embargo, cuando se trata de información extremadamente sensible, como saldos financieros, números de tarjetas de crédito, datos de contactos del usuario, información geográfica, etc., cabe hacerse la pregunta: ¿Cuán seguras son estas apps?
Charla para la conferencia de seguridad 8.8 2015.
Conferencia ofrecida por Ander Martínez de Mundo Glass en Droidcon Spain. Droidcon Spain fue el primer evento donde se analizó el GDK, el Glass Development Kit. La versión preliminar del GDK que permitirá a los desarrolladores crear aplicaciones específicas para Google Glass. Hace solo unas semanas que Google liberó esta primera versión del kit de desarrollo de software para hacer las delicias de todos los developers que lo estaban esperando con ansias.
Gremlin Botnets: El club de los poetas muertosTelefónica
Charla impartida por Chema Alonso en la RootedCON 2020 sobre las Gremlin Botnets. Tienes el artículo completo en la URL: https://www.elladodelmal.com/2020/03/el-club-de-los-poetas-muertos-parte-1.html
Puedes contactar con Chema Alonso en https://www.mypublicinbox.com/ChemaAlonso
Android es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas.
Similar a ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android (20)
Presentación- PLATAFORMA VIRTUAL E-LEARNING .pptxarelisguerra707
PLATAFORMA VIRTUAL E-LEARNING
Las plataformas virtuales de e-learning son sistemas en línea que permiten la enseñanza y el aprendizaje a través de internet. Estas plataformas facilitan la gestión de cursos, la distribución de materiales educativos, la comunicación entre estudiantes y profesores, y el seguimiento del progreso académico. A continuación, se describen algunas características y ejemplos de plataformas de e-learning populares:
Características Comunes de las Plataformas de E-learning
Gestión de Cursos: Permiten la creación, organización y administración de cursos.
Materiales Educativos: Ofrecen acceso a documentos, videos, presentaciones, y otros recursos educativos.
Evaluaciones y Tareas: Facilitan la creación de exámenes, cuestionarios, y la entrega de tareas.
Interacción: Incluyen herramientas para foros de discusión, chats en vivo, videoconferencias, y mensajería.
Seguimiento del Progreso: Proporcionan reportes y análisis del desempeño y progreso de los estudiantes.
Accesibilidad: Pueden ser accesibles desde múltiples dispositivos, incluyendo computadoras, tablets y smartphones.
4. Evaluar y valorar
la incidencia
Adquisición de
evidencias
Análisis de las
evidencias
Informe con las
conclusiones
Procedimiento de investigación forense
Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials
5. Procedimiento de investigación forense
Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials
6. Tipos de adquisición forense de datos:
• Adquisición física
Obtención y copiado de los datos bit a bit accediendo para ello
directamente al medio físico.
• Adquisición lógica
Obtención y copiado de los datos desde la capa de abstracción
proporcionada por el sistema de ficheros.
7. Factores que determinan el tipo de
adquisición en dispositivos Android
1. Finalidad de la investigación
2. Características del terminal
3. ¿Está habilitada la depuración USB?
4. ¿Somos o no somos root?
5. Versión de Android
8. Factores que determinan el tipo de
adquisición en dispositivos Android
1. Finalidad de la investigación
2. Características del terminal
3. ¿Está habilitada la depuración USB?
4. ¿Somos o no somos root?
5. Versión de Android
9. Factores que determinan el tipo de
adquisición en dispositivos Android
1. Finalidad de la investigación
2. Características del terminal
3. ¿Está habilitada la depuración USB?
4. ¿Somos o no somos root?
5. Versión de Android
10. Factores que determinan el tipo de
adquisición en dispositivos Android
1. Finalidad de la investigación
2. Características del terminal
3. ¿Está habilitada la depuración USB?
4. ¿Somos o no somos root?
5. Versión de Android
11. Factores que determinan el tipo de
adquisición en dispositivos Android
1. Finalidad de la investigación
2. Características del terminal
3. ¿Está habilitada la depuración USB?
4. ¿Somos o no somos root?
5. Versión de Android
12. Imagen propiedad de Google Inc.
http://www.android.com/history/
Android Donut
Released at september 2009
Version: 1.6
13. Android Eclair
Released at november 2009
Versions: 2.0, 2.01, 2.1
Imagen propiedad de Google Inc.
http://www.android.com/history/
14. 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/
15. Android Gingerbread
Released at november 2010
Versions: 2.3.1 - 2.3.7
Imagen propiedad de Google Inc.
http://www.android.com/history/
16. 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/
17. 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/
18. 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/
19. 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/
20. Android Lollipop
Released at november 2014
Version: 5.0
Imagen propiedad de Google Inc.
http://www.android.com/history/
25. Autorizar la conexión USB desde el PC
Restricción
• Capa de seguridad para adb desde Android 4.2.2
• Es necesario “Aceptar” para permitir la conexión
• 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
cámara veremos el mensaje y podremos
autorizar la conexión!
26. 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
27. 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 código de la clase “com.android.settings.ChooseLockGeneric.class”
28. Evasión o cracking del bloqueo (requiere root)
Evasión o cracking del método de bloqueo por patrón
• Eliminamos el fichero con el patrón lanzando una shell de root con adb:
adb shell “rm /data/system/gesture.key”
• Descargamos el fichero con el patrón 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 |
----- ----- -----
29. Evasión o cracking del método 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
Evasión o cracking del bloqueo (requiere root)
30. 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 método de bloqueo de
pantalla mediante patrón
• Se toman fotografías desde distintos ángulos
modificando las propiedades de luz y color
Foto obtenida de Gizmodo
http://tinyurl.com/259whg9
31. 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
32. 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 función del terminal y de la versión 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
34. Adquisición lógica: AFLogical™ OSE
Características
• Herramienta desarrollada por viaForensics
• Obtención de datos vía Content Providers
• Los datos se vuelcan en ficheros de tipo csv
Restricciones
• Requiere activar la depuración USB
• Datos obtenidos muy limitados
• Genera el volcado en la sdcard
Ventajas
• No requiere ningún 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
36. Adquisición lógica: 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 depuración 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
37. Adquisición lógica: adb backup
Problema
• Si el terminal está bloqueado no podremos iniciar el
proceso
Solución
• Simular la pulsación 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
38. Adquisición lógica: adb pull
adb pull /device_directory /workstation_directory
Ventajas:
• Técnica 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
40. Métodos hardware de adquisición física
• Extracción de la NAND (chip-off)
• Técnica destructiva, el móvil queda inservible
• Se retira el chip de la PCB aplicando calor a las
soldaduras
• El chip puede dañarse durante el proceso
• Una vez retirado se extrae su contenido
• Conexión mediante la interfaz JTAG
• Interfaz para testear la PCB
• Variaciones entre los distintos fabricantes
• No todos los fabricantes publican sus especificaciones
41. Método software de adquisición física
• Es imprescindible contar con acceso adb al terminal
• Pasos genéricos para el proceso de adquisición:
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
42. Adquisición física: 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), versión de
Android, versión 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
44. Adquisición física: 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
45. NOTA: si utilizamos la sdcard como destino el clonado es más rápido
Adquisición física: 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
46. NOTA: si hemos utilizado la sdcard del terminal eliminamos la imagen
o imágenes; si hemos insertado una sdcard para el volcado apagamos
el terminal y la retiramos
Adquisición física: 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 demás restos asociados y reiniciamos el terminal
$ adb shell "rm -Rf /dev/tools"
47. Método software de adquisición física: 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