Professional Documents
Culture Documents
(forense) de teléfonos inteligentes iOS y Android. He evitado poner el proceso por escrito de la
misma manera que evitaría la Plaga debido a que la tecnología móvil cambia tan rápidamente
que no quisiera que la gente lea algo y viva solo en base a eso. Escribí esta entrada en un
avión de camino a Vancouver, así que perdonen cualquier error ortográfico al igual que la
brevedad de la misma.
Habiendo dicho lo anterior, estos son los métodos que funcionan para mi al dia de hoy. Otros
puede que prefieran otros métodos, y eso es fantástico. Si todos fuéramos iguales esta sería
una comunidad muy aburrida, ¿no?
Este posteo contiene lo que yo hago normalmente cuando es posible. Cualquiera que lleva a
cabo trabajo de peritaje forense móvil sabe que todo cambia rápidamente y lo que es posible al
día de hoy requiere modificación para que pueda funcionar mañana. Nos adaptamos,
ajustamos y somos mas inteligentes a causa de ello Lo que he decidido es enfocarme en
Android y iPhone para este posteo. Muchos de ustedes tienen sus herramientas de vendedores
favoritas y esto es formidable. Yo recomiendo que se use más de una (herramienta) porque
ninguna de ellas es perfecta. No te vuelvas tan dependiente de un solo método que llegues a
evitar la oportunidad de probar otras herramientas, que dependas de una sola herramienta que
no extraiga los datos correctamente. He evitado hacer un listado específico de las herramientas
que yo prefiero ya que en el pasado he escrito un posteo al respecto. Yo solamente estoy
definiendo los pasos que tomo al trabajar, queda de usted usar la herramienta de su
preferencia para cumplir con los objetivos. Recuerde que la herramienta más costosa no tiene
que ser necesariamente la que mejor trabaje. Muchas veces son los métodos libres de costo
los que proveen la mayor cantidad de datos/información.
Los dispositivos Android se están volviendo cada vez más difíciles de adquirir. Hemos visto
muchos dispositivos donde solo información básica (fotografías, contactos y algunas llamadas)
puede ser extraída. Algunas veces solo la información que existe en la tarjeta SIM puede ser
extraída. Estoy segura que muchos de ustedes se han topado con la pantalla a continuación.
De seguro es desanimador, pero no podemos dejar de seguir intentando.
Para adquirir iOS es lo mismo que ha sido por años. Si, han habido rumores del
cierre/restricción del puerto de datos. Si, existen herramientas que permiten acceso al
dispositivo como quiera. Este posteo no se centra en esto. El posteo se enfoca en que debes
intentar cuando tienes un dispositivo de iOS a investigar. Puedes decidir trabajar en una
computadora Windows o Mac. Yo uso las dos. Honestamente la mayor parte de mis
adquisiciones toman a lugar en una máquina de peritaje forense Windows, pero si uso una Mac
cuando examino archivos nativos a Apple o para llevar a cabo 'jailbreaking' debido a que
Windows no siempre es efectivo en cuanto a esto.
• Si usas alguna otra herramienta, usa más de una para asegurarte que obtienes todos
los datos del dispositivo.
3. Si quieres tener la mayor cantidad de información posible asegúrate de obtener
una adquisición lógica y/o de resguardo ('backup') del dispositivo. Típicamente yo me
detengo al obtener una descarga del sistema de archivos ya que esta contiene el
resguardo si tengo confianza en mi herramienta. (Refiérase al posteo mencionado
anteriormente o tome la clase FOR585 para mayor información en este tópico.)
4. Conecte el dispositivo a iBackup bot y descargue las bitácoras de fallas.
5. Asegúrese que las herramientas utilizadas no activen el cifrado ('encryption')
de iTunes al conectar el dispositivo a iTunes y asegurarse que cifrar el resguardo
('Encrypt Backup') no este seleccionado.
Funcionalidad de Discord.
El propósito de este posteo es ver que evidencia podemos obtener del uso de Discord en el
sistema operativo Windows. La razón que motiva este análisis es la falta de identificación
automatizada del uso de Discord por las herramientas comerciales de informática forense.
Al igual que muchas aplicaciones en Windows, Discord almacena la información generada por
los usuarios en el directorio de 'AppData.' En este caso el directorio completo sería:
C:\Users\usuario\AppData\Roaming\discord
Los archivos generados por la interacción del usuario se encuentran en el directorio 'Cache.' Al
mirar el contenido del directorio ninguna información de utilidad, como contenido de chats por
ejemplo, se hace aparente.
C:\Users\usuario\AppData\Local\Google\Chrome\User Data\Default\Cache
El navegador de uso en mi sistema es Chrome y Discord usa el mismo formato para estructurar
sus datos. Aquí el contenido del directorio de 'cache' de mi navegador para efectos de
comparación.
La misma estructura.
Siendo que las estructuras son las mismas parece claro que el contenido que estamos
buscando tiene que residir en estas estructuras, en el directorio 'cache' de Discord, que son
iguales a las que usa el 'cache' de Chrome. Como la estructura del 'cache' de Chrome es muy
conocida, existen muchas herramientas que nos permiten extraer el contenido. Para este
análisis use la siguiente herramienta:
La herramienta le permite extraer toda la metadata en formato HTML. Más útil aún es poder
extraer los archivos contenidos dentro de este 'chache' al seleccionar los objetos deseados y
presionar F4.
Para encontrar los chats extraiga todos los archivos que terminan en 'messages?limit=50' bajo
la columna de URL.
messages?limit=50
Tenga a considerar que este análisis se hizo en un sistema con lenguaje en inglés. Pueda que
existan pequeñas diferencias debido al idioma pero eso es algo que requiere verificación
adicional. Al exportar estos archivos se podrá apreciar que dentro de los mismos están los
chats de Discord. No todos los archivos de chat tienen como nombre '50' según se ve en la
imagen anterior. Algunos de los archivos de chat tienen nombres que comienzan con las
palabras 'Before' o 'After' seguidos por un tipo de identificación numérica. Para no dejar de
extraer algún archivo relevante se recomienda que se use el final del contenido de la columna
URL para la identificación.
Nótese que al presionar sobre uno de estos archivos la herramienta nos dice que son archivos
de tipo JSON los que estamos exportando.
Content Type: application/json
Como son archivos tipo JSON, los podemos ver con cualquier editor de texto. Luego de
exportar uno de estos y abrirlo con Wordpad, el contenido se ve de la siguiente forma:
'Content' es la llave.
Aunque el contenido visto de esta manera es difícil a los ojos, podemos entender claramente lo
que se dice. Note la llave titulada 'content'. El contenido de la misma es la conversación
generada por el usuario. Cada bloque de contenido generado por el usuario comienza con la
llave 'Attachment' seguido por las llaves de estampa de tiempo, número de usuario, contenido
del chat, entre otras.
Para lograr hacer que el contenido sea más fácil de visualizar, el siguiente código ('script') que
se proporciona convierte los archivos de JSON en formato de Excel o de HTML.
En este posteo quisiera mostrar cómo presentar los contenidos de una aplicación (app) de
Android usado el mismo app dentro de un emulador. Un emulador es conocido también como
una máquina virtual. En este análisis la máquina virtual nos permite usar Android desde una
computadora Windows. Este método nos da el beneficio de ver el contenido en la misma forma
que lo vería el usuario. Básicamente usamos el app mismo como nuestra herramienta de
visualización sin alterar la evidencia original debido a que usamos el emulador. Es de notar que
para este análisis se espera que el perito o practicante esté ya familiarizado con las
herramientas de análisis. En futuros posteos al blog se discutirán al detalle el uso de las
herramientas y como validarlas.
Para extraer el app con los datos del usuario usaremos Magnet Forensics Acquire. En entradas
futuras del blog discutiremos diferentes métodos de extracción y lo que significan. En este
caso, debido a que tenemos acceso de superusuario, haremos una extracción física.
Usando FTK Imager se puede ver el contenido de la imagen forense física que se completó en
el primer paso. Con la misma se exportan los siguientes directorios con sus archivos
correspondientes.
/userdata/app/com.discord-1
/userdata/data/com.discord
El directorio (o carpeta) 'app' contiene el app Discord mismo. El app dentro de el directorio se
llama "base.apk". Discord es un app multiplataforma utilizado para enviar mensajes y archivos
multimedios. Es un app muy popular en particular con usuarios de video juegos con sobre 10
millones de descargas al día de hoy.
10 millones de descargas y contando.
En la próxima imagen podemos ver el app en el directorio indicado. Los apps en el sistema
operativo Android usan la extensión apk. Esta significa 'Android application package' lo cual en
espanol se traduce como paquete de aplicación Android.
Después de exportar los directorios necesarios se comienza el emulador Nox. Dependiendo del
app que estemos trabajando sería ideal cambiar la configuracion del emulador. De manera
automática el emulador trabaja en modo tableta con la configuración de pantalla
correspondiente.
Modo tableta
Siendo que en nuestro ejemplo el app proviene de un teléfono móvil, cambiamos el modo y la
resolución a uno que sea semejante al ambiente que estamos analizando.
Cambiando el modo y la resolución
Usaremos ADB para conectarnos al emulador e importar (push) la data en los directorios
exportados anteriormente. El enlace para bajar el programa ADB está en la sección anterior
bajo herramientas de análisis. Instale antes de continuar. Ahora abra una terminal o línea de
comandos (cmd.exe en Windows) y conéctese al emulador usando el siguiente comando:
adb connect localhost:62001
Para probar la conectividad use el siguiente comando:
adb devices
De tener éxito debería ver lo siguiente en su pantalla.
Conectados al emulador.
Abra otra línea de comando y accedamos al terminal del emulador usando ADB.
adb shell
La primera line de comando se usará para subir/enviar el apk al emulador. La segunda line de
comando nos permitirá interactuar con el sistema de archivos (file system) del emulador.
APK al emulador.
Luego de ver la pantalla inicial del app, presione el botón de tareas recientes (Recent Tasks) en
el emulador. Este sería el cuadrado encima del símbolo de >> en la parte baja del lado derecho
de la pantalla. Proceda a deslizar el app cerrandolo.
Antes de subir los datos del app al emulador debemos eliminar los directorios creados por el
app cuando lo inicializamos.
En la segunda linea de comandos, donde usamos el ADB shell, navegue al directorio siguiente:
/data/data/com.discord
Allí vera todos los directorios que fueron creados en la inicialización. Use el siguiente comando
para eliminarlos:
rm -r *
Está vacío.
Note que el comando ls nos deja ver si hay carpetas o archivos disponibles. No se ve ninguno.
Vaya a la línea de comando primera y suba la data extraída del app al directorio que acabamos
de vaciar.
adb push com.discord /data/data/com.discord
Datos extraídos subiendo al emulador.
Si los datos subieron correctamente debera ver algo semejante a la siguiente pantalla:
Éxito total.
En la line de comando donde esta el ADB shell podrá ver que los directorios exportados de la
imagen física ahora se encuentran dentro del emulador. Use el comando ls.
Estructura de directorios.
Consideraciones
Este método es sumamente útil para mostrar los datos extraídos a una audiencia no técnica.
Es una gran ayuda visual el poder ver los datos en la misma manera que el usuario original de
los mismos lo hubiera visto.
Al hacer este tipo de análisis siempre debemos adherirnos a las mejore prácticas. Por ejemplo
mi sistema de análisis ni mi emulador estaban conectados al internet. Nótese el punto verde
justo al lado del nombre de usuario en la parte baja de la siguiente imagen.
Se conectó sin tener que proveer contraseña.
Debe de asegurarse que el sistema que utiliza para hacer el análisis no esté conectado al
internet siendo que ciertas aplicaciones se van a conectar automáticamente a los servidores
que el app en cuestión use. Esto puede causar un problema donde el analista o perito
inadvertidamente lleve a cabo una búsqueda ilegal del material remoto en el servidor sin tener
la autorización legal propia.
Tenga en cuenta que el análisis usando un emulador puede no funcionar con apps que estén
fuertemente integrados en el sistema operativo, por ejemplo Google apps.
En mis pruebas he visto que cerrando el app o apagando el emulador no permite que pueda
accesar los datos que se subieron. El app solo provee un error de instalación al querer abrirlo
por segunda vez. Asegúrese de tomar capturas de pantalla o tomar un video de la misma antes
de cerrar el app o apagar el emulador. Para tener acceso al app luego de apagar el emulador
tendrá que reinstalar Nox y hacer todo el proceso desde el comienzo.
Puedo ser contactado a través de twitter en @alexisbrignoni.
at April 29, 2018 No comments:
Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest
Labels: Android, Dificultad media, FTK Imager
Declaración de propósito
Aqui espero poder compartir desde lo básico a lo avanzado. Desde cómo hacer una imagen
forense a usar una máquina virtual para analizar aplicaciones de Android. Desde recobrar
carpetas y archivos borrados a poder analizar bases de datos SQLite. La mayor parte de los
artículos serán de mi autoría al comienzo. De traducir artículos de otros autores esto se hará
con el consentimiento del escritor y con una clara nota dándole el crédito a la fuente.
En mi Twitter (@alexisbrignoni) anunciare cuando haya un posteo nuevo tanto en este blog
como en la versión en inglés del mismo (https://abrignoni.blogspot.com).
Si hay preguntas o si el lector desea sugerir algún tópico de discusión que pueda desarrollarse
en un artículo me pueden enviar un mensaje directo via twitter o escribirme a
4n6(at)abrignoni(dot)com.