5.8 KiB
macOS Dirty NIB
Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Para mais detalhes sobre a técnica, confira o post original em: https://blog.xpnsec.com/dirtynib/**. Aqui está um resumo:
Os arquivos NIB, parte do ecossistema de desenvolvimento da Apple, são destinados a definir elementos de UI e suas interações em aplicativos. Eles abrangem objetos serializados como janelas e botões, e são carregados em tempo de execução. Apesar de seu uso contínuo, a Apple agora defende o uso de Storyboards para uma visualização mais abrangente do fluxo da UI.
Preocupações de Segurança com Arquivos NIB
É crucial notar que os arquivos NIB podem representar um risco de segurança. Eles têm o potencial de executar comandos arbitrários, e alterações nos arquivos NIB dentro de um aplicativo não impedem o Gatekeeper de executar o aplicativo, representando uma ameaça significativa.
Processo de Injeção de Dirty NIB
Criando e Configurando um Arquivo NIB
- Configuração Inicial:
- Crie um novo arquivo NIB usando o XCode.
- Adicione um Objeto à interface, definindo sua classe como
NSAppleScript
. - Configure a propriedade
source
inicial via Atributos de Tempo de Execução Definidos pelo Usuário.
- Gadget de Execução de Código:
- A configuração facilita a execução de AppleScript sob demanda.
- Integre um botão para ativar o objeto
Apple Script
, acionando especificamente o seletorexecuteAndReturnError:
.
- Teste:
- Um Apple Script simples para fins de teste:
set theDialogText to "PWND"
display dialog theDialogText
- Teste executando no depurador XCode e clicando no botão.
Mirando em um Aplicativo (Exemplo: Pages)
- Preparação:
- Copie o aplicativo alvo (por exemplo, Pages) para um diretório separado (por exemplo,
/tmp/
). - Inicie o aplicativo para contornar problemas do Gatekeeper e armazene em cache.
- Sobrescrevendo o Arquivo NIB:
- Substitua um arquivo NIB existente (por exemplo, Painel Sobre NIB) pelo arquivo DirtyNIB criado.
- Execução:
- Acione a execução interagindo com o aplicativo (por exemplo, selecionando o item de menu
Sobre
).
Prova de Conceito: Acessando Dados do Usuário
- Modifique o AppleScript para acessar e extrair dados do usuário, como fotos, sem o consentimento do usuário.
Exemplo de Código: Arquivo .xib Malicioso
- Acesse e revise um exemplo de um arquivo .xib malicioso que demonstra a execução de código arbitrário.
Abordando Restrições de Inicialização
- Restrições de Inicialização impedem a execução do aplicativo em locais inesperados (por exemplo,
/tmp
). - É possível identificar aplicativos não protegidos por Restrições de Inicialização e direcioná-los para injeção de arquivo NIB.
Proteções Adicionais do macOS
A partir do macOS Sonoma em diante, modificações dentro de pacotes de aplicativos são restritas. No entanto, métodos anteriores envolviam:
- Copiar o aplicativo para um local diferente (por exemplo,
/tmp/
). - Renomear diretórios dentro do pacote do aplicativo para contornar proteções iniciais.
- Após executar o aplicativo para registrar no Gatekeeper, modificar o pacote do aplicativo (por exemplo, substituindo MainMenu.nib por Dirty.nib).
- Renomear diretórios de volta e executar novamente o aplicativo para executar o arquivo NIB injetado.
Nota: Atualizações recentes do macOS mitigaram esse exploit ao impedir modificações de arquivos dentro de pacotes de aplicativos após o cache do Gatekeeper, tornando o exploit ineficaz.
Aprenda hacking AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial do PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.