.. | ||
macos-fs-tricks | ||
macos-sandbox | ||
macos-tcc | ||
macos-dangerous-entitlements.md | ||
macos-gatekeeper.md | ||
macos-launch-environment-constraints.md | ||
macos-sip.md | ||
README.md |
Zabezpieczenia macOS
Nauka hakowania 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ź PLANY SUBSKRYPCYJNE!
- 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 hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na GitHubie.
Gatekeeper
Gatekeeper to zazwyczaj odniesienie do kombinacji Kwarantanna + Gatekeeper + XProtect, 3 modułów bezpieczeństwa macOS, które będą próbować zapobiec użytkownikom uruchamiania potencjalnie złośliwego oprogramowania pobranego.
Więcej informacji w:
{% content-ref url="macos-gatekeeper.md" %} macos-gatekeeper.md {% endcontent-ref %}
Ograniczenia procesów
SIP - Ochrona Integralności Systemu
{% content-ref url="macos-sip.md" %} macos-sip.md {% endcontent-ref %}
Piaskownica
Piaskownica macOS ogranicza działanie aplikacji uruchamianych wewnątrz piaskownicy do dozwolonych działań określonych w profilu piaskownicy, z jakim aplikacja jest uruchamiana. Pomaga to zapewnić, że aplikacja będzie uzyskiwać dostęp tylko do oczekiwanych zasobów.
{% content-ref url="macos-sandbox/" %} macos-sandbox {% endcontent-ref %}
TCC - Przejrzystość, Zgoda i Kontrola
TCC (Przejrzystość, Zgoda i Kontrola) to framework bezpieczeństwa. Został zaprojektowany do zarządzania uprawnieniami aplikacji, w szczególności poprzez regulowanie ich dostępu do wrażliwych funkcji. Obejmuje to elementy takie jak usługi lokalizacyjne, kontakty, zdjęcia, mikrofon, kamera, dostępność i pełny dostęp do dysku. TCC zapewnia, że aplikacje mogą uzyskać dostęp do tych funkcji dopiero po uzyskaniu wyraźnej zgody użytkownika, wzmacniając tym samym prywatność i kontrolę nad danymi osobowymi.
{% content-ref url="macos-tcc/" %} macos-tcc {% endcontent-ref %}
Ograniczenia uruchamiania/środowiska i pamięć podręczna zaufania
Ograniczenia uruchamiania w macOS to funkcja bezpieczeństwa, która reguluje inicjowanie procesu, określając kto może uruchomić proces, jak i skąd. Wprowadzone w macOS Ventura, kategoryzują binaria systemowe do kategorii ograniczeń w pamięci podręcznej zaufania. Każdy binarny plik wykonywalny ma określone zasady dla swojego uruchamiania, w tym ograniczenia własne, rodzica i odpowiedzialne. Rozszerzone na aplikacje innych firm jako Ograniczenia Środowiskowe w macOS Sonoma, te funkcje pomagają zmniejszyć potencjalne wykorzystania systemu, regulując warunki uruchamiania procesu.
{% content-ref url="macos-launch-environment-constraints.md" %} macos-launch-environment-constraints.md {% endcontent-ref %}
MRT - Narzędzie do Usuwania Złośliwego Oprogramowania
Narzędzie do usuwania złośliwego oprogramowania (MRT) to kolejna część infrastruktury bezpieczeństwa macOS. Jak sugeruje nazwa, główną funkcją MRT jest usuwanie znanego złośliwego oprogramowania z zainfekowanych systemów.
Gdy złośliwe oprogramowanie zostanie wykryte na Macu (zarówno przez XProtect, jak i innymi środkami), MRT może być używane do automatycznego usunięcia złośliwego oprogramowania. MRT działa w tle i zazwyczaj uruchamia się za każdym razem, gdy system jest aktualizowany lub gdy pobierana jest nowa definicja złośliwego oprogramowania (wygląda na to, że reguły, według których MRT wykrywa złośliwe oprogramowanie, znajdują się wewnątrz binariów).
Podczas gdy zarówno XProtect, jak i MRT są częścią środków bezpieczeństwa macOS, pełnią różne funkcje:
- XProtect to narzędzie zapobiegawcze. Sprawdza pliki podczas pobierania (za pośrednictwem określonych aplikacji) i jeśli wykryje jakiekolwiek znane rodzaje złośliwego oprogramowania, zapobiega otwarciu pliku, uniemożliwiając tym samym zainfekowanie systemu złośliwym oprogramowaniem na samym początku.
- MRT natomiast jest narzędziem reaktywnym. Działa po wykryciu złośliwego oprogramowania w systemie, mając na celu usunięcie szkodliwego oprogramowania w celu oczyszczenia systemu.
Aplikacja MRT znajduje się w /Library/Apple/System/Library/CoreServices/MRT.app
Zarządzanie Zadaniami w Tle
macOS teraz informuje za każdym razem, gdy narzędzie wykorzystuje dobrze znaną technikę trwałego wykonywania kodu (taką jak Elementy logowania, Daemony...), dzięki czemu użytkownik lepiej wie, które oprogramowanie jest trwałe.
To działa z daemonem znajdującym się w /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd
oraz agentem w /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app
Sposób, w jaki backgroundtaskmanagementd
wie, że coś jest zainstalowane w trwałym folderze, polega na uzyskiwaniu zdarzeń FSEvents i tworzeniu pewnych obsług dla nich.
Co więcej, istnieje plik plist zawierający dobrze znane aplikacje, które często są trwałe, utrzymywane przez Apple, znajdujący się pod adresem: /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist
[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]
Wyliczanie
Możliwe jest wyliczenie wszystkich skonfigurowanych elementów w tle za pomocą narzędzia wiersza poleceń Apple:
# The tool will always ask for the users password
sfltool dumpbtm
Ponadto istnieje możliwość wyświetlenia tych informacji za pomocą DumpBTM.
# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM
Te informacje są przechowywane w /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm
i Terminal potrzebuje FDA.
Bawienie się z BTM
Kiedy zostanie znalezione nowe trwałe zdarzenie typu ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD
. Więc, każdy sposób na zapobieżenie wysłania tego zdarzenia lub powiadomienia agenta użytkownika pomoże atakującemu w obejściu BTM.
- Zresetowanie bazy danych: Uruchomienie poniższej komendy zresetuje bazę danych (powinno ją odbudować od nowa), jednakże, z jakiegoś powodu, po jej uruchomieniu, żadne nowe trwałe zdarzenie nie zostanie zgłoszone aż do ponownego uruchomienia systemu.
- Wymagane jest bycie root.
# Reset the database
sfltool resettbtm
- Zatrzymaj agenta: Istnieje możliwość wysłania sygnału zatrzymania do agenta, dzięki czemu nie będzie on alarmował użytkownika, gdy zostaną znalezione nowe wykrycia.
# Get PID
pgrep BackgroundTaskManagementAgent
1011
# Stop it
kill -SIGSTOP 1011
# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
- Błąd: Jeśli proces, który utworzył trwałość, istnieje szybko zaraz po tym, demon spróbuje uzyskać informacje na jego temat, zawiódł, i nie będzie w stanie wysłać zdarzenia wskazującego, że coś nowego jest trwałe.
Odnośniki i więcej informacji o BTM:
- https://youtu.be/9hjUmT031tc?t=26481
- https://www.patreon.com/posts/new-developer-77420730?l=fr
- https://support.apple.com/en-gb/guide/deployment/depdca572563/web
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ź PLANY SUBSKRYPCYJNE!
- Kup 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.