macOS Bundles
Reading time: 3 minutes
tip
Lernen & ĂŒben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
UnterstĂŒtzen Sie HackTricks
- ĂberprĂŒfen Sie die AbonnementplĂ€ne!
- Treten Sie der đŹ Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter đŠ @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
Bundles in macOS dienen als Container fĂŒr eine Vielzahl von Ressourcen, einschlieĂlich Anwendungen, Bibliotheken und anderen notwendigen Dateien, wodurch sie im Finder als einzelne Objekte erscheinen, wie die vertrauten *.app
-Dateien. Das am hÀufigsten vorkommende Bundle ist das .app
-Bundle, obwohl auch andere Typen wie .framework
, .systemextension
und .kext
verbreitet sind.
Wesentliche Komponenten eines Bundles
Innerhalb eines Bundles, insbesondere im <application>.app/Contents/
-Verzeichnis, befinden sich eine Vielzahl wichtiger Ressourcen:
- _CodeSignature: Dieses Verzeichnis speichert die Code-Signierungsdetails, die fĂŒr die ĂberprĂŒfung der IntegritĂ€t der Anwendung entscheidend sind. Sie können die Code-Signierungsinformationen mit Befehlen wie: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
- MacOS: EnthĂ€lt die ausfĂŒhrbare BinĂ€rdatei der Anwendung, die bei Benutzerinteraktion ausgefĂŒhrt wird.
- Resources: Ein Repository fĂŒr die BenutzeroberflĂ€chenkomponenten der Anwendung, einschlieĂlich Bilder, Dokumente und Schnittstellenbeschreibungen (nib/xib-Dateien).
- Info.plist: Dient als Hauptkonfigurationsdatei der Anwendung, die fĂŒr das System entscheidend ist, um die Anwendung korrekt zu erkennen und mit ihr zu interagieren.
Wichtige SchlĂŒssel in Info.plist
Die Info.plist
-Datei ist ein Grundpfeiler fĂŒr die Anwendungsconfiguration und enthĂ€lt SchlĂŒssel wie:
- CFBundleExecutable: Gibt den Namen der HauptausfĂŒhrungsdatei im Verzeichnis
Contents/MacOS
an. - CFBundleIdentifier: Stellt einen globalen Identifikator fĂŒr die Anwendung bereit, der von macOS umfassend fĂŒr das Anwendungsmanagement verwendet wird.
- LSMinimumSystemVersion: Gibt die minimale Version von macOS an, die erforderlich ist, damit die Anwendung ausgefĂŒhrt werden kann.
Erforschen von Bundles
Um den Inhalt eines Bundles, wie Safari.app
, zu erkunden, kann der folgende Befehl verwendet werden: bash ls -lR /Applications/Safari.app/Contents
Diese Erkundung zeigt Verzeichnisse wie _CodeSignature
, MacOS
, Resources
und Dateien wie Info.plist
, die jeweils einen einzigartigen Zweck erfĂŒllen, von der Sicherung der Anwendung bis zur Definition ihrer BenutzeroberflĂ€che und Betriebsparameter.
ZusÀtzliche Bundle-Verzeichnisse
Ăber die gĂ€ngigen Verzeichnisse hinaus können Bundles auch Folgendes enthalten:
- Frameworks: EnthĂ€lt gebĂŒndelte Frameworks, die von der Anwendung verwendet werden. Frameworks sind wie dylibs mit zusĂ€tzlichen Ressourcen.
- PlugIns: Ein Verzeichnis fĂŒr Plug-ins und Erweiterungen, die die FĂ€higkeiten der Anwendung erweitern.
- XPCServices: EnthĂ€lt XPC-Dienste, die von der Anwendung fĂŒr die Kommunikation auĂerhalb des Prozesses verwendet werden.
Diese Struktur stellt sicher, dass alle notwendigen Komponenten innerhalb des Bundles gekapselt sind, was eine modulare und sichere Anwendungsumgebung ermöglicht.
FĂŒr detailliertere Informationen zu Info.plist
-SchlĂŒsseln und deren Bedeutungen bietet die Apple-Entwicklerdokumentation umfangreiche Ressourcen: Apple Info.plist Key Reference.
tip
Lernen & ĂŒben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & ĂŒben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
UnterstĂŒtzen Sie HackTricks
- ĂberprĂŒfen Sie die AbonnementplĂ€ne!
- Treten Sie der đŹ Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter đŠ @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.