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

4.6 KiB
Raw Blame History

macOS捆绑包

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

基本信息

macOS中的捆绑包用作各种资源包括应用程序、库和其他必要文件的容器使它们在Finder中显示为单个对象例如熟悉的*.app文件。最常见的捆绑包是.app捆绑包,但其他类型如.framework.systemextension.kext也很常见。

捆绑包的基本组件

在捆绑包中,特别是在<application>.app/Contents/目录中,存储着各种重要资源:

  • _CodeSignature:此目录存储了验证应用程序完整性所必需的代码签名详细信息。您可以使用以下命令检查代码签名信息:
openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64
  • MacOS:包含应用程序在用户交互时运行的可执行二进制文件。
  • Resources存储应用程序的用户界面组件包括图像、文档和界面描述nib/xib文件
  • Info.plist:作为应用程序的主要配置文件,对于系统识别和与应用程序交互至关重要。

Info.plist中的重要键

Info.plist文件是应用程序配置的基石,包含诸如以下键的内容:

  • CFBundleExecutable:指定位于Contents/MacOS目录中的主可执行文件的名称。
  • CFBundleIdentifier为应用程序提供全局标识符macOS广泛用于应用程序管理。
  • LSMinimumSystemVersion指示应用程序运行所需的macOS最低版本。

探索捆绑包

要探索捆绑包的内容,例如Safari.app,可以使用以下命令:

ls -lR /Applications/Safari.app/Contents

此探索将显示诸如_CodeSignatureMacOSResources等目录,以及诸如Info.plist等文件,每个都具有从保护应用程序到定义其用户界面和操作参数的独特目的。

其他捆绑包目录

除了常见目录外,捆绑包还可能包括:

  • Frameworks:包含应用程序使用的捆绑框架。
  • PlugIns:用于增强应用程序功能的插件和扩展的目录。
  • XPCServices保存应用程序用于进程间通信的XPC服务。

这种结构确保了所有必要组件都封装在捆绑包中,促进了模块化和安全的应用程序环境。

有关Info.plist键及其含义的更详细信息,苹果开发者文档提供了广泛的资源:Apple Info.plist键参考

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式