hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections
2024-03-09 13:18:06 +00:00
..
macos-fs-tricks Translated ['README.md', 'forensics/basic-forensic-methodology/partition 2024-03-09 13:18:06 +00:00
macos-sandbox Translated to Serbian 2024-02-10 13:11:20 +00:00
macos-tcc Translated ['generic-methodologies-and-resources/external-recon-methodol 2024-02-23 16:45:30 +00:00
macos-dangerous-entitlements.md Translated to Serbian 2024-02-10 13:11:20 +00:00
macos-gatekeeper.md Translated to Serbian 2024-02-10 13:11:20 +00:00
macos-launch-environment-constraints.md Translated to Serbian 2024-02-10 13:11:20 +00:00
macos-sip.md Translated to Serbian 2024-02-10 13:11:20 +00:00
README.md Translated to Serbian 2024-02-10 13:11:20 +00:00

macOS Sigurnosne zaštite

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Gatekeeper

Gatekeeper se obično koristi za kombinaciju Quarantine + Gatekeeper + XProtect, 3 macOS sigurnosnih modula koji će pokušati da spreče korisnike da izvrše potencijalno zlonamerni softver koji je preuzet.

Više informacija u:

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

Ograničenja procesa

SIP - Sistem zaštite integriteta

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

Pesak

MacOS pesak ograničava aplikacije koje se izvršavaju unutar peska na dozvoljene radnje navedene u profilu peska sa kojim aplikacija radi. Ovo pomaže da se osigura da aplikacija pristupa samo očekivanim resursima.

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

TCC - Transparentnost, saglasnost i kontrola

TCC (Transparentnost, saglasnost i kontrola) je sigurnosni okvir. Namjenjen je upravljanju dozvolama aplikacija, posebno regulisanjem njihovog pristupa osetljivim funkcijama. To uključuje elemente kao što su usluge lokacije, kontakti, fotografije, mikrofon, kamera, pristupačnost i pun pristup disku. TCC osigurava da aplikacije mogu pristupiti ovim funkcijama samo nakon dobijanja izričite saglasnosti korisnika, čime se jača privatnost i kontrola nad ličnim podacima.

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

Ograničenja pokretanja/okruženja i keš poverenja

Ograničenja pokretanja u macOS-u su sigurnosna funkcija koja reguliše pokretanje procesa definisanjem ko može pokrenuti proces, kako i odakle. Uvedena u macOS Ventura, kategorizuje sistemski binarni kod u kategorije ograničenja unutar keša poverenja. Svaki izvršni binarni kod ima postavljena pravila za njegovo pokretanje, uključujući samo, roditelj i odgovorni ograničenja. Prošireno na aplikacije trećih strana kao Ograničenja okruženja u macOS Sonoma, ove funkcije pomažu u ublažavanju potencijalnih zloupotreba sistema regulisanjem uslova pokretanja procesa.

{% content-ref url="macos-launch-environment-constraints.md" %} macos-launch-environment-constraints.md {% endcontent-ref %}

MRT - Alat za uklanjanje malvera

Alat za uklanjanje malvera (MRT) je još jedan deo sigurnosne infrastrukture macOS-a. Kao što naziv sugeriše, glavna funkcija MRT-a je uklanjanje poznatih malvera sa zaraženih sistema.

Kada se malver otkrije na Mac-u (bilo putem XProtect-a ili na neki drugi način), MRT se može koristiti za automatsko uklanjanje malvera. MRT radi tiho u pozadini i obično se pokreće kada se sistem ažurira ili kada se preuzme nova definicija malvera (izgleda da su pravila koja MRT koristi za otkrivanje malvera unutar binarnog koda).

Iako su i XProtect i MRT deo sigurnosnih mera macOS-a, obavljaju različite funkcije:

  • XProtect je preventivni alat. Proverava datoteke prilikom preuzimanja (putem određenih aplikacija) i ako otkrije bilo koji poznati tip malvera, sprečava otvaranje datoteke, čime sprečava infekciju sistema malverom.
  • MRT, s druge strane, je reaktivni alat. Radi nakon što je malver otkriven na sistemu, sa ciljem uklanjanja zlonamernog softvera radi čišćenja sistema.

Aplikacija MRT se nalazi u /Library/Apple/System/Library/CoreServices/MRT.app

Upravljanje pozadinskim zadacima

macOS sada upozorava svaki put kada alat koristi dobro poznatu tehniku za trajno izvršavanje koda (kao što su stavke za prijavljivanje, daemoni...), tako da korisnik bolje zna koji softver je trajno prisutan.

Ovo se pokreće sa demonom koji se nalazi u /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd i agentom u /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app

Način na koji backgroundtaskmanagementd zna da je nešto instalirano u trajnom folderu je dobijanje FSEvents i kreiranje nekih handlera za njih.

Osim toga, postoji plist datoteka koja sadrži dobro poznate aplikacije koje često ostaju prisutne, održavane od strane Apple-a, a nalazi se u: /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"
}
[...]

Enumeracija

Moguće je izlistati sve konfigurisane pozadinske stavke pokretanjem Apple CLI alata:

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

Osim toga, takođe je moguće prikazati ovu informaciju pomoću DumpBTM.

# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

Ove informacije se čuvaju u /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm i Terminalu je potrebna FDA.

Manipulacija sa BTM

Kada se pronađe nova upornost, događaj tipa ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD se javlja. Dakle, bilo koji način da se spreči slanje ovog događaja ili da se agent obavesti korisnik će pomoći napadaču da zaobiđe BTM.

  • Resetovanje baze podataka: Pokretanje sledeće komande će resetovati bazu podataka (trebalo bi je ponovo izgraditi od početka), međutim, iz nekog razloga, nakon pokretanja ove komande, nijedna nova upornost neće biti prijavljena sve dok se sistem ne ponovo pokrene.
  • Potreban je root pristup.
# Reset the database
sfltool resettbtm
  • Zaustavite Agenta: Moguće je poslati signal zaustavljanja agentu kako se ne bi obaveštavao korisnik kada se pronađu nove detekcije.
# 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
  • Bag: Ako proces koji je stvorio upornost brzo završi, demon će pokušati dobiti informacije o tome, neće uspjeti, i neće moći poslati događaj koji ukazuje da se nešto novo uporno.

Reference i više informacija o BTM:

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: