+ All Categories
Home > Documents > Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile...

Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile...

Date post: 26-Apr-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
98
cccccccccccccccccc CyberCamp.es Pentesting de Aplicaciones iOS Miguel Á. Arroyo
Transcript
Page 1: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

cccccccccccccccccc

CyberCamp.es

Pentesting de

Aplicaciones iOS

Miguel Á. Arroyo

Page 2: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

# whoami

2

# IS Auditor – SVT Cloud&Security Services

# Hack&Beers founder

# Hacking Solidario co-founder

# Twitter: @miguel_arroyo76

# Blog: www.hacking-etico.com

Page 3: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

3

# echo /etc/crontab

# Introducción a la seguridad en iOS

# OWASP Mobile Security Project

# Top 10 Mobile Risks & Top 10 Mobile Controls

# Guías para desarrolladores y auditores

# Arsenal de herramientas para auditores

# Preparación de entorno de trabajo

# A tener en cuenta antes de empezar

# Application Mapping

# Client Attacks

# Network Attacks

# Server Attacks

Page 4: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

4

Introducción a la seguridad en iOS

Page 5: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

5

iOS Security Guide de Apple

Page 6: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

6

Diagrama de arquitectura de seguridad en iOS

Page 7: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

7

Secure Boot Chain

Procesos de arranque en iOS

BootROM

LLB iBootiOS

Kernel

Page 8: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

8

Autorización de software de sistema

Prevención de “downgrade”

Page 9: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

9

Secure update process

Seguridad en el proceso de actualización

• Boot info

• Kernel info

• Unique ID (ECID)

• Nonce

Device > Apple Server

• Actualizaciones disponibles

• Devuelve datos firmados

Apple Server > Device • Cadena de

arranque comprueba firma de software

Device

Page 10: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

10

Secure Enclave

Co-procesador de cifrado: Gestión Touch ID y Credenciales

Page 11: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

11

Touch ID

Autenticación biométrica con huella dactilar

Page 12: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

12

App Code Signing

Firma de aplicaciones: Autenticidad e integridad de una App

Page 13: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

13

Runtime process security

Seguridad en tiempo de ejecución: sandboxing

Page 14: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

14

Runtime process security

ASLR – DEP – Stack Canaries

Page 15: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

15

Network security

Seguridad en las comunicaciones

• Soporte de TLS (1.0, 1.1 y 1.2).

• SSL desactivado por defecto.

• Ni siquiera se permiten comunicaciones SSLv3 en Apps basadas

en WebKit (Safari).

• A partir de iOS 9, todas las Apps desarrolladas se integran con

estas políticas de seguridad.

• Un fallo en el certificado del servidor, derivará en un fallo de

conexión.

Page 16: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

16

OWASP Mobile Security Project

Page 17: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

17

OWASP – Open Web Application Security Project

Proyecto abierto dedicado a determinar y combatir

las causas que hacen que el software sea inseguro.

Page 18: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

18

OWASP

¿A quién va dirigido?

Objetivos

Aplicable en…

Desarrollo Seguridad

Ayuda a…

Desarrollo seguro de Apps

Evaluar la seguridad de

Apps

Page 19: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

19

OWASP

Seguridad desde el diseño

Page 20: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

20

OWASP

Mobile Security Project

Page 21: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

21

Top 10 Mobile Risks & Controls

Page 22: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

22

OWASP Mobile Security Project

Top 10 Mobile Risks

Page 23: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

23

OWASP Mobile Security Project

Definición de controles: OWASP + enisa

Page 24: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

24

OWASP Mobile Security Project

Top 10 Mobile Controls

Page 25: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

25

Guías para desarrolladores y auditores

Page 26: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

26

OWASP Mobile Security Project

Guías

Developer Cheat Sheet

Secure Mobile Development

App Security Testing Cheat Sheet

Security Testing Guide

Page 27: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

27

OWASP Mobile Security Project

Developer Cheat Sheet

Page 28: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

28

OWASP Mobile Security Project

Security Testing Guide

Page 29: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

29

OWASP Mobile Security Project

Centrándonos en iOS…

Page 30: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

30

OWASP Mobile Security Project

Auditor Cheat Sheet

Page 31: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

31

Arsenal de herramientas para auditores

Page 32: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

32

OWASP Mobile Security Project

Herramientas

Page 33: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

33

OWASP Mobile Security Project

Radare2 – www.radare.org

Page 34: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

34

Preparación del entorno de trabajo

Page 35: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

35

Entorno de trabajo

Romper la cadena de seguridad: Jailbreak

Page 36: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

36

Ejemplo de herramienta para Jailbreak

Pangu Team

Page 37: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

37

Cydia

El AppStore “alternativo”

Page 38: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

38

Acceso por SSH al dispositivo iOS

¡Ojo! Credenciales por defecto: root / alpine

Page 39: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

39

