# Abuso de Procesos en macOS
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿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).
## Abuso de Procesos en macOS macOS, al igual que cualquier otro sistema operativo, proporciona una variedad de métodos y mecanismos para que los **procesos interactúen, se comuniquen y compartan datos**. Si bien estas técnicas son esenciales para el funcionamiento eficiente del sistema, también pueden ser abusadas por actores malintencionados para **realizar actividades maliciosas**. ### Inyección de Bibliotecas La inyección de bibliotecas es una técnica en la que un atacante **obliga a un proceso a cargar una biblioteca maliciosa**. Una vez inyectada, la biblioteca se ejecuta en el contexto del proceso objetivo, proporcionando al atacante los mismos permisos y acceso que el proceso. {% content-ref url="macos-library-injection/" %} [macos-library-injection](macos-library-injection/) {% endcontent-ref %} ### Enganche de Funciones El enganche de funciones implica **interceptar llamadas a funciones** o mensajes dentro de un código de software. Al enganchar funciones, un atacante puede **modificar el comportamiento** de un proceso, observar datos sensibles e incluso obtener control sobre el flujo de ejecución. {% content-ref url="../mac-os-architecture/macos-function-hooking.md" %} [macos-function-hooking.md](../mac-os-architecture/macos-function-hooking.md) {% endcontent-ref %} ### Comunicación entre Procesos La Comunicación entre Procesos (IPC, por sus siglas en inglés) se refiere a diferentes métodos mediante los cuales los procesos separados **comparten e intercambian datos**. Si bien el IPC es fundamental para muchas aplicaciones legítimas, también puede ser utilizado de manera incorrecta para subvertir el aislamiento de procesos, filtrar información sensible o realizar acciones no autorizadas. {% content-ref url="../mac-os-architecture/macos-ipc-inter-process-communication/" %} [macos-ipc-inter-process-communication](../mac-os-architecture/macos-ipc-inter-process-communication/) {% endcontent-ref %} ### Inyección en Aplicaciones Electron Las aplicaciones Electron ejecutadas con variables de entorno específicas podrían ser vulnerables a la inyección de procesos: {% content-ref url="macos-electron-applications-injection.md" %} [macos-electron-applications-injection.md](macos-electron-applications-injection.md) {% endcontent-ref %} ### NIB Sucio Los archivos NIB **definen elementos de interfaz de usuario (UI)** y sus interacciones dentro de una aplicación. Sin embargo, pueden **ejecutar comandos arbitrarios** y **Gatekeeper no impide** que una aplicación ya ejecutada se vuelva a ejecutar si se modifica un archivo NIB. Por lo tanto, podrían utilizarse para hacer que programas arbitrarios ejecuten comandos arbitrarios: {% content-ref url="macos-dirty-nib.md" %} [macos-dirty-nib.md](macos-dirty-nib.md) {% endcontent-ref %} ### Inyección en Aplicaciones Java Es posible abusar de ciertas capacidades de Java (como la variable de entorno **`_JAVA_OPTS`**) para hacer que una aplicación Java ejecute **código/comandos arbitrarios**. {% content-ref url="macos-java-apps-injection.md" %} [macos-java-apps-injection.md](macos-java-apps-injection.md) {% endcontent-ref %} ### Inyección en Aplicaciones .Net Es posible inyectar código en aplicaciones .Net **abusando de la funcionalidad de depuración de .Net** (no protegida por las protecciones de macOS como el endurecimiento en tiempo de ejecución). {% content-ref url="macos-.net-applications-injection.md" %} [macos-.net-applications-injection.md](macos-.net-applications-injection.md) {% endcontent-ref %} ### Inyección en Perl Consulta diferentes opciones para hacer que un script de Perl ejecute código arbitrario en: {% content-ref url="macos-perl-applications-injection.md" %} [macos-perl-applications-injection.md](macos-perl-applications-injection.md) {% endcontent-ref %} ### Inyección en Python Si se establece la variable de entorno **`PYTHONINSPECT`**, el proceso de Python ingresará a una interfaz de línea de comandos de Python una vez que haya finalizado. También es posible utilizar **`PYTHONSTARTUP`** para indicar un script de Python que se ejecute al comienzo de una sesión interactiva.\ Sin embargo, ten en cuenta que el script de **`PYTHONSTARTUP`** no se ejecutará cuando **`PYTHONINSPECT`** cree la sesión interactiva. Otras variables de entorno como **`PYTHONPATH`** y **`PYTHONHOME`** también pueden ser útiles para hacer que un comando de Python ejecute código arbitrario. Ten en cuenta que los ejecutables compilados con **`pyinstaller`** no utilizarán estas variables de entorno incluso si se ejecutan utilizando un Python incrustado. {% hint style="danger" %} En general, no pude encontrar una forma de hacer que Python ejecute código arbitrario abusando de las variables de entorno.\ Sin embargo, la mayoría de las personas instalan Python usando **Homebrew**, que instalará Python en una ubicación **editable** para el usuario administrador predeterminado. Puedes secuestrarlo con algo como: ```bash mv /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.old cat > /opt/homebrew/bin/python3 < ☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * ¿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 de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos. * Obtén el [**merchandising 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).