tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks

Udostępnianie danych w ramach i między aplikacjami na urządzeniach iOS jest ułatwione dzięki mechanizmowi UIPasteboard, który dzieli się na dwie główne kategorie:

  • Ogólny schowek systemowy: Służy do udostępniania danych w dowolnej aplikacji i jest zaprojektowany tak, aby utrzymywać dane po ponownym uruchomieniu urządzenia i odinstalowaniu aplikacji, co jest dostępne od iOS 10.
  • Niestandardowe / nazwane schowki: Służą specjalnie do udostępniania danych w obrębie aplikacji lub z inną aplikacją, która dzieli ten sam identyfikator zespołu, i nie są zaprojektowane do utrzymywania danych poza czasem życia procesu aplikacji, która je tworzy, zgodnie ze zmianami wprowadzonymi w iOS 10.

Rozważania dotyczące bezpieczeństwa odgrywają znaczącą rolę przy korzystaniu ze schowków. Na przykład:

  • Nie ma mechanizmu, który pozwalałby użytkownikom zarządzać uprawnieniami aplikacji do dostępu do schowka.
  • Aby zminimalizować ryzyko nieautoryzowanego monitorowania schowka w tle, dostęp jest ograniczony do momentu, gdy aplikacja jest na pierwszym planie (od iOS 9).
  • Użycie trwałych nazwanych schowków jest odradzane na rzecz wspólnych kontenerów z powodu obaw o prywatność.
  • Funkcja Uniwersalny schowek, wprowadzona w iOS 10, umożliwiająca udostępnianie treści między urządzeniami za pośrednictwem ogólnego schowka, może być zarządzana przez programistów w celu ustawienia wygasania danych i wyłączenia automatycznego transferu treści.

Zabezpieczenie, aby wrażliwe informacje nie były przypadkowo przechowywane w globalnym schowku, jest kluczowe. Dodatkowo aplikacje powinny być zaprojektowane tak, aby zapobiegać niewłaściwemu wykorzystaniu danych z globalnego schowka do niezamierzonych działań, a programiści są zachęcani do wdrażania środków zapobiegających kopiowaniu wrażliwych informacji do schowka.

Analiza statyczna

W przypadku analizy statycznej przeszukaj kod źródłowy lub binarny w poszukiwaniu:

  • generalPasteboard, aby zidentyfikować użycie ogólnego schowka systemowego.
  • pasteboardWithName:create: i pasteboardWithUniqueName do tworzenia niestandardowych schowków. Sprawdź, czy trwałość jest włączona, chociaż jest to przestarzałe.

Analiza dynamiczna

Analiza dynamiczna polega na podłączaniu lub śledzeniu konkretnych metod:

  • Monitoruj generalPasteboard w celu użycia systemowego.
  • Śledź pasteboardWithName:create: i pasteboardWithUniqueName dla niestandardowych implementacji.
  • Obserwuj wywołania przestarzałej metody setPersistent:, aby sprawdzić ustawienia trwałości.

Kluczowe szczegóły do monitorowania obejmują:

  • Nazwy schowków i zawartość (na przykład sprawdzanie ciągów, adresów URL, obrazów).
  • Liczba elementów i typy danych obecnych, wykorzystując standardowe i niestandardowe kontrole typów danych.
  • Opcje wygasania i lokalne poprzez inspekcję metody setItems:options:.

Przykładem użycia narzędzia monitorującego jest monitor schowka objection, który co 5 sekund sprawdza generalPasteboard pod kątem zmian i wyświetla nowe dane.

Oto prosty przykład skryptu JavaScript, inspirowany podejściem objection, do odczytu i rejestrowania zmian ze schowka 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)

Odniesienia

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks