6.8 KiB
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!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Mechanizm 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:
ipasteboardWithUniqueName
, 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:
ipasteboardWithUniqueName
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:
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://hackmd.io/@robihamanto/owasp-robi
- 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!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.