From c17a7b86dc5b34be65f23314123ebcf2449a756d Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 1 Nov 2023 18:41:14 +0000 Subject: [PATCH] Translated ['macos-hardening/macos-security-and-privilege-escalation/mac --- .../macos-fs-tricks/README.md | 12 ++++--- .../macos-default-sandbox-debug.md | 31 +++++++++++++------ 2 files changed, 29 insertions(+), 14 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 f6b249d97..51e621de3 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 @@ -26,7 +26,7 @@ Permisos en un **directorio**: * Uno de los **directorio padre propietario** en la ruta es el usuario * Uno de los **directorio padre propietario** en la ruta es un **grupo de usuarios** con **acceso de escritura** -* Un **grupo de usuarios** tiene acceso de **escritura** al **archivo** +* Un **grupo de usuarios** tiene **acceso de escritura** al **archivo** Con cualquiera de las combinaciones anteriores, un atacante podría **inyectar** un **enlace simbólico/duro** en la ruta esperada para obtener una escritura arbitraria privilegiada. @@ -48,8 +48,12 @@ Si puedes hacer que un **proceso abra un archivo o una carpeta con altos privile Por ejemplo: [https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098) -## Trucos para evitar atributos de cuarentena xattrs +## Trucos para evitar atributos extendidos de cuarentena +### Eliminarlo +```bash +xattr -d com.apple.quarantine /path/to/file_or_app +``` ### Bandera uchg / uchange / uimmutable Si un archivo/carpeta tiene este atributo inmutable, no será posible poner un xattr en él. @@ -122,7 +126,7 @@ ditto -c -k del test.zip ditto -x -k --rsrc test.zip . ls -le test ``` -(Tenga en cuenta que incluso si esto funciona, la sandbox escribirá el atributo de cuarentena antes) +(Nota que incluso si esto funciona, la sandbox escribe el atributo de cuarentena antes) No es realmente necesario, pero lo dejo aquí por si acaso: @@ -132,7 +136,7 @@ No es realmente necesario, pero lo dejo aquí por si acaso: ## Bypass de Firmas de Código -Los paquetes contienen el archivo **`_CodeSignature/CodeResources`** que contiene el **hash** de cada **archivo** en el **paquete**. Tenga en cuenta que el hash de CodeResources también está **incrustado en el ejecutable**, por lo que no podemos modificarlo. +Los paquetes contienen el archivo **`_CodeSignature/CodeResources`** que contiene el **hash** de cada **archivo** en el **paquete**. Ten en cuenta que el hash de CodeResources también está **incrustado en el ejecutable**, por lo que no podemos modificarlo. Sin embargo, hay algunos archivos cuya firma no se verificará, estos tienen la clave omit en el plist, como: ```xml 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 b1a4f96de..aeb82cccb 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 @@ -72,17 +72,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist EOF ``` -3. Definir los permisos +3. Definir los privilegios -Los permisos son declaraciones en el archivo de configuración de la sandbox que especifican qué acciones puede realizar una aplicación dentro del entorno restringido. Estos permisos se conocen como "entitlements" en macOS. - -Los entitlements definen las capacidades y restricciones de una aplicación en la sandbox. Pueden permitir o denegar el acceso a recursos del sistema, como archivos, directorios, servicios de red y más. Al definir los entitlements, se establece el nivel de acceso que una aplicación tiene dentro de la sandbox. - -Es importante tener en cuenta que los entitlements deben ser cuidadosamente configurados para evitar posibles vulnerabilidades o abusos. Una configuración incorrecta de los entitlements puede permitir a una aplicación realizar acciones no deseadas o acceder a información confidencial. - -Los entitlements se definen en el archivo de configuración de la sandbox utilizando una sintaxis específica. Cada permiso tiene un nombre y un valor asociado que determina si está permitido o denegado. Algunos ejemplos de entitlements comunes incluyen el acceso a la cámara, el micrófono, la ubicación del usuario y la comunicación con otros procesos. - -Es fundamental comprender y definir correctamente los entitlements para garantizar la seguridad y privacidad de las aplicaciones en la sandbox de macOS. +{% tabs %} +{% tab title="sandbox" %} ```bash cat << EOF > entitlements.plist @@ -95,6 +88,24 @@ cat << EOF > entitlements.plist EOF ``` +{% tab title="sandbox + descargas" %} +```bash +cat << EOF > entitlements.plist + + + + +com.apple.security.app-sandbox + +com.apple.security.files.downloads.read-write + + + +EOF +``` +{% endtab %} +{% endtabs %} + 4. Firma la aplicación (necesitas crear un certificado en el llavero) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app