29 oct 2013

Herramientas forense para ser un buen CSI. Parte XXXVIII:AndroidManifest.xml

Buenas a todos, en el post de hoy de Herramientas Forense para ser un buen CSI vamos a hablar del archivo AndroidManifiest.xml, de su importancia en el sistema operativo Android, y sobretodo de cómo podemos visualizarlo a la hora de realizar un análisis forense de un programa en formato APK que podamos haber localizado durante nuestra investigación.El Android Manifiest es la base de cualquier aplicación Android, y se encuentra en el archivo AndroidManifest.xml que se encuentra alojado en la raíz de cualquier proyecto Android. En él se declara todo lo que se encuentre dentro de la aplicación:
  • actividades
  • servicios
  • etc
Al crear un proyecto de Android por primera vez se obtiene un archivo Androidmanifest.xml básico que abarca los elementos base de una aplicación, pero según aumenten las funcionalidades de la herramienta, este archivo irá creciendo con nuevas declaraciones.
Dentro del manifiest encontraremos:
  • uses-permission: Dónde se declaran los permisos que necesitará nuestra aplicación para funcionar (GPS, etc.).
  • permission: Dónde se declaran los permisos que las actividades o servicios necesitan.
  • instrumentation: Indica el código que deberá ser invocado cuando un evento clave del sistema sea llamado por el usuario.
  • application: Define el nombre, actividad principal, icono, etc. de la aplicación.
Para poder instalar una aplicación en un terminal con Android, deberemos aceptar los permisos solicitados por el AndroidManifiest.xml:
  • Información personal (calendario, contactos, …)
  • Información del dispositivo (Datos de red, SMS, ..)
  • etc.
Y sino son aceptados, la aplicación no podrá ser instalada.Si descomprimimos un fichero APK (que no deja de ser un archivo comprimido), nos encontraremos además del AndroidManifest.xml, con los siguientes archivos:
  • classes.dex
  • resources.arsc
  • res (carpeta)
  • META-INF (carpeta)
  • lib (carpeta)
Bien, si intentamos abrir el Manifiest, veremos que toda la información se encuentra codificada.Por suerte para nuestro trabajo, contamos con alguna que otra utilidad que nos permitirá de una manera rápida decodificar el archivo manifiest de Android. Una de ellas es Apktool:
Su uso es muy sencillo, una vez descargada la herramienta del enlace anterior, copiaremos el archivo .apk en el PC y ejecutaremos la siguiente instrucción:
apktool d NombreApp.apk ./RutaDeSalida
Por ejemplo, yo decompilaré un apk malicioso que se hacía pasar por una app lícita de Facebook:
apktool.bat d facebook.apk facebook
Y en pocos segundos tendremos nuestro Androidmanifiest.xml en texto plano:
Como veis, nuestra aplicación "falsa" de Facebook nos solicitaba acceso al estado de la WIFI, historial de llamadas, contactos, etc. Algo un poco turbio ¿verdad?
En posteriores artículos de la cadena seguiremos hablando de las aplicaciones de Android
Saludos!

2 comentarios:

  1. Eres un crack. Rompiendo cifrados y todo en Android!Gracias por tus 38 aportes a la comunidad.

    ResponderEliminar
  2. Gracias Alberto, un placer colaborar con la comunidad. Aunque el mérito es de los desarrolladores de Apktool :) http://code.google.com/p/android-apktool/people/listSaludos

    ResponderEliminar