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

7.4 KiB

Lista de Verificación de Pentesting en iOS


Utiliza Trickest para construir y automatizar flujos de trabajo fácilmente con las herramientas comunitarias más avanzadas del mundo.
¡Accede hoy mismo:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Aprende hacking en AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Preparación

Almacenamiento de Datos

  • Los archivos Plist pueden usarse para almacenar información sensible.
  • Core Data (base de datos SQLite) puede almacenar información sensible.
  • Las YapDatabases (base de datos SQLite) pueden almacenar información sensible.
  • Firebase con configuración incorrecta.
  • Las bases de datos Realm pueden almacenar información sensible.
  • Las bases de datos Couchbase Lite pueden almacenar información sensible.
  • Las cookies binarias pueden almacenar información sensible.
  • Los datos de caché pueden almacenar información sensible.
  • Los snapshots automáticos pueden guardar información visual sensible.
  • El llavero se usa generalmente para almacenar información sensible que puede quedar al vender el teléfono.
  • En resumen, solo verifica la información sensible guardada por la aplicación en el sistema de archivos

Teclados

  • ¿La aplicación permite usar teclados personalizados?
  • Verifica si se guarda información sensible en los archivos de caché de teclados

Registros

  • Verifica si se está registrando información sensible en los registros

Copias de Seguridad

  • Las copias de seguridad pueden usarse 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, las copias de seguridad pueden usarse para modificar algunas configuraciones de la aplicación, luego restaurar la copia de seguridad en el teléfono, y cuando se cargue la configuración modificada se puede burlar alguna (funcionalidad de seguridad)

Memoria de Aplicaciones

  • Verifica si hay información sensible dentro de la memoria de la aplicación

Cifrado Roto

  • Verifica si puedes encontrar contraseñas utilizadas para el cifrado
  • Verifica el uso de algoritmos obsoletos/débiles para enviar/guardar datos sensibles
  • Engancha y monitorea funciones de cifrado

Autenticación Local

  • Si se utiliza una autenticación local en la aplicación, debes verificar cómo funciona la autenticación.
  • Si se está utilizando el Marco de Autenticación Local, podría ser fácilmente burlado
  • Si se está utilizando una función que puede ser burlada dinámicamente, podrías crear un script frida personalizado

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

  • Manejadores de URI personalizados / Deep Links / Esquemas Personalizados
  • 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 interceptado por otra aplicación que registre el mismo esquema
  • Verifica si la aplicación no está verificando y saneando la entrada de usuarios a través del esquema personalizado y alguna vulnerabilidad puede ser explotada
  • Verifica si la aplicación expone alguna acción sensible que pueda ser llamada desde cualquier lugar a través del esquema personalizado
  • Enlaces Universales
  • 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 saneando la entrada de usuarios a través del esquema personalizado y alguna vulnerabilidad puede ser explotada
  • Verifica si la aplicación expone alguna acción sensible que pueda ser llamada desde cualquier lugar a través del esquema personalizado
  • Compartir Actividades UIActivity
  • 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 en el 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
  • Extensiones de Aplicaciones
  • ¿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 la 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

  • Realiza un MitM a la comunicación y busca vulnerabilidades web.
  • Verifica si se está comprobando el nombre de host del certificado
  • Verifica/Burla el Pinning de Certificados

Misceláneo

  • Verifica los mecanismos de parcheo/actualización automática
  • Verifica la presencia de bibliotecas de terceros maliciosas