macOS Security & Privilege Escalation
Reading time: 5 minutes
tip
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Basic MacOS
Jeśli nie znasz macOS, powinieneś zacząć od nauki podstaw macOS:
- Specjalne pliki i uprawnienia macOS:
macOS Files, Folders, Binaries & Memory
- Typowi użytkownicy macOS
macOS Users & External Accounts
- AppleFS
- architektura jądra
macOS Kernel & System Extensions
- Typowe usługi i protokoły sieciowe macOS
macOS Network Services & Protocols
- Opensource macOS: https://opensource.apple.com/
- Aby pobrać
tar.gz
, zmień URL, taki jak https://opensource.apple.com/source/dyld/ na https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz
MacOS MDM
W firmach systemy macOS będą prawdopodobnie zarządzane przez MDM. Dlatego z perspektywy atakującego interesujące jest, jak to działa:
MacOS - Inspekcja, Debugowanie i Fuzzing
macOS Apps - Inspecting, debugging and Fuzzing
MacOS Security Protections
Attack Surface
Uprawnienia plików
Jeśli proces działający jako root zapisuje plik, który może być kontrolowany przez użytkownika, użytkownik może to wykorzystać do eskalacji uprawnień.
Może to wystąpić w następujących sytuacjach:
- Plik użyty został już utworzony przez użytkownika (należy do użytkownika)
- Plik użyty jest zapisywalny przez użytkownika z powodu grupy
- Plik użyty znajduje się w katalogu należącym do użytkownika (użytkownik mógłby utworzyć plik)
- Plik użyty znajduje się w katalogu należącym do roota, ale użytkownik ma do niego dostęp do zapisu z powodu grupy (użytkownik mógłby utworzyć plik)
Możliwość utworzenia pliku, który będzie używany przez roota, pozwala użytkownikowi wykorzystać jego zawartość lub nawet utworzyć symlinki/hardlinki, aby wskazać go w inne miejsce.
W przypadku tego rodzaju luk nie zapomnij sprawdzić podatnych instalatorów .pkg
:
Obsługa rozszerzeń plików i schematów URL
Dziwne aplikacje zarejestrowane przez rozszerzenia plików mogą być nadużywane, a różne aplikacje mogą być zarejestrowane do otwierania konkretnych protokołów
macOS File Extension & URL scheme app handlers
macOS TCC / SIP Privilege Escalation
W macOS aplikacje i pliki binarne mogą mieć uprawnienia do dostępu do folderów lub ustawień, które czynią je bardziej uprzywilejowanymi niż inne.
Dlatego atakujący, który chce skutecznie skompromitować maszynę macOS, będzie musiał eskalować swoje uprawnienia TCC (lub nawet obejść SIP, w zależności od jego potrzeb).
Te uprawnienia są zazwyczaj przyznawane w formie uprawnień, z którymi aplikacja jest podpisana, lub aplikacja może poprosić o pewne dostępy, a po zatwierdzeniu ich przez użytkownika mogą być one znalezione w bazach danych TCC. Innym sposobem, w jaki proces może uzyskać te uprawnienia, jest bycie dzieckiem procesu z tymi uprawnieniami, ponieważ są one zazwyczaj dziedziczone.
Śledź te linki, aby znaleźć różne sposoby eskalacji uprawnień w TCC, aby obejść TCC i jak w przeszłości SIP został obejrzany.
macOS Traditional Privilege Escalation
Oczywiście z perspektywy red teamu powinieneś być również zainteresowany eskalacją do roota. Sprawdź następujący post, aby uzyskać kilka wskazówek:
macOS Compliance
References
- OS X Incident Response: Scripting and Analysis
- https://taomm.org/vol1/analysis.html
- https://github.com/NicolasGrimonpont/Cheatsheet
- https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ
- https://www.youtube.com/watch?v=vMGiplQtjTY
tip
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.