# Abuso de Procesos en macOS
Aprende hacking en AWS de cero a h茅roe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCI脫N**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colecci贸n de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sigue** a **Twitter** 馃惁 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Abuso de Procesos en MacOS
MacOS, como cualquier otro sistema operativo, ofrece una variedad de m茅todos y mecanismos para que los **procesos interact煤en, se comuniquen y compartan datos**. Aunque estas t茅cnicas son esenciales para el funcionamiento eficiente del sistema, tambi茅n pueden ser abusadas por actores de amenazas para **realizar actividades maliciosas**.
### Inyecci贸n de Bibliotecas
La Inyecci贸n de Bibliotecas es una t茅cnica en la que un atacante **fuerza 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 %}
### Gancho de Funciones
El Gancho 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 o incluso tomar 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) se refiere a diferentes m茅todos por los cuales procesos separados **comparten e intercambian datos**. Aunque el IPC es fundamental para muchas aplicaciones leg铆timas, tambi茅n puede ser mal utilizado 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 la interfaz de usuario (UI)** y sus interacciones dentro de una aplicaci贸n. Sin embargo, pueden **ejecutar comandos arbitrarios** y **Gatekeeper no detiene** la ejecuci贸n de una aplicaci贸n ya ejecutada si un **archivo NIB es modificado**. Por lo tanto, podr铆an ser utilizados 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 Ruby
Tambi茅n es posible abusar de las variables de entorno de Ruby para hacer que scripts arbitrarios ejecuten c贸digo arbitrario:
{% content-ref url="macos-ruby-applications-injection.md" %}
[macos-ruby-applications-injection.md](macos-ruby-applications-injection.md)
{% endcontent-ref %}
### Inyecci贸n en Python
Si la variable de entorno **`PYTHONINSPECT`** est谩 establecida, el proceso de Python pasar谩 a una CLI de Python una vez que haya terminado. Tambi茅n es posible usar **`PYTHONSTARTUP`** para indicar un script de Python que se ejecute al inicio de una sesi贸n interactiva.\
Sin embargo, ten en cuenta que el script **`PYTHONSTARTUP`** no se ejecutar谩 cuando **`PYTHONINSPECT`** cree la sesi贸n interactiva.
Otras variables de entorno como **`PYTHONPATH`** y **`PYTHONHOME`** tambi茅n podr铆an 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 est谩n ejecutando usando un Python embebido.
{% hint style="danger" %}
En general, no encontr茅 una manera 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 con permisos de escritura** 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 <
Aprende hacking en AWS de cero a h茅roe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
* Si quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** revisa los [**PLANES DE SUSCRIPCI脫N**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colecci贸n de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **脷nete al** 馃挰 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **s铆gueme** en **Twitter** 馃惁 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de Github** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).