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

69 lines
5.3 KiB
Markdown
Raw Normal View History

# Pliki pakietów macOS
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-04 09:09:21 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 01:46:25 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
</details>
2024-02-11 01:46:25 +00:00
## 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.
2024-02-07 04:05:50 +00:00
2024-02-11 01:46:25 +00:00
#### Ważne klucze w pliku Info.plist
2024-02-07 04:05:50 +00:00
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.
2024-02-07 04:05:50 +00:00
### Eksploracja pakietów
2024-02-07 04:05:50 +00:00
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](https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html).
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-04 09:09:21 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 01:46:25 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na GitHubie.
</details>