hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md

6.3 KiB

Entitlements Perigosos do macOS

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

{% hint style="warning" %} Observe que as entitlements que começam com com.apple não estão disponíveis para terceiros, apenas a Apple pode concedê-las. {% endhint %}

Alto

com.apple.security.get-task-allow

Essa entitlement permite obter a porta da tarefa do processo executado pelo binário com essa entitlement e injetar código nele. Verifique isso para mais informações.

com.apple.system-task-ports (anteriormente chamado de task_for_pid-allow)

Essa entitlement permite obter a porta da tarefa para qualquer processo, exceto o kernel. Verifique isso para mais informações.

com.apple.security.cs.debugger

Aplicativos com a Entitlement da Ferramenta de Depuração podem chamar task_for_pid() para recuperar uma porta de tarefa válida para aplicativos não assinados e de terceiros com a entitlement Get Task Allow definida como true. No entanto, mesmo com a entitlement da ferramenta de depuração, um depurador não pode obter as portas de tarefa de processos que não possuem a entitlement Get Task Allow e, portanto, são protegidos pela Proteção de Integridade do Sistema. Verifique isso para mais informações.

com.apple.security.cs.disable-library-validation

Essa entitlement permite carregar frameworks, plug-ins ou bibliotecas sem serem assinados pela Apple ou assinados com o mesmo ID de equipe que o executável principal, portanto, um invasor pode abusar de algum carregamento arbitrário de biblioteca para injetar código. Verifique isso para mais informações.

com.apple.security.cs.allow-dyld-environment-variables

Essa entitlement permite usar variáveis de ambiente DYLD que podem ser usadas para injetar bibliotecas e código. Verifique isso para mais informações.

Médio

com.apple.security.cs.allow-jit

Essa entitlement permite criar memória que pode ser gravada e executada passando a flag MAP_JIT para a função de sistema mmap(). Verifique isso para mais informações.

com.apple.security.cs.allow-unsigned-executable-memory

Essa entitlement permite substituir ou corrigir código C, usar o NSCreateObjectFileImageFromMemory (que é fundamentalmente inseguro) ou usar o framework DVDPlayback. Verifique isso para mais informações.

{% hint style="danger" %} Incluir essa entitlement expõe seu aplicativo a vulnerabilidades comuns em linguagens de código não seguras em memória. Considere cuidadosamente se seu aplicativo precisa dessa exceção. {% endhint %}

com.apple.security.cs.disable-executable-page-protection

Essa entitlement permite modificar seções de seus próprios arquivos executáveis no disco para sair forçadamente. Verifique isso para mais informações.

{% hint style="danger" %} A Entitlement de Desativação da Proteção de Memória Executável é uma entitlement extrema que remove uma proteção de segurança fundamental do seu aplicativo, tornando possível que um invasor reescreva o código executável do seu aplicativo sem detecção. Prefira entitlements mais restritas, se possível. {% endhint %}

com.apple.security.cs.allow-relative-library-loads

TODO