Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Tacita, análisis de APKS y big data

180 visualizaciones

Publicado el

Presentación usada por Jorge Coronado en la jornadas técnicas cátedra de Indra y meetup de Hacking Sevilla sobre el análisis dinámico y estático en APKs

Publicado en: Datos y análisis
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Tacita, análisis de APKS y big data

  1. 1. Hacking Sevilla: Ronda de Hacking Jorge Coronado QuantiKa14 12/12/2019 www.quantika14.com 1
  2. 2. Quién es Jorge Coronado • Fundador y CEO de QuantiKa14 • Colaborador de Canal Sur Radio desde 2015 • Profesor en el curso de detectives de la Universidad Pablo Olavide de Sevilla • Co-autor del primer “Protocolo institucional en España ante la violencia de género en las redes sociales” • Formación a cuerpos de seguridad en investigación a través de Internet desde la ESPA y otros cursos • Creador del protocolo de actuación para la búsqueda de personas desaparecidas a través de las tecnologías de la información y comunicación • Director del curso de verano “ciberdelincuencia de género “ en la UPO • Vocal de la asociación de peritos tecnológicos de Andalucía (APTAN) • Dinamizador del Hack&Beers Sevilla • Autor del canal de Youtube Investiga Conmigo desde el Sü • Creador de aplicaciones como: Guasap Forensic, Shodita, Tacita, EO-Ripper, Dante Gates, Killo.io, etc 12/12/2019 www.quantika14.com 2
  3. 3. Una noticia perfecta para… 12/12/2019 www.quantika14.com 3
  4. 4. Índice • Conceptos básicos • Tacita • Big data • APK-ANAL • Ninjadroid 12/12/2019 www.quantika14.com 4
  5. 5. Estructura y archivos de un APK El fichero .apk o Android Package File es un formato específico para aplicaciones android con extension .apk (basicamente se trata de un fichero .zip renombrado) cuya estructura es la siguiente: • AndroidManifest.xml: es el fichero de configuración de la aplicación. Está formado por: • Permisos que necesita la aplicación para su correcto funcionamiento. • Pantallas o Activities de la aplicación. • Servicios o Services que van a correr en segundo plano. • Receptores o Receivers que pueden manejar eventos del sistema o de otras aplicaciones, como el reinicio del móvil o la llegada de un SMS. • assets: directorio en el que se almacenan ficheros específicos de la aplicación. • classes.dex: este fichero es el bytecode de la aplicación necesario para que pueda ejecutarse en la máquina virtual de Android (Dalvik VM). Los ficheros .dex son para la Dalvik VM como los ficheros .class de Java lo son para la JVM. • lib: directorio en el que se almacenan librerías de código nativo de las que depende la ejecución de la aplicación. • META-INF: directorio que almacena el fichero MANIFEST.MF que contiene los hashes de todos los recursos utilizados por la aplicación con el objetivo de verificar que no se han modificado. También contiene el fichero CERT.RSA que contiene la clave pública del desarrollador. • res: directorio en el que se almacenan todos los recursos como ficheros xml, imágenes, ficheros de estilos, etc… . • resources.arsc: fichero que relaciona todos y cada uno de los recursos con su identificador correspondiente. 12/12/2019 www.quantika14.com 5
  6. 6. Tipos de análisis Para llevar a cabo un análisis completo de una aplicación Android es necesario realizar dos tipos de análisis: • Análisis estático: se basa en los recursos, fichero de propiedades y código fuente de la aplicación. • Análisis dinámico: se basa en el comportamiento de la aplicación durante su ejecución controlada. 12/12/2019 www.quantika14.com 6
  7. 7. ¿Qué hace el análisis estático? • Análisis de permisos: para ellos revisaremos el fichero de configuración AndroidManifest.xml . • Exploración de recursos: revisaremos los directorios de recursos de la aplicación con el objetivo de identificar posibles imágenes o ficheros que sean un indicio de actividad sospechosa. • Búsqueda de cadenas: buscaremos patrones dentro del código de la aplicación ¿al que accederemos a través del fichero classes.dex? . • Revisión del código fuente: realizando la descompilación del fichero classes.dex (código compilado para la Dalvik VM) accederemos a los ficheros .jar con el código fuente. • Verificación el certificado: comprobaremos la validez del certificado así como la información del mismo. 12/12/2019 www.quantika14.com 7 https://thehackingfactory.com/eres-un-apk-muy-malo
  8. 8. Resumen para Big Data Crawler •Descargar APKS de una plataforma Análisis estático •Permisos •Servicios •Archivos •Parser Descompilar .dex •Código •Vulnerabilidades Base de datos • NoSQL • SQL 12/12/2019 www.quantika14.com 8
  9. 9. ¿Qué es Tacita? Aplicación con licencia open source que tiene el objetivo de analizar de forma estática y automática miles de APKS para luego analizarlo en una base de datos. 12/12/2019 www.quantika14.com 9
  10. 10. Funcionalidades de Tacita ❑ Análisis estático • Versión de Android • Librerías • Main_activity • Activities • Servicios • Archivos • Permisos • Emails • URLS • IPS • FTP • Guarda los resultados en MongoDB 12/12/2019 www.quantika14.com 10
  11. 11. DownloaderAPKS: defaced • Hace 3 años funcionaba • Actualmente disponen de cortafuegos • Actualmente disponen de una web más segura • Otras fuentes: apkpure.com 12/12/2019 www.quantika14.com 11
  12. 12. Problemas y mejoras • APK-parser no es compatible con Python3 • Nuevas mejoras: • Identificador de idiomas en cadenas de texto • Fronted con gráficas y tablas de datos (ELK, Flask, Django, etc) • Desemsamblar con Radare, APKtools y dex2jar https://github.com/Quantika14 /Tacita 12/12/2019 www.quantika14.com 12
  13. 13. DEMO 12/12/2019 www.quantika14.com 13
  14. 14. Otra forma de hacerlo es con NinjaDroid 14 • Sudo apt-get install lib32z1 lib32z1-dev lib32stdc++6 • Make build-Linux • https://github.com/rovellipaolo/NinjaDroid • Genera un JSON con: • Información del archivo APK (es decir, tamaño del archivo, MD5, SHA-1, SHA-256 y SHA-512); • Información de la aplicación (por ejemplo, nombre de la aplicación, nombre del paquete, versión, listas de permisos, lista de Actividades / Servicios / BroadcastReceivers, etc.); • Información del certificado digital (por ejemplo, validez, número de serie, huella digital MD5, SHA-1, SHA-256 y firma), incluida la información del emisor / propietario del certificado (por ejemplo, nombre, correo electrónico, empresa, país, etc.); • Todas las cadenas codificadas en el archivo classes.dex; • Las URL y los comandos de shell están codificados en el archivo classes.dex; • Información de archivo de AndroidManifest (es decir, tamaño de archivo, MD5, SHA-1, SHA-256 y SHA-512); • información del archivo classes.dex (es decir, tamaño del archivo, MD5, SHA-1, SHA-256 y SHA-512); • Información de archivo CERT.RSA / DSA (es decir, tamaño de archivo, MD5, SHA-1, SHA-256 y SHA- 512); • Lista de entradas de archivo (es decir, nombre de archivo, tamaño de archivo, MD5, SHA-1, SHA-256 y SHA-512) en el paquete APK. 12/12/2019 www.quantika14.com
  15. 15. Dex2jar y Java Decompiler 12/12/2019 www.quantika14.com 15
  16. 16. APK-ANAL • https://github.com/mhelwig/apk-anal • apktool ( https://ibotpeaches.github.io/Apktool/ ) • radare2 ( https://radare.org - usa lo último de Git) • Python-modules: filemagic, r2pipe, argparse • grep con la opción -E • Java en camino 12/12/2019 www.quantika14.com 16
  17. 17. Conclusiones • Ninjadroid es una aplicación muy completa y que nos puede servir para hacer un big data de APKS de forma fácil • Tacita es una aplicación ligera y útil. Encontramos resultados sin tener que descompilar. Es necesario refactorizar y usar otra librería en vez de “APK- parser” • APK-ANAL es muy completa pero tiene muchos fallos actualmente www.quantika14.com 12/12/2019 17
  18. 18. ¿Alguna pregunta? ¡MUCHAS GRACIAS! RECUERDA QUE HACKING SEVILLA TIENE UN GRUPO DE MEETUP Y DE TELEGRAM https://www.meetup.com/es- ES/hacking-sevillaQK14/ https://t.me/happyhackingsevilla www.quantika14.com 12/12/2019 18

×