Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Android reversing 101.pdf

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Ransomware Hidden Tear
Ransomware Hidden Tear
Cargando en…3
×

Eche un vistazo a continuación

1 de 20 Anuncio
Anuncio

Más Contenido Relacionado

Más reciente (20)

Anuncio

Android reversing 101.pdf

  1. 1. @zallyhg Android reversing 101
  2. 2. Ingeniera en Sistemas Computacionales. Experiencia en ciberseguridad: Pentesting mobile/web Malware research Arquitectura de redes/preventa Cursos online: Intro a ciberseguridad Redes Computacionales Análisis de malware Speaker, me gusta ayudar y aportar a la comunidad de ciberseguridad!
  3. 3. Bienvenid@s, Recuerda que para este taller necesitarás tener : DIVA APK: https://github.com/payatu/diva-android o https://github.com/0xArab/diva-apk-file Emulador de android studio, Genymotion o un telefono de pruebas android Descargar e instalar docker Descargar MobSF Descargar e instalar Burp Suite Community Edition Descargar Drozer Un computador, laptop o maquina virtual, que pueda soportar los programas mencionados Y mucho entusiasmo por aprender! :-)
  4. 4. Reverse engineering vs Pentesting
  5. 5. Pentesting mindset Ir más allá del manual de instrucciones, o lo que se espera de un usuario, explorando los límites de lo que es posible,
  6. 6. Phases of pentesting
  7. 7. First, the basics Hablemos un poco de Android, una plataforma usada por más de 3 billones de usuarios en el mundo; Y es que una de las mayores ventajas o atractivos de esta plataforma es la base de las problemáticas de seguridad, el hecho de ser una plataforma abierta.
  8. 8. First, the basics SMALI Utilizando smali/baksmali (ensamblador/desensamb lador) se puede obtener una representación en un lenguaje de bajo nivel con el que se puede trabajar más fácilmente Dalvik Byte Code Las aplicaciones Android contienen ficheros .dex (Dalvik EXecutable). Estos ficheros se pueden decompilar para obtener un código de bajo nivel llamado Dalvik Bytecode. Java decompilado Lo más cercano al código fuente, Android está basado en Java, aunque también puede ser escrito en Kotlin.
  9. 9. Public disclosures (CVE) https://www.cvedetails.com/product/19997/Google-Android.html?vendor_id=1224
  10. 10. Diseño y arquitectura Android es apodado “Java en Linux” ya que posee una arquitectura muy similar a la vista en Linux, a continuación veremos un poco de eso,
  11. 11. https://developer.andr oid.com/guide/platfor m
  12. 12. Manos a la obra Para entender mejor la estructura y realizar nuestro primer análisis estático necesitarás tener instalado docker o MobSF: Descargar e instalar docker https://docs.docker.com/desktop/install/mac-install/ Descargar repositorio de MobSF o hacer pull del contenedor, https://hub.docker.com/r/opensecurity/mobile-security-framework-mobsf/ Recomendación personal, usar Docker.
  13. 13. Manos a la obra docker pull opensecurity/mobile-security-framework-mobsf docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf
  14. 14. Manos a la obra Download apk https://github.com/0xArab/diva-apk-file Arrastra o abre el archivo APK en localhost:800 Formato de reporte https://docs.google.com/document/d/1K_uAQ_lod_atlvr18GDFEeVkSRkRMTdZIX TAQE-7Las/edit?usp=sharing
  15. 15. Radiografía de una aplicación ● Android Manifest ● Meta.INF →Certificados ● Classes.dex → Dalvik bytecode ● lib → Librerías nativas ● Assets → Otros archivos que pueda necesitar la app, librerías adicionales
  16. 16. Entendamos los puntos de entrada ● Lanzar actividad ● Servicios ● “Receivers” ● “Info Providers” ● Subclases ● Componentes exportados
  17. 17. Tasks by category M1-Improper Platform Usage -Manifest analysis -Permissions analysis M2-Insecure Data Storage -Look for insecure logs created by the app -Use Introspy-Android to verify logs(adb) -Verify the storage of sensitive information on the mobile phone like databases or passwords M3-Insecure Communication -Get the list of WEB APIs and urls used by the application -Check that the URLS use SSL encryption -Check if attacks can be made "Man in the middle" M4-Insecure Authentication -Identify weakness in session management -Identify the problems that involve compromise of user tokens M5-Insufficient Cryptography -Identify insecure cryptographic algorithms used by the application (like md5) M6-Insecure Authorization -Identify if access to an unauthorized resource is obtained -Use drozer to see if activities can be launched
  18. 18. Tasks by category M7-Poor Code Quality -Identify a buffer overflow -Identify vulnerabilities of format strings -Try to find code vulnerabilities with drozer M8-Code Tampering -Identify the possibility of changing data and code when the application is installed, how to replace the system APIs or resources of the application for own benefit -Identify the possibility of installing a back door on the application and return to sign it with tools like FatTheRat M9-Reverse Engineering -Statical automated Analysis with Mobile Security Framework MobSF -Analysis and validation of vulnerabilities with Mobile Security Framework MobSF M10-Extraneous Functionality -Identify backdoors in the application -Identify the possibility of disabling 2-step authentication -Identify controls that are taken from development to production
  19. 19. https://drive.google.com/file/d/14-9wzSUgaqtUYLb9ng90Ub9BGYH9SAa 6/view?usp=sharing https://drive.google.com/file/d/17C6k50qXIElINAXaNKtjYaCrYOO9M2xf/view?usp=s haring

×