macOS Bundles

Reading time: 5 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

基本情報

macOSのバンドルは、アプリケーション、ライブラリ、その他の必要なファイルを含むさまざまなリソースのコンテナとして機能し、Finderでは*.appファイルのような単一のオブジェクトとして表示されます。最も一般的に遭遇するバンドルは.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: アプリケーションによって使用されるバンドルフレームワークを含みます。フレームワークは、追加のリソースを持つdylibのようなものです。
  • PlugIns: アプリケーションの機能を強化するプラグインや拡張のためのディレクトリです。
  • XPCServices: アプリケーションがプロセス外通信のために使用するXPCサービスを保持します。

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

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

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする