Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Los enlaces universales ofrecen una **experiencia de redirección** fluida a los usuarios al abrir directamente el contenido en la aplicación, evitando la necesidad de redirección a Safari. Estos enlaces son **únicos** y seguros, ya que no pueden ser reclamados por otras aplicaciones. Esto se asegura al alojar un archivo JSON `apple-app-site-association` en el directorio raíz del sitio web, estableciendo un enlace verificable entre el sitio web y la aplicación. En los casos en que la aplicación no está instalada, Safari tomará el control y dirigirá al usuario a la página web, manteniendo la presencia de la aplicación.
Para los pentesters, el archivo `apple-app-site-association` es de particular interés, ya que puede revelar **rutas sensibles**, potencialmente incluyendo aquellas relacionadas con características no publicadas.
Los desarrolladores habilitan los enlaces universales configurando los **Dominios Asociados** en la pestaña Capacidades de Xcode o inspeccionando el archivo `.entitlements`. Cada dominio está precedido por `applinks:`. Por ejemplo, la configuración de Telegram podría aparecer de la siguiente manera:
Para obtener información más completa, consulta la [documentación de Apple Developer archivada](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Si trabajas con una aplicación compilada, los derechos pueden ser extraídos como se detalla en [esta guía](extracting-entitlements-from-compiled-application.md).
El archivo `apple-app-site-association` debe ser recuperado del servidor utilizando los dominios especificados en los derechos. Asegúrate de que el archivo sea accesible a través de HTTPS directamente en `https://<domain>/apple-app-site-association`. Herramientas como el [validador de Apple App Site Association (AASA)](https://branch.io/resources/aasa-validator/) pueden ayudar en este proceso.
La aplicación debe implementar métodos específicos para manejar enlaces universales correctamente. El método principal a buscar es [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Es crucial que el esquema de las URL manejadas sea HTTP o HTTPS, ya que otros no serán soportados.
Cuando un enlace universal abre una aplicación, se pasa un objeto `NSUserActivity` a la aplicación con la URL. Antes de procesar esta URL, es esencial validarla y sanearla para prevenir riesgos de seguridad. Aquí hay un ejemplo en Swift que demuestra el proceso:
Las URL deben ser analizadas y validadas cuidadosamente, especialmente si incluyen parámetros, para protegerse contra posibles suplantaciones o datos mal formados. La API `NSURLComponents` es útil para este propósito, como se demuestra a continuación:
A través de **una configuración y validación diligentes**, los desarrolladores pueden asegurarse de que los enlaces universales mejoren la experiencia del usuario mientras mantienen los estándares de seguridad y privacidad.
* [GetUniversal.link](https://getuniversal.link/): Ayuda a simplificar la prueba y gestión de los Enlaces Universales de tu aplicación y el archivo AASA. Simplemente ingresa tu dominio para verificar la integridad del archivo AASA o utiliza el panel personalizado para probar fácilmente el comportamiento de los enlaces. Esta herramienta también te ayuda a determinar cuándo Apple indexará nuevamente tu archivo AASA.
Learn & practice AWS Hacking:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Learn & practice GCP Hacking: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.