hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-bundles.md

4.6 KiB

Paquetes macOS

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Básicamente, un paquete es una estructura de directorio dentro del sistema de archivos. Curiosamente, por defecto este directorio parece un objeto único en Finder.

El paquete común que encontraremos con frecuencia es el paquete .app, pero muchos otros ejecutables también están empaquetados como paquetes, tales como .framework y .systemextension o .kext.

Los tipos de recursos contenidos dentro de un paquete pueden consistir en aplicaciones, bibliotecas, imágenes, documentación, archivos de cabecera, etc. Todos estos archivos están dentro de <aplicación>.app/Contents/

ls -lR /Applications/Safari.app/Contents
  • Contents/_CodeSignature -> Contiene información de firma de código sobre la aplicación (es decir, hashes, etc.).

  • openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64

  • Contents/MacOS -> Contiene el binario de la aplicación (que se ejecuta cuando el usuario hace doble clic en el icono de la aplicación en la UI).

  • Contents/Resources -> Contiene elementos de la UI de la aplicación, como imágenes, documentos y archivos nib/xib (que describen diversas interfaces de usuario).

  • Contents/Info.plist -> El principal “archivo de configuración” de la aplicación. Apple señala que “el sistema depende de la presencia de este archivo para identificar información relevante sobre [la] aplicación y cualquier archivo relacionado”.

  • Los archivos Plist contienen información de configuración. Puedes encontrar información sobre el significado de las claves plist en https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html

  • Pares que pueden ser de interés al analizar una aplicación incluyen:\

  • CFBundleExecutable

Contiene el nombre del binario de la aplicación (encontrado en Contents/MacOS).

  • CFBundleIdentifier

Contiene el identificador de paquete de la aplicación (a menudo utilizado por el sistema para identificar globalmente la aplicación).

  • LSMinimumSystemVersion

Contiene la versión más antigua de macOS con la que la aplicación es compatible.

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: