From 7e4c0f9c15a2a0dec773126fedecbb94d74966d0 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 1 Nov 2023 18:41:39 +0000 Subject: [PATCH] Translated ['macos-hardening/macos-security-and-privilege-escalation/mac --- .../macos-fs-tricks/README.md | 10 ++- .../macos-default-sandbox-debug.md | 81 +++++++++++++++++-- 2 files changed, 80 insertions(+), 11 deletions(-) diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md index 9bf4f1c7c..2f4d429f4 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/README.md @@ -1,4 +1,4 @@ -# Truques do macOS FS +# Truques do Sistema de Arquivos do macOS
@@ -30,7 +30,7 @@ Permissões em um **diretório**: Com qualquer uma das combinações anteriores, um invasor poderia **injetar** um **link simbólico/rígido** no caminho esperado para obter uma gravação arbitrária privilegiada. -### Caso Especial R+X da Raiz da Pasta +### Caso Especial de R+X na Raiz da Pasta Se houver arquivos em um **diretório** onde **apenas o root tem acesso R+X**, esses arquivos **não são acessíveis a mais ninguém**. Portanto, uma vulnerabilidade que permita **mover um arquivo legível por um usuário**, que não pode ser lido por causa dessa **restrição**, dessa pasta **para outra**, pode ser abusada para ler esses arquivos. @@ -48,8 +48,12 @@ Se você pode fazer um **processo abrir um arquivo ou uma pasta com privilégios Por exemplo: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098) -## Truques para Evitar Atributos de Quarentena xattrs +## Truques para Evitar Atributos de Quarentena +### Removê-lo +```bash +xattr -d com.apple.quarantine /path/to/file_or_app +``` ### Sinalizador uchg / uchange / uimmutable Se um arquivo/pasta tiver esse atributo imutável, não será possível colocar um xattr nele. diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md index 178760b2e..e0c634485 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md @@ -74,13 +74,8 @@ EOF ``` 3. Definir as permissões -As permissões são atribuídas a um aplicativo para definir quais recursos e funcionalidades ele pode acessar no sistema operacional. No contexto do sandbox do macOS, as permissões são chamadas de "entitlements". Essas entitlements são especificadas no arquivo de manifesto do aplicativo e são usadas para restringir o acesso a recursos sensíveis, como arquivos, diretórios, serviços de rede e muito mais. - -As entitlements podem ser usadas para permitir ou negar o acesso a recursos específicos. Por exemplo, uma entitlement pode permitir que um aplicativo acesse a câmera do dispositivo, enquanto outra pode negar o acesso à localização do usuário. Essas permissões são essenciais para garantir a segurança e a privacidade dos usuários, limitando o que os aplicativos podem fazer. - -Ao definir as entitlements, é importante considerar cuidadosamente quais recursos são necessários para o funcionamento do aplicativo e quais podem representar um risco de segurança. É recomendável conceder apenas as permissões necessárias e restringir o acesso a recursos sensíveis sempre que possível. - -As entitlements podem ser configuradas usando o Xcode, a ferramenta de desenvolvimento oficial da Apple, ou por meio de arquivos de manifesto específicos. É importante revisar e auditar regularmente as entitlements de um aplicativo para garantir que elas estejam configuradas corretamente e que não haja permissões excessivas ou desnecessárias. +{% tabs %} +{% tab title="sandbox" %} ```bash cat << EOF > entitlements.plist @@ -93,7 +88,77 @@ cat << EOF > entitlements.plist EOF ``` -4. Assine o aplicativo (você precisa criar um certificado na chaveiro) +{% tab title="sandbox + downloads" %} + +# macOS Sandbox + Downloads + +## Introduction + +The macOS Sandbox is a security feature that restricts the actions of applications, preventing them from accessing sensitive resources or performing malicious activities. This helps to protect the system and user data from potential threats. + +One area where the macOS Sandbox is commonly used is in handling file downloads. By default, applications running in the sandbox are not allowed to write files to the user's Downloads folder. This prevents downloaded files from being automatically saved to a location where they could potentially cause harm. + +## Sandbox Entitlements + +To enable an application to write files to the Downloads folder, specific entitlements need to be added to its sandbox profile. These entitlements grant the necessary permissions for the application to access and modify the Downloads folder. + +## Modifying the Sandbox Profile + +To modify the sandbox profile of an application, you can use the `sandbox-exec` command-line tool. This tool allows you to specify a custom sandbox profile for an application, overriding the default restrictions. + +To allow an application to write files to the Downloads folder, you need to create a custom sandbox profile that includes the necessary entitlements. This profile can then be applied to the application using the `sandbox-exec` command. + +## Creating a Custom Sandbox Profile + +To create a custom sandbox profile, you can use the `sandbox-simplify` tool. This tool simplifies an existing sandbox profile by removing unnecessary restrictions, making it easier to understand and modify. + +Once you have a simplified sandbox profile, you can add the necessary entitlements to allow file writing to the Downloads folder. This can be done by modifying the profile using a text editor. + +## Adding Entitlements + +To allow an application to write files to the Downloads folder, you need to add the following entitlements to its sandbox profile: + +```plaintext +(version 1) +(deny default) +(allow file-write* (subpath "/Users//Downloads")) +``` + +Replace `` with the actual username of the user account. + +## Applying the Custom Sandbox Profile + +To apply the custom sandbox profile to an application, you can use the `sandbox-exec` command-line tool. The following command applies the custom profile to the specified application: + +```plaintext +sandbox-exec -f +``` + +Replace `` with the path to the custom sandbox profile, and `` with the path to the application. + +## Conclusion + +By modifying the sandbox profile of an application, you can enable it to write files to the user's Downloads folder. This allows for more flexibility in handling file downloads while still maintaining the security benefits of the macOS Sandbox. + +{% endtab %} +```bash +cat << EOF > entitlements.plist + + + + +com.apple.security.app-sandbox + +com.apple.security.files.downloads.read-write + + + +EOF +``` +{% endtab %} +{% endtabs %} + +4. Assine o aplicativo (você precisa criar um certificado no keychain) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp