<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* **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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) **i** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **repozytoriów GitHub**.
**Identyfikacja dostarczania** to zbiór kluczy publicznych i prywatnych powiązanych z kontem dewelopera Apple. Aby **podpisywać aplikacje**, musisz zapłacić **99$/rok**, aby zarejestrować się w **Programie Dewelopera Apple** i uzyskać swoją identyfikację dostarczania. Bez tego nie będziesz mógł uruchamiać aplikacji ze źródłowego kodu na fizycznym urządzeniu. Inną opcją jest użycie **urządzenia z jailbreakiem**.
Począwszy od Xcode 7.2 Apple udostępnił opcję tworzenia **darmowego profilu dostarczania dla rozwoju iOS**, który umożliwia pisanie i testowanie aplikacji na prawdziwym iPhone'ie. Przejdź do _Xcode_ --> _Preferences_ --> _Accounts_ --> _+_ (Dodaj nowe ID aplikacji do swoich poświadczeń) --> _Kliknij utworzone ID Apple_ --> _Zarządzaj certyfikatami_ --> _+_ (Apple Development) --> _Gotowe_\
\_\_Następnie, aby uruchomić aplikację na iPhone'ie, musisz najpierw **wskazać iPhone'owi, aby zaufał komputerowi**. Następnie możesz spróbować **uruchomić aplikację na telefonie komórkowym z Xcode**, ale pojawi się błąd. Przejdź więc do _Ustawienia_ --> _Ogólne_ --> _Profile i zarządzanie urządzeniami_ --> Wybierz niezaufany profil i kliknij "**Zaufaj**".
Pierwszą rzeczą, którą musisz wiedzieć, jest to, że **przeprowadzenie pentestu wewnątrz symulatora będzie znacznie bardziej ograniczone niż w przypadku urządzenia z jailbreakiem**.
Wszystkie narzędzia niezbędne do budowy i obsługi aplikacji iOS są **oficjalnie obsługiwane tylko w systemie Mac OS**.\
Narzędziem de facto firmy Apple do tworzenia/debugowania/instrumentowania aplikacji iOS jest **Xcode**. Może być używany do pobierania innych komponentów, takich jak **symulatory** i różne **wersje SDK**, które są wymagane do budowy i **testowania** aplikacji.\
Zaleca się **pobranie** Xcode ze **sklepu aplikacji oficjalnego**. Inne wersje mogą zawierać złośliwe oprogramowanie.
Wewnątrz `/Users/<nazwa_użytkownika>/Library/Developer/CoreSimulator/Devices` możesz znaleźć wszystkie **zainstalowane symulatory**. Jeśli chcesz uzyskać dostęp do plików aplikacji utworzonej w jednym z emulatorów, może być trudno ustalić, **w którym z nich zainstalowana jest aplikacja**. Szybkim sposobem na **znalezienie poprawnego UID** jest uruchomienie aplikacji w symulatorze i wykonanie polecenia:
Gdy już znasz UID, zainstalowane aplikacje można znaleźć w `/Users/<nazwa_użytkownika>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application`
Jednak zaskakująco nie znajdziesz tutaj aplikacji. Musisz uzyskać dostęp do `/Users/<nazwa_użytkownika>/Library/Developer/Xcode/DerivedData/{Aplikacja}/Build/Products/Debug-iphonesimulator/`
Corellium to jedyny publicznie dostępny emulator iOS. Jest to rozwiązanie typu enterprise SaaS z modelem licencji na użytkownika i nie oferuje żadnej wersji próbnej.
Apple ściśle wymaga, aby kod uruchamiany na iPhone'ie był **podpisany przez certyfikat wydany przez Apple**. **Jailbreak** to proces aktywnego **omijania takich ograniczeń** i innych kontroli bezpieczeństwa wprowadzonych przez system operacyjny. Dlatego po zjailbreakowaniu urządzenia, **sprawdzanie integralności**, które jest odpowiedzialne za sprawdzanie zainstalowanych aplikacji, jest łatane, aby je **obejść**.
Chociaż często porównuje się **rootowanie** na Androidzie i **jailbreak** na iOS, są to fundamentalnie różne procesy. Rootowanie urządzeń Android może obejmować **instalację binarnego pliku `su`** lub **zamianę systemu na zrootowany niestandardowy ROM**, co niekoniecznie wymaga wykorzystania podatności, jeśli bootloader jest odblokowany. **Flashing niestandardowych ROM-ów** polega na zastąpieniu systemu operacyjnego urządzenia po odblokowaniu bootloadera, co czasami wymaga wykorzystania podatności.
W przeciwieństwie do tego, urządzenia iOS nie mogą flashować niestandardowych ROM-ów ze względu na ograniczenie bootloadera do uruchamiania tylko obrazów podpisanych przez Apple. **Jailbreak iOS** ma na celu obejście zabezpieczeń podpisu kodu Apple, aby uruchamiać niepodpisany kod, co jest utrudnione przez ciągłe ulepszenia zabezpieczeń Apple.
Jailbreak iOS staje się coraz trudniejszy, ponieważ Apple szybko łata podatności. **Zmniejszenie wersji iOS** jest możliwe tylko przez ograniczony czas po wydaniu, co czyni jailbreak kwestią czasową. Urządzenia używane do testów bezpieczeństwa nie powinny być aktualizowane, chyba że ponowne zjailbreakowanie jest gwarantowane.
Aktualizacje iOS są kontrolowane przez mechanizm **wyzwania-odpowiedzi** (bloki SHSH), który pozwala na instalację tylko odpowiedzi podpisanych przez Apple. Ten mechanizm, znany jako "okno podpisu", ogranicza możliwość przechowywania i późniejszego użycia pakietów OTA firmware. Strona internetowa [IPSW Downloads](https://ipsw.me) jest źródłem informacji na temat aktualnych okien podpisu.
Narzędzia do jailbreaku różnią się w zależności od wersji iOS i urządzenia. Zasoby takie jak [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com) i [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) dostarczają aktualnych informacji. Przykłady to:
Jailbreak **usuwa narzucone przez system operacyjny sandboxing**, umożliwiając aplikacjom dostęp do całego systemu plików. Ta swoboda umożliwia instalację niezatwierdzonych aplikacji i dostęp do większej liczby interfejsów API. Jednak dla zwykłych użytkowników **nie zaleca się** jailbreaku ze względu na potencjalne ryzyko bezpieczeństwa i niestabilność urządzenia.
**Więcej informacji na temat wykrywania jailbreaku** [**tutaj**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.**
* Możesz spróbować uniknąć tych wykryć, używając `ios jailbreak disable` z **narzędziem objection**.
* Możesz również zainstalować narzędzie **Liberty Lite** (https://ryleyangus.com/repo/). Po dodaniu repozytorium, aplikacja powinna pojawić się w zakładce „Wyszukaj”.
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **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 trikami hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.