`, o arquivo `~/.zshenv` seria acionado, efetivamente elevando para root.
#### [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/)
Em [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/) foi descoberto que o mesmo processo **`system_installd`** ainda poderia ser abusado porque estava colocando o **script pós-instalação dentro de uma pasta nomeada aleatoriamente protegida pelo SIP dentro de `/tmp`**. O fato é que **`/tmp` em si não é protegido pelo SIP**, então era possível **montar** uma **imagem virtual nela**, então o **instalador** colocaria lá o **script pós-instalação**, **desmontaria** a imagem virtual, **recriaria** todas as **pastas** e **adicionaria** o **script de pós-instalação** com o **payload** a ser executado.
#### [fsck\_cs utility](https://www.theregister.com/2016/03/30/apple\_os\_x\_rootless/)
Uma vulnerabilidade foi identificada onde **`fsck_cs`** foi enganado a corromper um arquivo crucial, devido à sua capacidade de seguir **links simbólicos**. Especificamente, atacantes criaram um link de _`/dev/diskX`_ para o arquivo `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Executar **`fsck_cs`** em _`/dev/diskX`_ levou à corrupção de `Info.plist`. A integridade deste arquivo é vital para o SIP (Proteção de Integridade do Sistema) do sistema operacional, que controla o carregamento de extensões de kernel. Uma vez corrompido, a capacidade do SIP de gerenciar exclusões de kernel é comprometida.
Os comandos para explorar essa vulnerabilidade são:
```bash
ln -s /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist /dev/diskX
fsck_cs /dev/diskX 1>&-
touch /Library/Extensions/
reboot
```
A exploração dessa vulnerabilidade tem implicações severas. O arquivo `Info.plist`, normalmente responsável por gerenciar permissões para extensões do kernel, torna-se ineficaz. Isso inclui a incapacidade de colocar certas extensões na lista negra, como `AppleHWAccess.kext`. Consequentemente, com o mecanismo de controle do SIP fora de ordem, essa extensão pode ser carregada, concedendo acesso não autorizado de leitura e gravação à RAM do sistema.
#### [Montar sobre pastas protegidas pelo SIP](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship)
Foi possível montar um novo sistema de arquivos sobre **pastas protegidas pelo SIP para contornar a proteção**.
```bash
mkdir evil
# Add contento to the folder
hdiutil create -srcfolder evil evil.dmg
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
```
#### [Bypass do Upgrader (2016)](https://objective-see.org/blog/blog\_0x14.html)
O sistema está configurado para inicializar a partir de uma imagem de disco de instalador incorporada dentro do `Install macOS Sierra.app` para atualizar o SO, utilizando a ferramenta `bless`. O comando utilizado é o seguinte:
```bash
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
```
A segurança deste processo pode ser comprometida se um atacante alterar a imagem de atualização (`InstallESD.dmg`) antes da inicialização. A estratégia envolve substituir um carregador dinâmico (dyld) por uma versão maliciosa (`libBaseIA.dylib`). Essa substituição resulta na execução do código do atacante quando o instalador é iniciado.
O código do atacante ganha controle durante o processo de atualização, explorando a confiança do sistema no instalador. O ataque prossegue alterando a imagem `InstallESD.dmg` via method swizzling, visando particularmente o método `extractBootBits`. Isso permite a injeção de código malicioso antes que a imagem do disco seja utilizada.
Além disso, dentro do `InstallESD.dmg`, há um `BaseSystem.dmg`, que serve como o sistema de arquivos raiz do código de atualização. Injetar uma biblioteca dinâmica nisso permite que o código malicioso opere dentro de um processo capaz de alterar arquivos em nível de sistema operacional, aumentando significativamente o potencial de comprometimento do sistema.
#### [systemmigrationd (2023)](https://www.youtube.com/watch?v=zxZesAN-TEk)
Nesta palestra do [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk), é mostrado como **`systemmigrationd`** (que pode contornar o SIP) executa um **bash** e um **perl** script, que podem ser abusados via variáveis de ambiente **`BASH_ENV`** e **`PERL5OPT`**.
#### CVE-2023-42860
Como [**detalhado neste post do blog**](https://blog.kandji.io/apple-mitigates-vulnerabilities-installer-scripts), um script `postinstall` de pacotes `InstallAssistant.pkg` permitia a execução:
```bash
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
```
e foi possível criar um symlink em `${SHARED_SUPPORT_PATH}/SharedSupport.dmg` que permitiria a um usuário **desbloquear qualquer arquivo, contornando a proteção SIP**.
### **com.apple.rootless.install**
{% hint style="danger" %}
A permissão **`com.apple.rootless.install`** permite contornar o SIP
{% endhint %}
A permissão `com.apple.rootless.install` é conhecida por contornar a Proteção de Integridade do Sistema (SIP) no macOS. Isso foi notavelmente mencionado em relação ao [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/).
Neste caso específico, o serviço XPC do sistema localizado em `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` possui essa permissão. Isso permite que o processo relacionado contorne as restrições do SIP. Além disso, este serviço apresenta notavelmente um método que permite a movimentação de arquivos sem impor quaisquer medidas de segurança.
## Instantâneas do Sistema Seladas
As Instantâneas do Sistema Seladas são um recurso introduzido pela Apple no **macOS Big Sur (macOS 11)** como parte de seu mecanismo de **Proteção de Integridade do Sistema (SIP)** para fornecer uma camada adicional de segurança e estabilidade do sistema. Elas são essencialmente versões somente leitura do volume do sistema.
Aqui está uma visão mais detalhada:
1. **Sistema Imutável**: As Instantâneas do Sistema Seladas tornam o volume do sistema macOS "imutável", o que significa que não pode ser modificado. Isso impede quaisquer alterações não autorizadas ou acidentais no sistema que poderiam comprometer a segurança ou a estabilidade do sistema.
2. **Atualizações de Software do Sistema**: Quando você instala atualizações ou upgrades do macOS, o macOS cria uma nova instantânea do sistema. O volume de inicialização do macOS então usa **APFS (Apple File System)** para alternar para essa nova instantânea. Todo o processo de aplicação de atualizações se torna mais seguro e confiável, pois o sistema pode sempre reverter para a instantânea anterior se algo der errado durante a atualização.
3. **Separação de Dados**: Em conjunto com o conceito de separação de volume de Dados e Sistema introduzido no macOS Catalina, o recurso de Instantânea do Sistema Selada garante que todos os seus dados e configurações sejam armazenados em um volume separado "**Dados**". Essa separação torna seus dados independentes do sistema, o que simplifica o processo de atualizações do sistema e melhora a segurança do sistema.
Lembre-se de que essas instantâneas são gerenciadas automaticamente pelo macOS e não ocupam espaço adicional no seu disco, graças às capacidades de compartilhamento de espaço do APFS. Também é importante notar que essas instantâneas são diferentes das **instantâneas do Time Machine**, que são backups acessíveis ao usuário de todo o sistema.
### Verificar Instantâneas
O comando **`diskutil apfs list`** lista os **detalhes dos volumes APFS** e seu layout:
+-- Container disk3 966B902E-EDBA-4775-B743-CF97A0556A13
| ====================================================
| Referência do Container APFS: disk3
| Tamanho (Capacidade Máxima): 494384795648 B (494.4 GB)
| Capacidade Em Uso Por Volumes: 219214536704 B (219.2 GB) (44.3% usado)
| Capacidade Não Alocada: 275170258944 B (275.2 GB) (55.7% livre)
| |
| +-< Armazenamento Físico disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| | -----------------------------------------------------------
| | Disco de Armazenamento Físico APFS: disk0s2
| | Tamanho: 494384795648 B (494.4 GB)
| |
| +-> Volume disk3s1 7A27E734-880F-4D91-A703-FB55861D49B7
| | ---------------------------------------------------
| | Disco de Volume APFS (Função): disk3s1 (Sistema)
| | Nome: Macintosh HD (Sem distinção entre maiúsculas e minúsculas)
| | Ponto de Montagem: /System/Volumes/Update/mnt1
| | Capacidade Consumida: 12819210240 B (12.8 GB)
| | Selado: Quebrado
| | FileVault: Sim (Desbloqueado)
| | Criptografado: Não
| | |
| | Instantânea: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Disco da Instantânea: disk3s1s1
| | Ponto de Montagem da Instantânea: /
| | Instantânea Selada: Sim
[...]
+-> Volume disk3s5 281959B7-07A1-4940-BDDF-6419360F3327
| ---------------------------------------------------
| Disco de Volume APFS (Função): disk3s5 (Dados)
| Nome: Macintosh HD - Dados (Sem distinção entre maiúsculas e minúsculas)
| Ponto de Montagem: /System/Volumes/Data
| Capacidade Consumida: 412071784448 B (412.1 GB)
| Selado: Não
| FileVault: Sim (Desbloqueado)
Na saída anterior, é possível ver que **locais acessíveis ao usuário** estão montados em `/System/Volumes/Data`.
Além disso, a **instantânea do volume do sistema macOS** está montada em `/` e está **selada** (assinada criptograficamente pelo OS). Portanto, se o SIP for contornado e modificado, o **OS não inicializará mais**.
Também é possível **verificar se o selo está habilitado** executando:
```bash
csrutil authenticated-root status
Authenticated Root status: enabled
```
Além disso, o disco de instantâneo também é montado como **somente leitura**:
```bash
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
```
{% hint style="success" %}
Aprenda e pratique Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Aprenda e pratique Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Suporte ao HackTricks
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}