Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)! * 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 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.
Mechanizm [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard) ułatwia udostępnianie danych wewnątrz i między aplikacjami na urządzeniach iOS i dzieli się na dwie podstawowe kategorie: - **Systemowy schowek ogólny**: Służy do udostępniania danych z **dowolną aplikacją** i jest zaprojektowany tak, aby dane przetrwały restart urządzenia i odinstalowanie aplikacji, funkcja dostępna od iOS 10. - **Niestandardowe / nazwane schowki**: Są one przeznaczone do udostępniania danych **wewnątrz aplikacji lub z inną aplikacją**, która ma ten sam identyfikator zespołu, i nie są zaprojektowane do przetrwania po zakończeniu procesu aplikacji, który je tworzy, zgodnie z wprowadzonymi zmianami w iOS 10. **Rozważania dotyczące bezpieczeństwa** odgrywają istotną rolę podczas korzystania ze schowków. Na przykład: - Nie ma mechanizmu umożliwiającego użytkownikom zarządzanie uprawnieniami aplikacji do dostępu do **schowka**. - Aby zmniejszyć ryzyko nieautoryzowanego monitorowania schowka w tle, dostęp jest ograniczony do czasu, gdy aplikacja jest w trybie aktywnym (od iOS 9). - Zaleca się unikanie korzystania z trwałych nazwanych schowków na rzecz współdzielonych kontenerów ze względu na problemy z prywatnością. - Funkcja **Uniwersalny Schowek**, wprowadzona wraz z iOS 10, umożliwia udostępnianie treści między urządzeniami za pomocą schowka ogólnego i może być zarządzana przez programistów w celu ustawienia wygaśnięcia danych i wyłączenia automatycznego transferu treści. Należy zadbać o to, aby **wrażliwe informacje nie były przypadkowo przechowywane** w globalnym schowku. Ponadto, aplikacje powinny być zaprojektowane w taki sposób, aby zapobiegać nadużyciom danych z globalnego schowka w celu niezamierzonych działań, a programistów zachęca się do wprowadzania środków zapobiegających kopiowaniu wrażliwych informacji do schowka. ### Analiza statyczna W przypadku analizy statycznej wyszukaj kod źródłowy lub plik binarny: - `generalPasteboard`, aby zidentyfikować użycie **systemowego schowka ogólnego**. - `pasteboardWithName:create:` i `pasteboardWithUniqueName`, aby tworzyć **niestandardowe schowki**. Sprawdź, czy włączona jest trwałość, chociaż jest to przestarzałe. ### Analiza dynamiczna Analiza dynamiczna polega na podłączaniu lub śledzeniu określonych metod: - Monitoruj `generalPasteboard` w celu śledzenia użycia na poziomie systemowym. - Śledź `pasteboardWithName:create:` i `pasteboardWithUniqueName` dla niestandardowych implementacji. - Obserwuj wywołania przestarzałej metody `setPersistent:` w celu sprawdzenia ustawień trwałości. Kluczowe szczegóły do monitorowania obejmują: - **Nazwy schowków** i **zawartość** (na przykład sprawdzanie ciągów znaków, adresów URL, obrazów). - **Liczba elementów** i **typy danych** obecne, wykorzystując standardowe i niestandardowe sprawdzanie typów danych. - **Opcje wygaśnięcia i tylko lokalne** poprzez sprawdzenie metody `setItems:options:`. Przykładem narzędzia do monitorowania jest **monitor schowka objection**, który co 5 sekund sprawdza zmiany w generalPasteboard i wyświetla nowe dane. Oto prosty przykład skryptu JavaScript, inspirowanego podejściem objection, do odczytywania i rejestrowania zmian w schowku co 5 sekund: ```javascript const UIPasteboard = ObjC.classes.UIPasteboard; const Pasteboard = UIPasteboard.generalPasteboard(); var items = ""; var count = Pasteboard.changeCount().toString(); setInterval(function () { const currentCount = Pasteboard.changeCount().toString(); const currentItems = Pasteboard.items().toString(); if (currentCount === count) { return; } items = currentItems; count = currentCount; console.log('[* Pasteboard changed] count: ' + count + ' hasStrings: ' + Pasteboard.hasStrings().toString() + ' hasURLs: ' + Pasteboard.hasURLs().toString() + ' hasImages: ' + Pasteboard.hasImages().toString()); console.log(items); }, 1000 * 5); ``` ## Odwołania * [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8) * [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi) * [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)! * 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.