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

4.1 KiB
Raw Blame History

macOS Bundles

从零到英雄学习AWS黑客技术通过 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式

基本信息

基本上bundle是文件系统内的目录结构。有趣的是默认情况下这个目录在Finder中看起来像一个单一对象

我们经常遇到的常见bundle是**.app bundle**但许多其他可执行文件也被打包成bundle例如**.framework** 和 .systemextension.kext

bundle内包含的资源类型可能包括应用程序、库、图像、文档、头文件等。所有这些文件都在 <application>.app/Contents/ 内。

ls -lR /Applications/Safari.app/Contents
  • Contents/_CodeSignature -> 包含应用程序的代码签名信息(例如,哈希等)。

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

  • Contents/MacOS -> 包含应用程序的二进制文件当用户在UI中双击应用程序图标时执行

  • Contents/Resources -> 包含应用程序的UI元素如图片、文档和nib/xib文件描述各种用户界面

  • Contents/Info.plist -> 应用程序的主要“配置文件”。苹果指出,“系统依赖于此文件的存在来识别有关[应用程序]及任何相关文件的信息”。

  • Plist文件包含配置信息。您可以在https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html找到有关plist键含义的信息。

  • 在分析应用程序时可能感兴趣的键值对包括:

  • CFBundleExecutable

包含应用程序二进制文件的名称位于Contents/MacOS中

  • CFBundleIdentifier

包含应用程序的捆绑标识符(系统经常用它来全局 识别应用程序)。

  • LSMinimumSystemVersion

包含应用程序兼容的最旧macOS版本。

通过 htARTE (HackTricks AWS Red Team Expert)从零到英雄学习AWS黑客攻击

支持HackTricks的其他方式