mundo hacker academy 8 noviembre 2019 · 1. android application (apk) • un archivo comprimido •...

66
Mundo Hacker Academy 8 noviembre 2019

Upload: others

Post on 20-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

Mundo Hacker Academy 8 noviembre 2019

Page 2: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

INSTRUCTOR

Simón Roses Femerling

•  Founder & CEO, VULNEX www.vulnex.com •  Blog: www.simonroses.com

•  Twitter: @simonroses | @vulnexsl

•  Former Microsoft, PwC, @Stake

•  US DARPA Cyber Fast Track award on software security project

•  Black Hat, DEFCON, RSA, HITB, OWASP, SOURCE, AppSec, DeepSec, TECHNET

•  CISSP, CSSLP, CEH

Page 3: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

GRACIAS

•  Organización, sponsors y tu

Page 4: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

OBJETIVOS DEL TALLER

•  Introducción Android APK

•  Herramientas de ingeniería inversa

•  Casos reales: Apps inseguras y malware

Page 5: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

AGENDA

1.   ¿QuéesunAPK?2.   OWASPMobileTop103.   Herramientasingenieríainversa4.   Truquitos5.   Recursos

Page 6: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones
Page 7: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

1. ANDROID APPLICATION (APK)

•  Un archivo comprimido

•  Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones externas)

•  Múltiples puntos de entrada: actividad, servicios, “intents”, proveedores de contenido, etc.

•  Un APK tiene que estar firmado para ejecutarse en el teléfono pero: –  No requiere estar firmado por una CA –  Clave propiedad del desarrollador –  Puedes firmar con un certificado de depuración (“debug”)

•  Aplicaciones almacenadas en la carpeta /data/data/<app>,y solo son accesibles por su ID de usuario e ID de grupo

Page 8: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

1. APK: FICHEROS Y DIRECTORIOS

•  AndroidManifest.xml: componentes de la aplicación (actividades, servicios, difusión, receptores y proveedores de contenido) y permisos.

•  Directorio META-INF/: –  MANIFEST.MF: archivo de manifiesto –  CERT.RSA: Certificado de solicitud –  CERT.SF: Lista de recursos y resumen SH1 de las líneas correspondientes en

MANIFEST.MF

•  Lib/ directorio: código compilado –  armeabi: código ARM compilado –  armeabi-v7a: código ARMv7 compilado –  x86: código compilado x86 –  mips: código MIPS compilado

•  res/: recursos no compilados en resources.arsc •  assets/: evaluaciones de aplicaciones •  Classes.dex: clases compiladas en formato dex para DALVIK •  Resources.arsc: recursos precompilados, como XML binario

Page 9: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

1. COMPONENTES DE UNA APLICACION

•  Proveedor de contenido: los proveedores de contenido son la interfaz estándar que conecta los datos en un proceso con el código que se ejecuta en otro proceso. Gestión de datos.

•  Actividad: Componente de aplicación que proporciona una pantalla con la cual los usuarios pueden interactuar para hacer algo. Cada actividad tiene una ventana en la cual dibujar su interfaz de usuario.

•  Servicios: componente de aplicación que puede realizar operaciones de larga duración en segundo plano y no proporciona una interfaz de usuario.

•  Broadcast Receiver: componente de aplicación que responde a anuncios de difusión en todo el sistema.

Page 10: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

1. DESARROLLO VS INGENIERÍA INVERSA

Java o Kotlin

DEX Bytecode

DEX Bytecode SMALI Java

Decompilado

DESARROLLO

Ingeniería Inversa

Page 11: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones
Page 12: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. OWASP MOBILE 10 (2016)

• Uso inapropiado de la plataforma M1 •  Almacenamiento inseguro de datos M2 •  Comunicación insegura M3 •  Autenticación insegura M4 •  Criptografía insuficiente M5 •  Autorización insegura M6 •  Calidad del código del cliente M7 • Manipulación de código M8 •  Ingeniería inversa M9 •  Funcionalidad extraña M10

Page 13: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M1 – USO INAPROPIADO DE LA PLATAFORMA •  Uso indebido de una función de la plataforma o no usar los controles

de seguridad de la plataforma. Puede incluir intentos de Android, permisos de plataforma, uso indebido de TouchID, el llavero o algún otro control de seguridad que sea parte del sistema operativo móvil.

Page 14: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M2 – ALMACENAMIENTO INSEGURO DE DATOS •  Vulnerabilidades que filtran información personal y brindan acceso a

los atacantes.

Page 15: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M2 – ALMACENAMIENTO INSEGURO DE DATOS

Page 16: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M2 – ALMACENAMIENTO INSEGURO DE DATOS

Page 17: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M2 – ALMACENAMIENTO INSEGURO DE DATOS •  STRAVA Privacy leak

