hacktricks/src/mobile-pentesting/ios-pentesting-checklist.md

7.0 KiB

iOS Pentesting Checklist

{{#include ../banners/hacktricks-training.md}}

Preparación

Almacenamiento de Datos

  • Plist files pueden ser utilizados para almacenar información sensible.
  • Core Data (base de datos SQLite) puede almacenar información sensible.
  • YapDatabases (base de datos SQLite) puede almacenar información sensible.
  • Firebase mala configuración.
  • Realm databases pueden almacenar información sensible.
  • Couchbase Lite databases pueden almacenar información sensible.
  • Binary cookies pueden almacenar información sensible.
  • Cache data puede almacenar información sensible.
  • Automatic snapshots pueden guardar información visual sensible.
  • Keychain se utiliza generalmente para almacenar información sensible que puede quedar al revender el teléfono.
  • En resumen, solo verifica si hay información sensible guardada por la aplicación en el sistema de archivos.

Teclados

Registros

Copias de Seguridad

  • Backups pueden ser utilizados para acceder a la información sensible guardada en el sistema de archivos (verifica el punto inicial de esta lista de verificación).
  • Además, backups pueden ser utilizados para modificar algunas configuraciones de la aplicación, luego restaurar la copia de seguridad en el teléfono, y como la configuración modificada es cargada, alguna (seguridad) funcionalidad puede ser eludida.

Memoria de Aplicaciones

Criptografía Rota

Autenticación Local

Exposición de Funcionalidad Sensible a Través de IPC

  • Custom URI Handlers / Deeplinks / Custom Schemes
  • Verifica si la aplicación está registrando algún protocolo/esquema.
  • Verifica si la aplicación está registrando para usar algún protocolo/esquema.
  • Verifica si la aplicación espera recibir algún tipo de información sensible del esquema personalizado que puede ser interceptada por otra aplicación que registre el mismo esquema.
  • Verifica si la aplicación no está verificando y sanitizando la entrada de los usuarios a través del esquema personalizado y alguna vulnerabilidad puede ser explotada.
  • Verifica si la aplicación expone alguna acción sensible que puede ser llamada desde cualquier lugar a través del esquema personalizado.
  • Universal Links
  • Verifica si la aplicación está registrando algún protocolo/esquema universal.
  • Verifica el archivo apple-app-site-association.
  • Verifica si la aplicación no está verificando y sanitizando la entrada de los usuarios a través del esquema personalizado y alguna vulnerabilidad puede ser explotada.
  • Verifica si la aplicación expone alguna acción sensible que puede ser llamada desde cualquier lugar a través del esquema personalizado.
  • UIActivity Sharing
  • Verifica si la aplicación puede recibir UIActivities y si es posible explotar alguna vulnerabilidad con una actividad especialmente diseñada.
  • UIPasteboard
  • Verifica si la aplicación está copiando algo al portapapeles general.
  • Verifica si la aplicación está utilizando los datos del portapapeles general para algo.
  • Monitorea el portapapeles para ver si se copia algún dato sensible.
  • App Extensions
  • ¿La aplicación está utilizando alguna extensión?
  • WebViews
  • Verifica qué tipo de webviews se están utilizando.
  • Verifica el estado de javaScriptEnabled, JavaScriptCanOpenWindowsAutomatically, hasOnlySecureContent.
  • Verifica si el webview puede acceder a archivos locales con el protocolo file:// (allowFileAccessFromFileURLs, allowUniversalAccessFromFileURLs).
  • Verifica si Javascript puede acceder a métodos nativos (JSContext, postMessage).

Comunicación de Red

Varios

{{#include ../banners/hacktricks-training.md}}