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

6.3 KiB
Raw Blame History

macOS バンドル

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

基本情報

macOS のバンドルは、アプリケーション、ライブラリ、およびその他の必要なファイルを含むコンテナとして機能し、おなじみの *.app ファイルなど、Finder で単一のオブジェクトとして表示されます。最も一般的に遭遇するバンドルは .app バンドルですが、.framework.systemextension.kext などの他のタイプも一般的です。

バンドルの必須コンポーネント

バンドル内、特に <application>.app/Contents/ ディレクトリ内には、さまざまな重要なリソースが格納されています:

  • _CodeSignature: このディレクトリには、アプリケーションの整合性を検証するために重要なコード署名の詳細が保存されています。次のようなコマンドを使用してコード署名情報を調べることができます: %%%bash 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 などのバンドルの内容を探索するには、次のコマンドを使用できます: %%%bash ls -lR /Applications/Safari.app/Contents %%%

この探索により、_CodeSignatureMacOSResources などのディレクトリや Info.plist のようなファイルが表示され、それぞれがアプリケーションのセキュリティを確保したり、ユーザーインターフェースや操作パラメータを定義したりするための独自の目的を果たしています。

追加のバンドルディレクトリ

一般的なディレクトリ以外に、バンドルには次のようなものが含まれる場合があります:

  • Frameworks: アプリケーションで使用されるバンドル化されたフレームワークが含まれています。
  • PlugIns: アプリケーションの機能を拡張するプラグインや拡張機能のためのディレクトリです。
  • XPCServices: アプリケーションがプロセス外通信に使用する XPC サービスを保持します。

この構造により、すべての必要なコンポーネントがバンドル内にカプセル化され、モジュラーで安全なアプリケーション環境が実現されます。

Info.plist キーとその意味に関する詳細情報については、Apple 開発者ドキュメントが包括的なリソースを提供しています: Apple Info.plist Key Reference.

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法: