Este documento presenta AndroidSwissKnife, una herramienta de código abierto que combina múltiples herramientas de análisis estático y dinámico de aplicaciones Android (APKs) en una interfaz unificada. La herramienta incluye módulos para desmontar APKs, analizar archivos, ejecutar análisis dinámicos en un emulador, verificar APKs con antivirus, y volver a empaquetar APKs modificadas. El objetivo es facilitar el análisis completo de APKs al integrar func
2. Really...Who you are
● Eduardo Blázquez ( Fare9, @erockandblues )
● Estudiante Ingeniería de Computadores UAH
● Becario en Mnemo
●
Suelo publicar cosillas en Estación Informática
(actualmente un cursillo de exploiting)
7. About APKs
● “Aplicaciones, las cuales extienden la
funcionalidad del dispositivo...”
●
=) , me gusta que extiendan la funcionalidad
de espiarme
● Una aplicación, entonces también puede ser
maligna
●
La API de Google ayuda bastante.
9. About Analysis
● OS Open Source, muchas tools diferentes, cual
uso…
●
Apktool, Jadx, unzip, opcodes, análisis
dinámico ....
● Demasiados comandos =(
●
Así que me pregunto
10.
11. ¿Qué haría Macgyver?
● Ya tenemos una piña, tenemos un clip y algo
de pasta de dientes…
●
Con esto le da para una Bomba
● Tenemos un apktool, un jadx, código de por
aquí y por allá…
●
Con esto nos da para una tool que nos ayude
=)
12. AndroidSwissKnife
● Nace como una idea para aunar, todas las
ideas de un libro. Actualmente TFG.
●
Este framework nos permite realizar un
análisis estático y dinámico de un APK
● No es perfecto… Pero...
13. AndroidSwissKnife
● Ganadora de Artillería Sec/Admin 2016
● Patrocinada por ToolsWatch
http://www.toolswatch.org/2016/12/secadmi
n-artilleria-spain/
●
De código libre, disponible en:
https://github.com/Fare9/AndroidSwissKnife
14. Módulo Apktool
● Módulo con la principal funcionalidad de
apktool.
●
Además incluye una primera lectura del
Manifest, descubrimiento de funciones java de
las librerías nativas, búsqueda de bases de
datos y la posibilidad de añadir exiftool...
15. Módulo Unzip
● Este módulo es usado después de realizar un
unzip al apk.
●
Muestra el certificado, realiza búsqueda de
assets (puede haber cosas interesantes),
busca código en los directorios, además
permite la búsqueda de clases java, urls y
expresiones regulares.
16. Módulos get-jar y opcodes
● El módulo get-jar te permite conseguir los jar
y clases del apk, por tanto puedes usarlos en
algunos análisis dinámicos.
●
El módulo opcodes, permite obtener
información a través del uso del bajo nivel de
android
17. Módulo create APK
● Este módulo nos permite a partir de la salida
de apktool, volver a empaquetar la apk.
●
Se encarga de firmar la apk, para poder
instalarla sin problemas en nuestro emulador.
● Bueno si sabes modificar el código smali
●
Ejemplo: http://www.estacion-
informatica.com/2016/08/meterpretear-una-
apk.html
18. Módulo Análisis Dinámico
● Wrapper de la aplicación DroidBox.
● Añadido soporte para ciertos errores.
● Este módulo nos permite la ejecución de un
emulador que funciona como sandbox, tras
esto nos devolverá un JSON con información
de ejecución.
19. Módulo Antivirus
● Koodous: Antivirus con base de datos
desarrollada por la comunidad y gratuito
creado por hispasec.
●
Ofrece una Rest API con métodos para buscar
por hashes.
● Necesario una clave (gratuita)
●
https://koodous.com/
●
Clase en AndroidSwissKnife para uso de API
20. Módulo Antivirus
● En desarrollo, analizador léxico con la
herramienta LEX.
●
Posible desarrollo de analizador semántico
con la herramienta YACC.
● ¿Quién dijo que eso de procesadores del
lenguaje no nos valdría para nada?
21. Módulo Sandbox
● Framework Xposed: permite la instalación de
“funciones” en un dispositivo con permisos de
root, para crear hooks de funciones.
●
Proyecto: generar máquina Android M6 para
realizar Sandboxing de funciones.
● Proyectos existentes: http://cuckoo-
droid.readthedocs.io/en/latest/