Ekstrakcja uprawnień z skompilowanej aplikacji
Reading time: 3 minutes
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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.
Podsumowanie strony https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
Ekstrakcja uprawnień i plików mobilnych provision
W przypadku aplikacji IPA lub zainstalowanej aplikacji 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 binariów, 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.
Ekstrakcja pliku plist uprawnień z binarnego pliku aplikacji
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ć:
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
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":
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
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 uzyskiwanych 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:
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
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.
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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.