Gestión de paquetes con APT

APT 0.7 Strict

Page 40: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

40

Otras herramientas

Herramientas necesarias

• nmap

• sqlite3

• plutil

• clutch

• wget

• netstat

• file

• top

• ps

• unzip

• curl

• find

• tcpdump

• nano

• …

Page 41: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

41

Aplicaciones vulnerables para probar

Damn Vulnerable Web Application

Page 42: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

42

Aplicación vulnerable para probar

Damn Vulnerable iOS Application

damnvulnerableiosapp.com

Page 43: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

43

A tener en cuenta antes de empezar

Page 44: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

44

Metodología

La importancia de seguir una metodología

Hace referencia al camino o al conjunto de

procedimientos racionales utilizados para alcanzar

el objetivo o la gama de objetivos que rige una

investigación científica, una exposición doctrinal o

tareas que requieran habilidades, conocimientos o

cuidados específicos.

Page 45: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

45

Controles de seguridad

Objetivo: evaluar su presencia, eficacia y eficiencia

91 controles en total

Por dónde empezar: iOS App Security Testing Cheat Sheet

¿Hay que evaluarlos todos? ~70 comunes a todas plataformas

Page 46: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

46

Top 10 de riesgos y controles

Siempre tenerlos muy presentes

Page 47: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

47

Por dónde empezar

Echamos manos a nuestra “chuleta”

Page 48: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

48

Mapeo de la aplicación

Page 49: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

49

Mapeo de la aplicación

Mapeo de plataforma y arquitectura de la aplicación

Page 50: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

50

Mapeando la aplicación

Objetivos de esta fase# Entender funcionamiento de la app a nivel usuario

# Entender su lógica, usuarios y privilegios

# Cuál es el flujo de la comunicación entre objetos

# Cuándo se produce una comunicación con el servidor

# Atención especial a eventos de la aplicación

# Infraestructura de la aplicación

Page 51: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

51

Ataques de red

Page 52: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

52

Análisis de tráfico de red

Objetivo: capturar información sensible y detectar

posibles vulnerabilidades en las comunicaciones

Page 53: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

53

Análisis de tráfico de red

Diferenciar entre tráfico generado durante la instalación

y el tráfico que se genera mientras se usa.

Importante no limitarlo solo a http y https

Uso de proxy web local para captura de tráfico web

Certificado self-signed – Perfil de confianza

Para la captura de tráfico https

Uso de tcpdump para capturar todo el tráfico

Análisis posterior de la captura con Wireshark

Detección de nuevos servidores / servicios

Ampliación de la superficie de ataque

Page 54: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

54

Análisis de tráfico con proxy web

OWASP Zap / Burp Suite / Webscarab

Page 55: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

55

Análisis de tráfico con proxy web

https: Certificado SSL + Perfil de confianza

Page 56: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

56

Ataques del lado servidor

Page 57: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

57

Ataques del lado servidor

Objetivo: analizar puertos abiertos y servicios

publicados así como posibles vulnerabilidades tipo web

Page 58: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

58

Ataques del lado servidor

Basada en la información obtenida durante el mapeo

de la aplicación y la captura de tráfico.

Análisis de puertos abiertos y servicios publicados

TCP

UDP

Análisis de posibles vulnerabilidades existentes

Análisis de existencia de IDS/IPS/WAF

Uso de proxy web para análisis de tráfico web en

busca de posibles vulnerabilidades (SQLi, XSS,

CSRF, …)

Page 59: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

59

Análisis de tráfico con proxy web

Ejemplo: Vulnerabilidad Cross Site Request Forgery

Page 60: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

60

Ataques de lado cliente

Page 61: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

61

Ataques de lado cliente

Análisis de binario, sistema de ficheros y runtime

Page 62: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

62

Análisis del sistema de ficheros

Usuarios: root y mobile

Page 63: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

63

Jerarquía de sistema de ficheros

Estándar FHS (Filesystem Hierarchy Standard)

Page 64: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

64

Directorio /Applications

Todas las aplicaciones pre-instaladas (y Cydia)

Page 65: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

65

Directorio /var/containers/Bundle/Applications

Apps instaladas con App Store, Cydia e IPA Installer

Page 66: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

66

Estructura común de directorios de una App

/AppName.app iTunesArtwork iTunesMetadata.plist

Dentro de /AppName.app

Binario, ficheros de propiedades, bases de datos…

Page 67: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

67

Bases de datos en aplicaciones

Posible existencia de bases de datos locales

Posibles extensiones: .db .sqlite .sql

Uso de find para localización

Page 68: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

68

Acceso a base de datos de MobileNotes

App pre-instalada para escribir notas en iOS

Ejemplo de acceso a las notas del dispositivo

Page 69: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

69

Ficheros plist: Lista de propiedades

Tipo de fichero: Apple binary property list• Los ficheros plist son binarios y no pueden ser leídos como texto.

