hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installer-packages-pkg.md

3.8 KiB

Información básica

Un paquete de instalación de macOS (también conocido como archivo .pkg) es un formato de archivo utilizado por macOS para distribuir software. Estos archivos son como una caja que contiene todo lo que un software necesita para instalarse y ejecutarse correctamente.

El archivo del paquete en sí es un archivo que contiene una jerarquía de archivos y directorios que se instalarán en el equipo de destino. También puede incluir scripts para realizar tareas antes y después de la instalación, como configurar archivos de configuración o limpiar versiones antiguas del software.

Jerarquía

  • Distribución (xml): Personalizaciones (título, texto de bienvenida...) y comprobaciones de script/instalación
  • PackageInfo (xml): Información, requisitos de instalación, ubicación de instalación, rutas a scripts para ejecutar
  • Lista de materiales (bom): Lista de archivos para instalar, actualizar o eliminar con permisos de archivo
  • Carga útil (archivo CPIO comprimido con gzip): Archivos para instalar en la ubicación de instalación de PackageInfo
  • Scripts (archivo CPIO comprimido con gzip): Scripts de pre y post instalación y más recursos extraídos a un directorio temporal para su ejecución.

Descompresión

# Tool to directly get the files inside a package
pkgutil —expand "/path/to/package.pkg" "/path/to/out/dir"

# Get the files ina. more manual way
mkdir -p "/path/to/out/dir"
cd "/path/to/out/dir"
xar -xf "/path/to/package.pkg"

# Decompress also the CPIO gzip compressed ones
cat Scripts | gzip -dc | cpio -i
cpio -i < Scripts

Privesc a través del abuso de paquetes pkg

Ejecución desde directorios públicos

Si un script de pre o post instalación se está ejecutando, por ejemplo, desde /var/tmp/Installerutil, un atacante podría controlar ese script para escalar privilegios cada vez que se ejecute. Otro ejemplo similar:

Referencias

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