hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections
2024-03-28 17:36:36 +00:00
..
macos-fs-tricks Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-03-28 17:36:36 +00:00
macos-sandbox Translated to Polish 2024-02-11 01:46:25 +00:00
macos-tcc Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-17 16:39:08 +00:00
macos-dangerous-entitlements.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2024-03-17 16:39:08 +00:00
macos-gatekeeper.md Translated to Polish 2024-02-11 01:46:25 +00:00
macos-launch-environment-constraints.md Translated to Polish 2024-02-11 01:46:25 +00:00
macos-sip.md Translated to Polish 2024-02-11 01:46:25 +00:00
README.md Translated to Polish 2024-02-11 01:46:25 +00:00

Ochrona macOS

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Gatekeeper

Gatekeeper to zazwyczaj odnosi się do kombinacji Quarantine + Gatekeeper + XProtect, 3 modułów bezpieczeństwa macOS, które będą próbować zapobiec uruchamianiu potencjalnie złośliwego oprogramowania pobranego przez użytkowników.

Więcej informacji:

{% content-ref url="macos-gatekeeper.md" %} macos-gatekeeper.md {% endcontent-ref %}

Ograniczenia procesów

SIP - System Integrity Protection

{% content-ref url="macos-sip.md" %} macos-sip.md {% endcontent-ref %}

Sandbox

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 miała dostęp tylko do oczekiwanych zasobów.

{% content-ref url="macos-sandbox/" %} macos-sandbox {% endcontent-ref %}

TCC (Transparency, Consent, and Control) to framework bezpieczeństwa. Został zaprojektowany do zarządzania uprawnieniami aplikacji, w szczególności regulującym ich dostęp do funkcji ochrony prywatności i kontroli danych osobowych, takich 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 tylko 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 inicjację procesu, określając, kto może uruchomić proces, jak i skąd. Wprowadzone w macOS Ventura, kategoryzują binarne pliki systemowe w kategoriach ograniczeń w ramach pamięci podręcznej zaufania. Każdy plik wykonywalny ma określone zasady dotyczące jego uruchamiania, w tym ograniczenia własne, rodzica i odpowiedzialne. Rozszerzone na aplikacje firm trzecich jako Ograniczenia środowiskowe w macOS Sonoma, te funkcje pomagają łagodzić 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 wskazuje nazwa, główną funkcją MRT jest usuwanie znanego złośliwego oprogramowania z zainfekowanych systemów.

Po wykryciu złośliwego oprogramowania na komputerze Mac (zarówno przez XProtect, jak i za pomocą innych środków), 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 binarnego pliku).

Podczas gdy zarówno XProtect, jak i MRT są częścią środków bezpieczeństwa macOS, pełnią one różne funkcje:

  • XProtect to narzędzie zapobiegawcze. Sprawdza pliki podczas ich pobierania (za pośrednictwem określonych aplikacji) i jeśli wykryje jakiekolwiek znane typy złośliwego oprogramowania, uniemożliwia otwarcie pliku, tym samym zapobiegając zainfekowaniu systemu przez złośliwe oprogramowanie.
  • MRT natomiast jest narzędziem reaktywnym. Działa po wykryciu złośliwego oprogramowania na 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 używa dobrze znanego sposobu na utrwalenie wykonywania kodu (takiego jak elementy logowania, demony...), dzięki czemu użytkownik lepiej wie, które oprogramowanie jest trwałe.

Działa to z demona znajdującego się w /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd oraz agenta 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 otrzymywaniu zdarzeń FSEvents i tworzeniu odpowiednich handlerów dla nich.

Ponadto, istnieje plik plist, który zawiera dobrze znane aplikacje, które często są trwałe i są 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 tła za pomocą narzędzia Apple CLI:

# The tool will always ask for the users password
sfltool dumpbtm

Ponadto, możliwe jest również wylistowanie 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

Ta informacja jest przechowywana w /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm i Terminal potrzebuje FDA.

Mieszanie z BTM

Gdy zostanie znalezione nowe trwałe zdarzenie typu ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD. Więc, jakakolwiek metoda uniemożliwiająca wysłanie tego zdarzenia lub powiadomienia użytkownika przez agenta pomoże atakującemu w ominięciu BTM.

  • Resetowanie bazy danych: Uruchomienie następującej komendy zresetuje bazę danych (powinna być odbudowana od podstaw), jednak z jakiegoś powodu po jej uruchomieniu nie zostaną wyświetlone żadne nowe trwałe zdarzenia, dopóki system nie zostanie ponownie uruchomiony.
  • Wymagane jest root.
# Reset the database
sfltool resettbtm
  • Zatrzymaj agenta: Możliwe jest wysłanie sygnału zatrzymania do agenta, aby nie powiadamiał 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ść, zakończy się szybko po tym, demon spróbuje uzyskać informacje na jego temat, nie powiedzie się i nie będzie w stanie wysłać zdarzenia wskazującego, że coś nowego jest trwałe.

Odnośniki i więcej informacji na temat BTM:

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: