* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
¡Así es, es posible secuestrarlo! Crea una biblioteca que **ejecute algún código arbitrario y exporte las mismas funcionalidades** que la biblioteca legítima al reexportarla. Y recuerda compilarla con las versiones esperadas:
Puedes encontrar un buen artículo sobre cómo aprovechar esta vulnerabilidad para abusar de los permisos de la cámara de Telegram en [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
Si planeas intentar inyectar bibliotecas en binarios inesperados, puedes verificar los mensajes de eventos para saber cuándo se carga la biblioteca dentro de un proceso (en este caso, elimina el printf y la ejecución de `/bin/bash`).
The `__RESTRICT` section is a segment in macOS that is used to restrict the loading of dynamic libraries. It is designed to prevent the hijacking of the `dyld` dynamic linker, which can be exploited to escalate privileges on a system.
La sección `__RESTRICT` es un segmento en macOS que se utiliza para restringir la carga de bibliotecas dinámicas. Está diseñada para evitar el secuestro del enlazador dinámico `dyld`, que puede ser explotado para escalar privilegios en un sistema.
### Dyld Hijacking and `dyld_insert_libraries`
Dyld hijacking is a technique used to inject malicious code into a running process by manipulating the dynamic linker `dyld`. By exploiting vulnerabilities in the way `dyld` searches for and loads dynamic libraries, an attacker can execute arbitrary code with the privileges of the targeted process.
Dyld hijacking is particularly effective when combined with the `dyld_insert_libraries` environment variable. This variable allows the injection of additional dynamic libraries into a process at runtime. By setting `dyld_insert_libraries` to a malicious library, an attacker can force the target process to load and execute their code.
### Securing against Dyld Hijacking
To secure against Dyld hijacking and the abuse of `dyld_insert_libraries`, it is recommended to use the `__RESTRICT` section in your macOS applications. By including this section in your binary, you can prevent the dynamic linker from loading any libraries specified in the `dyld_insert_libraries` environment variable.
To add the `__RESTRICT` section to your binary, you can use the `ld` linker with the `-sectcreate` flag. For example:
This command creates the `__RESTRICT` section with the `__restrict` segment, effectively blocking the loading of libraries specified in `dyld_insert_libraries`.
### Conclusion
The `__RESTRICT` section in macOS provides a way to protect against Dyld hijacking and the abuse of `dyld_insert_libraries`. By including this section in your binary, you can enhance the security of your macOS applications and prevent privilege escalation attacks.
DYLD_INSERT_LIBRARIES=inject.dylib ./hello-signed #Will throw an error because signature of binary and library aren't signed by same cert (signs must be from a valid Apple-signed developer certificate)
# Sign it
## If the signature is from an unverified developer the injection will still work
Ten en cuenta que incluso si hay binarios firmados con la bandera **`0x0(none)`**, pueden obtener la bandera **`CS_RESTRICT`** dinámicamente cuando se ejecutan y, por lo tanto, esta técnica no funcionará en ellos.
Puedes verificar si un proceso tiene esta bandera con (obtén [**csops aquí**](https://github.com/axelexic/CSOps)): 
```bash
csops -status <pid>
```
y luego verifica si la bandera 0x800 está habilitada.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).