<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Na imagem anterior é possível observar **como o sandbox será carregado** quando uma aplicação com o entitlement **`com.apple.security.app-sandbox`** é executada.
Então, **`libSystem.B`** chamará várias outras funções até que **`xpc_pipe_routine`** envie os entitlements do aplicativo para **`securityd`**. O securityd verifica se o processo deve ser colocado em quarentena dentro do Sandbox, e se for o caso, ele será colocado em quarentena.\
Finalmente, o sandbox será ativado com uma chamada para **`__sandbox_ms`** que chamará **`__mac_syscall`**.
**Arquivos criados por processos sandboxed** recebem o **atributo de quarentena** para prevenir fugas do sandbox. No entanto, se você conseguir **criar uma pasta `.app` sem o atributo de quarentena** dentro de uma aplicação sandboxed, você poderia fazer o binário do pacote de aplicativos apontar para **`/bin/bash`** e adicionar algumas variáveis de ambiente no **plist** para abusar do comando **`open`** para **iniciar a nova aplicação sem sandbox**.
Portanto, no momento, se você é capaz de criar uma pasta com um nome terminando em **`.app`** sem um atributo de quarentena, você pode escapar do sandbox porque o macOS apenas **verifica** o atributo de **quarentena** na pasta **`.app`** e no **executável principal** (e nós faremos o executável principal apontar para **`/bin/bash`**).
Note que se um pacote .app já foi autorizado a executar (ele tem um xttr de quarentena com a bandeira autorizada a executar), você também poderia abusá-lo... exceto que agora você não pode escrever dentro de pacotes **`.app`** a menos que você tenha algumas permissões TCC privilegiadas (o que você não terá dentro de um sandbox alto).
Nos [**últimos exemplos de bypass do sandbox do Word**](macos-office-sandbox-bypasses.md#word-sandbox-bypass-via-login-items-and-.zshenv) pode-se apreciar como a funcionalidade do comando **`open`** poderia ser abusada para bypassar o sandbox.
Mesmo que uma aplicação seja **destinada a ser sandboxed** (`com.apple.security.app-sandbox`), é possível fazer bypass do sandbox se for **executada a partir de um LaunchAgent** (`~/Library/LaunchAgents`), por exemplo.\
Como explicado [**neste post**](https://www.vicarius.io/vsociety/posts/cve-2023-26818-sandbox-macos-tcc-bypass-w-telegram-using-dylib-injection-part-2-3?q=CVE-2023-26818), se você quiser ganhar persistência com uma aplicação que está sandboxed, você poderia fazê-la ser executada automaticamente como um LaunchAgent e talvez injetar código malicioso via variáveis de ambiente DyLib.
Se um processo sandboxed pode **escrever** em um local onde **mais tarde uma aplicação sem sandbox vai executar o binário**, ele será capaz de **escapar apenas colocando** lá o binário. Um bom exemplo desses tipos de locais são `~/Library/LaunchAgents` ou `/System/Library/LaunchDaemons`.
Para isso, você pode até precisar de **2 passos**: Fazer um processo com um sandbox **mais permissivo** (`file-read*`, `file-write*`) executar seu código, que na verdade escreverá em um local onde será **executado sem sandbox**.
Se a partir do processo sandbox você for capaz de **comprometer outros processos** executando em sandboxes menos restritivos (ou nenhum), você será capaz de escapar para os sandboxes deles:
[**Esta pesquisa**](https://saagarjha.com/blog/2020/05/20/mac-app-store-sandbox-escape/) descobriu 2 maneiras de bypassar o Sandbox. Como o sandbox é aplicado do userland quando a biblioteca **libSystem** é carregada. Se um binário pudesse evitar carregá-la, ele nunca seria sandboxed:
Since the provided text does not contain any content to translate, I cannot provide a translation. If you provide the relevant English text, I will translate it into Portuguese while maintaining the markdown and HTML syntax as requested.
<summary><strong>Aprenda AWS hacking do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).