https://www.vox.com/technology/2018/2/1/16945120/strava-data-tracking-privacy-military-bases

Page 18: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M3 – COMUNICACIÓN INSEGURA

•  Las comunicaciones se envían en texto claro u otros métodos inseguros.

Page 19: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M4 – AUTENTICACIÓN INSEGURA

•  Los atacantes que explotan las vulnerabilidades de autenticación generalmente lo hacen a través de ataques automáticos que utilizan herramientas disponibles o personalizadas.

Page 20: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M3 – AUTENTICACIÓN INSEGURA

•  Ola App ($1.1B inversión)

•  Todas las llamadas API a través de HTTP

•  Sin token o cifrado OAuth para proteger la API

•  https://thenextweb.com/insider/2015/03/23/how-i-hacked-indias-biggest-startup/

Page 21: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M5 – CRIPTOGRAFÍA INSUFICIENTE

•  El código aplica la criptografía a un activo de información confidencial. Sin embargo, la criptografía es insuficiente de alguna manera. Tenga en cuenta que todo lo relacionado con TLS o SSL va en M3. Además, si la aplicación no puede utilizar la criptografía cuando debería, eso probablemente pertenezca a M2. Esta categoría es para problemas donde se intentó la criptografía, pero no se realizó correctamente.

Page 22: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M5 – CRIPTOGRAFÍA INSUFICIENTE

•  Dos categorías: –  Implementaciones rotas usando bibliotecas criptográficas fuertes –  Implementaciones de cifrado personalizadas y fáciles de derrotar

•  La codificación NO es encriptación

•  La ofuscación NO es encriptación

•  La serialización NO es encriptación

Page 23: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M5 – CRIPTOGRAFÍA INSUFICIENTE

Page 24: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M5 – CRIPTOGRAFÍA INSUFICIENTE

Page 25: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M5 – CRIPTOGRAFÍA INSUFICIENTE

•  https://crackstation.net/

•  https://hashkiller.co.uk/Cracker/MD5

•  https://hashkiller.co.uk/

•  https://md5decrypt.net/en/

Page 26: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M6 – AUTORIZACIÓN INSEGURA

•  Fallo de un servidor para hacer cumplir adecuadamente la identidad y los permisos emitidos por la aplicación.

Page 27: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M7 – CALIDAD DEL CÓDIGO DEL CLIENTE

•  Riesgos que provienen de vulnerabilidades como desbordamientos de búfer, cadenas de formato y otros errores a nivel de código donde la solución es reescribir algún código que se ejecuta en el dispositivo móvil.

Page 28: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M7 – CALIDAD DEL CÓDIGO DEL CLIENTE

Page 29: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M7 – CALIDAD DEL CÓDIGO DEL CLIENTE

•  Vulnerabilidad AppLovin SDK (+200 millones dispositivos) https://blog.applovin.com/applovin-security-notice/

Page 30: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M8 – MANIPULACIÓN DE CÓDIGO

•  Los atacantes manipulan o instalan una puerta trasera en una aplicación, la vuelven a firmar y publican la versión maliciosa en los mercados de aplicaciones de terceros.

Page 31: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M8 – MANIPULACIÓN DE CÓDIGO

•  Pokemon Go (Versión de malware dentro de los 3 días posteriores al lanzamiento inicial en Google Play Store, 500.000 descargas) https://www.kaspersky.com/blog/pokemon-go-malware/12953/

Page 32: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M9 – INGENIERÍA INVERSA

•  Análisis del binario para determinar su código fuente, bibliotecas, algoritmos y otros activos.

Page 33: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M9 – INGENIERÍA INVERSA

Page 34: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M9 – INGENIERÍA INVERSA

•  Tinder: revertir la aplicación y volver a compilar para que no tuvieran que pagar por contenido premium https://www.forbes.com/sites/thomasbrewster/2016/02/09/tinder-bad-security-design/#669e13d6dc34

Page 35: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M10 – FUNCIONALIDAD EXTRAÑA

•  A menudo, los desarrolladores incluyen funcionalidad oculta de puerta trasera u otros controles de seguridad de desarrollo interno que no están destinados a ser lanzados a un entorno de producción.

Page 36: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

2. M10 – EXTRANEOUS FUNCTIONALITY

•  MediaTek Processor Debug Tool https://thehackernews.com/2016/02/mediatek-hacking-mobile.html

Page 37: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones
Page 38: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. ADB KUNGFU

•  ADB (Android Debug Bridge): herramienta de línea de comandos que le permite comunicarse con una instancia de emulador o un dispositivo con Android conectado.

–  Push: Copia un archivo especificado de su computadora de desarrollo a una instancia de emulador / dispositivo.

–  Pull: copia un archivo especificado de una instancia de emulador / dispositivo a su computadora de desarrollo.

–  Instalar: empuja una aplicación de Android (especificada como una ruta completa a un archivo .apk) a un emulador / dispositivo.

–  Reenviar: reenvía las conexiones de socket desde un puerto local especificado a un puerto remoto especificado en la instancia del emulador / dispositivo.

–  Shell: inicia un shell remoto en la instancia del emulador / dispositivo de destino.

–  Devices: imprime una lista de todas las instancias de emulador / dispositivo adjuntas.

Page 39: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. ADB EJEMPLOS

•  $ adb devices List of devices attached emulator-5554 device

•  $ adb –s emulator-5554 install myapp.apk

•  $ adb forward tcp:6100 tcp:7100

•  $ adb shell

•  $ adb push myfile.txt /sdcard/myfile.txt

Page 40: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. APKTOOL - 1

•  Herramienta de ingeniería inversa para aplicaciones Android. Puede decodificar recursos de forma casi original y reconstruirlos después de hacer algunas modificaciones.

•  Sigue mejorando •  https://ibotpeaches.github.io/Apktool/

Page 41: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. APKTOOL - 2

Page 42: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. APKTOOL - 3

Page 43: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. JDAX - 1

•  Descompilador DEX a Java

•  Línea de comandos y herramientas GUI para producir código fuente Java a partir de archivos Android DEX y APK

•  https://github.com/skylot/jadx

Page 44: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. JDAX - 2

Page 45: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. JDAX - 3

Page 46: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. APK SIGN - 1

•  Firma automáticamente un APK con el certificado de prueba de Android.

•  https://github.com/appium/sign

Page 47: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. APK SIGN - 2

Page 48: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 1

•  Inyecta JavaScript para explorar aplicaciones nativas en Windows, macOS, Linux, iOS, Android y QNX.

•  https://www.frida.re/

•  $ sudo pip install frida-tools

Page 49: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 2

Page 50: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 3

Page 51: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 4

Page 52: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 5

Page 53: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

3. FRIDA - 6

Page 54: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones
Page 55: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. ADB LOGCAT

•  Ver logs

•  $ adb logcat

•  O •  $ adb shell •  > logcat

Page 56: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. CAPTURA DE TRÁFICO - 1

•  El emulador incluye tcpdump

•  Crea un WIFI AP y conecta al dispositivo para capturar el trafico –  Wifi pineapple –  Raspberry pi

•  Configurar proxy -> Settings -> More -> Mobile Networks -> Access Point Names -> <operator> –  Proxy –  Port –  Username / password: leave blank

•  Para tráfico HTTPS, instalar certificado –  Copiar el certificado a la SD o bajar por navegador. Instalarlo desde settings.

Page 57: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. CAPTURA DE TRÁFICO - 2

Page 58: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. CAPTURA DE TRÁFICO - 3

Page 59: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. TCPDUMP I

•  https://www.androidtcpdump.com/

•  Los emuladores Android incluyen tcpdump /system/xbin/tcpdump

Page 60: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. TCPDUMP II

•  $ adb root •  $ adb remount •  $ adb push ./tcpdump /system/xbin/tcpdump O •  $ adb push ./tcpdump /scard/tcpdump •  $ adb shell •  # tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap •  $ adb pull /sdcard/dump.cap .

Page 61: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. TCPDUMP III

•  $ telnet localhost 5554 •  > network capture start emulator.cap •  > network capture stop

Page 62: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

4. TCPDUMP IV

•  $ emulator -avd myavd -verbose –tcpdump test.cap •  $ wiresshark test.cap

Page 63: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones
Page 64: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

5. LINKS

•  Android App Reverse Engineering 101 https://maddiestone.github.io/AndroidAppRE/

•  ANDROID APPLICATIONS REVERSING 101 https://www.evilsocket.net/2017/04/27/Android-Applications-Reversing-101/

•  Awesome Frida https://github.com/dweinstein/awesome-frida

•  The Mobile Security Testing Guide (MSTG) https://github.com/OWASP/owasp-mstg

Page 65: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

5. BUG BOUNTY

•  Android Security Rewards Program Rules https://www.google.com/about/appsecurity/android-rewards/

•  Google Play Security Reward Program (hackerone)

https://hackerone.com/googleplay

Page 66: Mundo Hacker Academy 8 noviembre 2019 · 1. ANDROID APPLICATION (APK) • Un archivo comprimido • Escrito en Java y XML, pero puede incluir código C nativo (bibliotecas y aplicaciones

5. Q&A

•  Gracias!

•  Cerveza bienvenida!!!

•  @simonroses •  @vulnexsl

•  www.vulnex.com •  www.simonroses.com