• La utilidad plutil nos permite leer estos ficheros con formato xml.

• Los ficheros plist pueden ser extraídos de dispositivos sin jailbreak.

• Con iExplorer o extrayendo del backup de iTunes.

Page 70: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

70

Ficheros plist: Lista de propiedades

Tipo de fichero: Apple binary property list

Page 71: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

71

Ataques de lado cliente

Análisis de binario, sistema de ficheros y runtime

Page 72: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

72

Análisis del binario

Información genérica del binario

Información de sub-binarios y arquitecturas

Volcado de clases

Análisis de símbolos

Análisis de dependencias

Análisis de strings

Comprobación de cifrado de la aplicación

Comprobación de activación de ASLR (PIE)

Desensamblado

Depuración

Page 73: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

73

Información genérica del binario

Herramienta: rabin2 (Radare2 Framework)

Page 74: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

74

Información de sub-binarios y arquitecturas

Herramienta: otool

Page 75: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

75

Listado de símbolos del binario

Herramienta: Rabin2 (Radare2 Framework)

# rabin2 –s AppBinary

Page 76: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

76

Listado de strings del binario

Herramienta: Rabin2 (Radare2 Framework)

# rabin2 –z AppBinary

Page 77: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

77

Depuración, desensamblado y parcheo

Herramientas: Hopper y Radare2

Page 78: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

78

Ataques de lado cliente

Análisis de binario, sistema de ficheros y runtime

Page 79: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

79

Runtime: Análisis en tiempo de ejecución

Aprovechar información obtenida de símbolos

Aprovechar información obtenida de strings

Realizar volcado de clases

Analizar métodos, funciones, argumentos…

Ejecutar la aplicación en dispositivo

Hacer un “hook” (engancharnos) al proceso

Invocar métodos en tiempo de ejecución

Method Swizzle: cambiar comportamiento de un

método / función en tiempo de ejecución

Page 80: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

80

Volcado de clases de una aplicación

Importante: Apps Pre-Instaladas vs Otras Apps

Otras Apps: App Store / Cydia / IPA Installer

Apps Pre-Instaladas: no están cifradas

No precisan de descifrado previo para volcado de clases

Otras Apps: pueden estar cifradas

Precisan de descifrado previo para volcado de clases

Herramienta para descifrado: Clutch

Herramienta para volcado: class-dump

Page 81: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

81

Volcado de clases con class-dump

Con aplicaciones pre-instaladas (sin cifrar)

Volcado instantáneo

Page 82: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

82

Volcado de clases con class-dump

Con aplicaciones no pre-instaladas

Las aplicaciones del AppStore se firman y se cifran

Con class-dump obtendríamos volcado ilegible

Necesidad de descifrar previamente el binario

Opción 1: Descifrar aplicación completa

Obtener un fichero .ipa (aplicación empaquetada)

Descomprimir el fichero .ipa con binario descifrado

Opción 2: Descifrar solo el binario

Hacer volcado con class-dump

Page 83: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

83

Volcado de clases con class-dump

Ejemplo de volcado de aplicación cifrada

Page 84: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

84

Descifrado de una aplicación

Herramienta: Clutch

Lista de apps y descifrado de binario

Page 85: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

85

¡Binario descifrado!

Ahora ya podemos hacer el volcado…

¿O no?

Page 86: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

86

Class-dump: Problema con fat binaries

Binarios “gordos” que incluyen varios sub-binarios de

distintas arquitecturas para mantener la

compatibilidad (por ejemplo: ARMv7 y ARM64)

Page 87: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

87

Lipo[succión] a un fat binary

Herramienta: Lipo

Objetivo: Extraer un sub-binario

Page 88: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

88

Ahora sí, ya tenemos el volcado.

Ahora vamos a “jugar” ;-)

Page 89: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

89

Soccer Stars

¿Qué es?

Page 90: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

90

Soccer Stars

¿Qué nos interesa?

Page 91: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

91

Soccer Stars: Clases interesantes

UserInfo.h

Page 92: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

92

Soccer Stars: Métodos interesantes

setCoins y setCash

Page 93: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

93

Soccer Stars: Hook y ¡a jugar con métodos!

Herramienta: Cycript

Page 94: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

94

Soccer Stars: Hook y ¡a jugar con métodos!

Herramienta: Cycript

Page 95: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

95

Soccer Stars: Hook y ¡a jugar con métodos!

Herramienta: Cycript

Page 96: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

96

Soccer Stars: Hook y ¡a jugar con métodos!

Herramienta: Cycript

Page 97: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

97

Gratitud: La mejor actitud

Page 98: Pentesting de Aplicaciones iOS Miguel Á. Arroyo · # OWASP Mobile Security Project # Top 10 Mobile Risks & Top 10 Mobile Controls # Guías para desarrolladores y auditores # Arsenal

Gracias por

su atención


Recommended