5.9 KiB
macOS Dirty NIB
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ź SUBSCRIPTION PLANS!
- 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.
Aby uzyskać więcej szczegółów na temat techniki, sprawdź oryginalny post na stronie: https://blog.xpnsec.com/dirtynib/**. Oto streszczenie:
Pliki NIB, będące częścią ekosystemu Apple do tworzenia aplikacji, służą do definiowania elementów interfejsu użytkownika i ich interakcji. Obejmują zserializowane obiekty, takie jak okna i przyciski, i są ładowane w czasie wykonywania. Pomimo ich ciągłego użycia, Apple obecnie zaleca korzystanie z Storyboards do bardziej kompleksowej wizualizacji przepływu interfejsu użytkownika.
Zagrożenia związane z plikami NIB
Warto zauważyć, że pliki NIB mogą stanowić ryzyko dla bezpieczeństwa. Mają potencjał do wykonywania dowolnych poleceń, a zmiany w plikach NIB wewnątrz aplikacji nie powstrzymują Gatekeepera przed uruchomieniem aplikacji, co stanowi poważne zagrożenie.
Proces wstrzykiwania brudnego NIB
Tworzenie i konfiguracja pliku NIB
- Początkowa konfiguracja:
- Utwórz nowy plik NIB za pomocą XCode.
- Dodaj obiekt do interfejsu, ustawiając jego klasę na
NSAppleScript
. - Skonfiguruj początkową właściwość
source
za pomocą atrybutów czasu wykonania zdefiniowanych przez użytkownika.
- Gadżet wykonujący kod:
- Konfiguracja umożliwia uruchamianie skryptów AppleScript na żądanie.
- Dodaj przycisk, który aktywuje obiekt
Apple Script
, wywołując specyficzny selektorexecuteAndReturnError:
.
- Testowanie:
- Prosty skrypt AppleScript do celów testowych:
set theDialogText to "PWND"
display dialog theDialogText
- Przetestuj, uruchamiając go w debuggerze XCode i klikając przycisk.
Celowanie w aplikację (Przykład: Pages)
- Przygotowanie:
- Skopiuj docelową aplikację (np. Pages) do osobnego katalogu (np.
/tmp/
). - Uruchom aplikację, aby ominąć problemy z Gatekeeperem i zbuforować ją.
- Nadpisanie pliku NIB:
- Zastąp istniejący plik NIB (np. About Panel NIB) przygotowanym plikiem DirtyNIB.
- Wykonanie:
- Uruchom wykonanie, oddziałując na aplikację (np. wybierając pozycję menu
About
).
Dowód koncepcji: Dostęp do danych użytkownika
- Zmodyfikuj skrypt AppleScript, aby uzyskać dostęp i wyodrębnić dane użytkownika, takie jak zdjęcia, bez zgody użytkownika.
Przykład kodu: Złośliwy plik .xib
- Uzyskaj dostęp i przejrzyj przykład złośliwego pliku .xib, który demonstruje wykonywanie dowolnego kodu.
Rozwiązywanie ograniczeń uruchamiania
- Ograniczenia uruchamiania uniemożliwiają uruchamianie aplikacji z nieoczekiwanych lokalizacji (np.
/tmp
). - Możliwe jest zidentyfikowanie aplikacji niechronionych przez ograniczenia uruchamiania i celowanie w nie do wstrzykiwania plików NIB.
Dodatkowe zabezpieczenia macOS
Od macOS Sonoma w górę, modyfikacje wewnątrz paczek aplikacji są ograniczone. Jednak wcześniejsze metody obejmowały:
- Skopiowanie aplikacji do innego miejsca (np.
/tmp/
). - Zmiana nazw katalogów wewnątrz paczki aplikacji w celu obejścia początkowych zabezpieczeń.
- Po uruchomieniu aplikacji w celu zarejestrowania jej w Gatekeeperze, modyfikacja paczki aplikacji (np. zastąpienie MainMenu.nib przez Dirty.nib).
- Przywrócenie pierwotnych nazw katalogów i ponowne uruchomienie aplikacji w celu wykonania wstrzykniętego pliku NIB.
Uwaga: Ostatnie aktualizacje macOS zabezpieczyły tę luki, uniemożliwiając modyfikacje plików wewnątrz paczek aplikacji po zbuforowaniu przez Gatekeepera, co czyni tę luki nieskuteczną.
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ź SUBSCRIPTION PLANS!
- 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.