iOS Extracting Entitlements From Compiled Application
Podsumowanie strony https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Extracting Entitlements and Mobile Provision Files
Podczas pracy z plikiem IPA aplikacji lub zainstalowaną aplikacją na urządzeniu z jailbreakiem, bezpośrednie znalezienie plików .entitlements
lub pliku embedded.mobileprovision
może być niemożliwe. Niemniej jednak, listy właściwości uprawnień można nadal wyodrębnić z binarnego pliku aplikacji, stosując procedury opisane w rozdziale "Podstawowe testowanie bezpieczeństwa iOS", szczególnie w sekcji "Pozyskiwanie binarnego pliku aplikacji".
Nawet w przypadku zaszyfrowanych plików binarnych, można zastosować pewne kroki, aby wyodrębnić te pliki. Jeśli te kroki zawiodą, mogą być wymagane narzędzia takie jak Clutch (jeśli jest zgodne z wersją iOS), frida-ios-dump lub podobne narzędzia do odszyfrowania i wyodrębnienia aplikacji.
Extracting the Entitlements Plist from the App Binary
Gdy binarny plik aplikacji jest dostępny na komputerze, binwalk można wykorzystać do wyodrębnienia wszystkich plików XML. Poniższe polecenie pokazuje, jak to zrobić:
Alternatywnie, radare2 może być użyty do cichego uruchomienia polecenia i wyjścia, przeszukując wszystkie ciągi w binarnym pliku aplikacji, które zawierają "PropertyList":
Obie metody, binwalk i radare2, umożliwiają ekstrakcję plików plist
, przy czym inspekcja pierwszej (0x0015d2a4) ujawnia udane odzyskanie oryginalnego pliku uprawnień z Telegramu.
Dla binariów aplikacji uzyskanych na urządzeniach z jailbreakiem (np. przez SSH), polecenie grep z flagą -a, --text
może być użyte do traktowania wszystkich plików jako tekst ASCII:
Dostosowanie flagi -A num, --after-context=num
pozwala na wyświetlenie większej lub mniejszej liczby linii. Ta metoda jest wykonalna nawet dla zaszyfrowanych binariów aplikacji i została zweryfikowana w przypadku wielu aplikacji z App Store. Narzędzia wspomniane wcześniej mogą być również używane na zrootowanych urządzeniach iOS w podobnych celach.
Uwaga: Bezpośrednie użycie polecenia strings
nie jest zalecane do tego zadania z powodu jego ograniczeń w znajdowaniu istotnych informacji. Zamiast tego, zaleca się użycie grep z flagą -a
na binarium lub wykorzystanie radare2 (izz
)/rabin2 (-zz
) dla bardziej efektywnych wyników.
Last updated