Escalada de privilégios no macOS ## O que é escalada de privilégios no macOS? A escalada de privilégios no macOS ocorre quando um usuário ou programa obtém mais permissões do que deveria ter originalmente. Pense nisso como começar como um funcionário comum e, de alguma forma, conseguir o crachá do CEO — de repente você tem acesso a tudo. No macOS, existem diferentes níveis de permissão. Usuários comuns podem fazer coisas básicas, como abrir aplicativos e editar seus próprios arquivos. O usuário **root** (também chamado de superusuário) pode modificar arquivos do sistema, instalar softwares em todo o sistema e alterar configurações de segurança. A escalada de privilégios é o processo de passar de um nível inferior para um nível superior — geralmente por meio de uma vulnerabilidade ou configuração incorreta. ## Por que isso é importante para a segurança? Se um invasor conseguir escalar privilégios no seu Mac, ele poderá: - Instalar malware que persiste mesmo após reinicializações - Acessar arquivos protegidos e credenciais armazenadas - Desabilitar ferramentas de segurança como antivírus ou firewalls - Criar backdoors para acesso futuro - Exfiltrar dados confidenciais sem ser detectado É por isso que entender a escalada de privilégios é essencial tanto para profissionais de segurança ofensiva quanto defensiva. ## Como o macOS gerencia privilégios O macOS usa um modelo de permissões baseado no Unix. Cada arquivo, processo e recurso tem um proprietário e um conjunto de permissões. O sistema tem algumas camadas-chave: - **Usuário padrão:** Acesso limitado aos seus próprios arquivos e aplicativos - **Administrador:** Pode instalar softwares e alterar certas configurações do sistema (mas ainda não é root) - **Root:** Controle total sobre o sistema - **Kernel:** O nível mais baixo — controla o hardware e os recursos principais do sistema O macOS também inclui proteções de segurança modernas como: - **SIP (System Integrity Protection):** Impede que até mesmo o root modifique certas partes do sistema - **TCC (Transparency, Consent, and Control):** Controla o acesso a dados sensíveis como câmera, microfone e localização - **Gatekeeper:** Verifica se os aplicativos são de desenvolvedores confiáveis - **Sandbox:** Limita o que os aplicativos podem acessar ## Técnicas comuns de escalada de privilégios ### Abusando do sudo `sudo` permite que usuários autorizados executem comandos como root. Configurações incorretas podem ser exploradas: ```figure: +--------------------------+ | sudo mal configurado | +------------+-------------+ | +-----------+----------+ | | Arquivo sudoers Binários sudo permissivo exploráveis | | Usuário executa Usuário executa qualquer comando binário confiável como root para obter shell ``` Se o arquivo `/etc/sudoers` permitir que um usuário execute qualquer comando sem senha, o invasor simplesmente executa `sudo su` para se tornar root. Alguns binários comuns do Unix que podem ser explorados via sudo incluem `vim`, `python` e `find` — eles têm maneiras de invocar shells ou executar código arbitrário. ### Explorando arquivos SUID/SGID Arquivos com o bit SUID definido são executados com as permissões do proprietário do arquivo (frequentemente root), independentemente de quem os executa: ```figure: @title Fluxo de execução SUID @caption Quando um binário SUID é executado, ele roda com as permissões do proprietário do arquivo, não as do usuário que o invocou. Isso pode ser explorado se o binário tiver comportamento explorável. Usuário (uid=1000) | v Executa binário SUID (proprietário: root) | v Processo roda como root (uid=0) | v Se explorável → Shell root @source Conceito Unix padrão de permissões de arquivo ``` ### Sequestro de variável de ambiente PATH Se um script executado como root usar caminhos relativos para comandos (por exemplo, `backup` em vez de `/usr/bin/backup`), um invasor pode criar um arquivo malicioso chamado `backup` em um diretório que aparece antes no PATH: 1. O invasor cria `/tmp/backup` contendo `/bin/bash` 2. O invasor define `PATH=/tmp:$PATH` 3. O script root executa `backup`, que agora invoca o arquivo malicioso 4. Um shell root é iniciado ### Vulnerabilidades de aplicativos Aplicativos que rodam com privilégios elevados podem conter bugs que permitem a execução arbitrária de código. Se você explorar um aplicativo que roda como root, seu código explorador também roda como root. ### Condições de corrida (Race Conditions) Algumas vulnerabilidades envolvem o timing. Se um processo privilegiado verificar um arquivo e depois usá-lo com um pequeno intervalo de tempo, um invasor pode trocar o arquivo entre a verificação e o uso (chamado de **ataque TOCTOU** — Time Of Check To Time Of Use). ```figure: @title Linha do tempo de ataque TOCTOU @caption Existe uma janela entre quando um processo privilegiado verifica um arquivo e quando o utiliza. Um invasor pode substituir o arquivo nessa janela. Tempo → [Processo privilegiado verifica /tmp/arquivo] → OK ↑ | ← Invasor substitui /tmp/arquivo aqui ↓ [Processo privilegiado usa /tmp/arquivo] → Executa conteúdo malicioso @source Conceito clássico de condição de corrida em segurança de SO ``` ### Injeção de dylib O macOS usa bibliotecas dinâmicas (dylibs). Se um aplicativo privilegiado tentar carregar uma dylib de um local onde o invasor pode escrever, o invasor pode colocar uma dylib maliciosa lá. ### Explorando LaunchDaemons e LaunchAgents Os LaunchDaemons rodam como root ao iniciar o sistema. Se um daemon apontar para um script ou binário que possa ser modificado por um usuário não privilegiado, isso é uma via de escalada de privilégios. ## Proteções modernas do macOS e como os invasores as contornam O macOS ficou significativamente mais difícil de comprometer ao longo dos anos. Veja como as principais proteções funcionam — e suas limitações conhecidas: | Proteção | O que ela faz | Limitações | |-----------|---------------|------------| | SIP | Protege locais críticos do sistema | Pode ser desabilitado via Recovery Mode; não protege tudo | | TCC | Controla acesso a dados sensíveis | Aplicativos com automação podem contornar isso; bugs históricos existem | | Gatekeeper | Verifica assinatura do aplicativo | Pode ser contornado com aplicativos assinados maliciosos ou manipulação de quarentena | | Sandbox | Limita acesso de aplicativos | Escapes de sandbox foram encontrados em versões antigas | ## Ferramentas usadas por profissionais de segurança Profissionais de segurança usam várias ferramentas para encontrar fraquezas de escalada de privilégios no macOS: - **linPEAS / macOS PEAS:** Scripts automatizados que verificam configurações incorretas comuns e caminhos de escalada - **Metasploit:** Framework com módulos para exploração e pós-exploração no macOS - **Hopper / Ghidra:** Ferramentas de engenharia reversa para analisar binários em busca de vulnerabilidades - **Frida:** Ferramenta de instrumentação dinâmica para inspecionar aplicativos em execução - **Activity Monitor / fs_usage:** Ferramentas nativas do macOS para observar processos e acessos a arquivos ## Exemplo prático: encontrando um caminho de escalada Suponha que você tenha acesso de usuário padrão a um Mac. Veja um processo simplificado de como um testador de penetração investigaria: 1. **Enumerar usuários e grupos:** Verificar em quais grupos você está — ser parte do grupo `admin` dá mais possibilidades 2. **Verificar permissões do sudo:** Executar `sudo -l` para ver o que você pode executar como root 3. **Procurar binários SUID:** Executar `find / -perm -4000 2>/dev/null` para listar arquivos SUID 4. **Verificar LaunchDaemons:** Procurar em `/Library/LaunchDaemons/` por daemons que apontem para scripts modificáveis 5. **Verificar variáveis de ambiente:** Ver se algum processo privilegiado herda seu ambiente 6. **Procurar arquivos com senhas:** Arquivos de configuração, scripts e histórico de shell às vezes contêm credenciais ## Conceitos-chave para revisar - **Root / Superusuário:** A conta de mais alto privilégio no macOS/Unix - **sudo:** Ferramenta que permite que usuários autorizados executem comandos como outro usuário (geralmente root) - **SUID:** Bit de permissão especial que faz um programa rodar com as permissões do proprietário do arquivo - **SIP:** Proteção do macOS que impede modificações em arquivos críticos do sistema mesmo pelo root - **TCC:** Sistema que gerencia permissões para câmera, microfone, localização etc. - **TOCTOU:** Tipo de condição de corrida explorando o intervalo entre verificação e uso - **Injeção de dylib:** Colocar uma biblioteca maliciosa onde um aplicativo privilegiado irá carregá-la - **LaunchDaemon:** Serviço em segundo plano que inicia com o sistema, geralmente rodando como rootSem Admin? Sem Problema: Como uma Conta macOS Padrão Pode Silenciosamente Cegar Seu EDRA pesquisa da XM Cyber revela uma técnica encadeada que explora o comportamento de confiança do macOS para descarregar o CrowdStrike, o Kandji MDM e outros sem um único prompt de privilégio.Segurança no macOSXM CyberDetecção e Resposta em EndpointsEscalada de PrivilégiosSam·Jun 26, 2026·5 min readLer matéria