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

5.3 KiB

Pliki pakietów macOS

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Pakiety w macOS służą jako kontenery dla różnorodnych zasobów, w tym aplikacji, bibliotek i innych niezbędnych plików, sprawiając, że wyglądają one jako pojedyncze obiekty w Finderze, takie jak znane pliki *.app. Najczęściej spotykanym pakietem jest pakiet .app, choć inne typy, takie jak .framework, .systemextension i .kext, są również powszechne.

Istotne składniki pakietu

Wewnątrz pakietu, szczególnie w katalogu <aplikacja>.app/Contents/, znajduje się wiele ważnych zasobów:

  • _CodeSignature: Ten katalog przechowuje szczegóły podpisywania kodu niezbędne do weryfikacji integralności aplikacji. Możesz sprawdzić informacje o podpisywaniu kodu za pomocą poleceń takich jak: %%%bash openssl dgst -binary -sha1 /Applications/Safari.app/Contents/Resources/Assets.car | openssl base64 %%%
  • MacOS: Zawiera wykonywalny plik binarny aplikacji, który uruchamia się po interakcji użytkownika.
  • Resources: Repozytorium dla komponentów interfejsu użytkownika aplikacji, w tym obrazy, dokumenty i opisy interfejsu (pliki nib/xib).
  • Info.plist: Działa jako główny plik konfiguracyjny aplikacji, kluczowy dla systemu w celu rozpoznania i interakcji z aplikacją w odpowiedni sposób.

Ważne klucze w pliku Info.plist

Plik Info.plist jest fundamentem konfiguracji aplikacji, zawierając klucze takie jak:

  • CFBundleExecutable: Określa nazwę głównego pliku wykonywalnego znajdującego się w katalogu Contents/MacOS.
  • CFBundleIdentifier: Zapewnia globalny identyfikator aplikacji, szeroko używany przez macOS do zarządzania aplikacjami.
  • LSMinimumSystemVersion: Wskazuje minimalną wersję macOS wymaganą do uruchomienia aplikacji.

Eksploracja pakietów

Aby zbadać zawartość pakietu, takiego jak Safari.app, można użyć następującego polecenia: bash ls -lR /Applications/Safari.app/Contents

Ta eksploracja ujawnia katalogi takie jak _CodeSignature, MacOS, Resources, oraz pliki takie jak Info.plist, z każdym pełniącym unikalną rolę od zabezpieczania aplikacji po definiowanie jej interfejsu użytkownika i parametrów operacyjnych.

Dodatkowe katalogi pakietów

Poza powszechnymi katalogami, pakiety mogą również zawierać:

  • Frameworks: Zawiera spakowane frameworki używane przez aplikację. Frameworki są podobne do dylibs z dodatkowymi zasobami.
  • PlugIns: Katalog dla wtyczek i rozszerzeń, które zwiększają możliwości aplikacji.
  • XPCServices: Przechowuje usługi XPC używane przez aplikację do komunikacji międzyprocesowej.

Ta struktura zapewnia, że wszystkie niezbędne komponenty są zamknięte w pakiecie, ułatwiając modularne i bezpieczne środowisko aplikacji.

Dla bardziej szczegółowych informacji na temat kluczy Info.plist i ich znaczenia, dokumentacja deweloperska Apple oferuje obszerne zasoby: Apple Info.plist Key Reference.

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: