macOS Dangerous Entitlements & TCC perms
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Napomena: entitlements koji počinju sa com.apple
nisu dostupni trećim stranama, samo Apple može da ih dodeli.
com.apple.rootless.install.heritable
Entitlement com.apple.rootless.install.heritable
omogućava obiđi SIP. Proverite ovo za više informacija.
com.apple.rootless.install
Entitlement com.apple.rootless.install
omogućava obiđi SIP. Proverite ovo za više informacija.
com.apple.system-task-ports
(ranije nazvan task_for_pid-allow
)Ovaj entitlement omogućava dobijanje task porta za bilo koji proces, osim za kernel. Proverite ovo za više informacija.
com.apple.security.get-task-allow
Ovaj entitlement omogućava drugim procesima sa com.apple.security.cs.debugger
entitlement da dobiju task port procesa koji pokreće binarni fajl sa ovim entitlementom i ubace kod u njega. Proverite ovo za više informacija.
com.apple.security.cs.debugger
Aplikacije sa Debugging Tool Entitlement mogu pozvati task_for_pid()
da dobiju validan task port za nesignirane i treće strane aplikacije sa Get Task Allow
entitlement postavljenim na true
. Međutim, čak i sa entitlementom za debugging alat, debugger ne može dobiti task portove procesa koji nemaju Get Task Allow
entitlement, i koji su stoga zaštićeni System Integrity Protection. Proverite ovo za više informacija.
com.apple.security.cs.disable-library-validation
Ovaj entitlement omogućava učitavanje frameworka, plug-inova ili biblioteka bez da budu potpisani od strane Apple-a ili potpisani sa istim Team ID kao glavni izvršni fajl, tako da napadač može zloupotrebiti učitavanje neke proizvoljne biblioteke da ubaci kod. Proverite ovo za više informacija.
com.apple.private.security.clear-library-validation
Ovaj entitlement je veoma sličan com.apple.security.cs.disable-library-validation
ali umesto da direktno onemogući validaciju biblioteka, omogućava procesu da pozove csops
sistemski poziv da ga onemogući.
Proverite ovo za više informacija.
com.apple.security.cs.allow-dyld-environment-variables
Ovaj entitlement omogućava korišćenje DYLD promenljivih okruženja koje se mogu koristiti za ubacivanje biblioteka i koda. Proverite ovo za više informacija.
com.apple.private.tcc.manager
ili com.apple.rootless.storage
.TCC
Prema ovom blogu i ovom blogu, ovi entitlements omogućavaju modifikaciju TCC baze podataka.
system.install.apple-software
i system.install.apple-software.standar-user
Ovi entitlements omogućavaju instalaciju softvera bez traženja dozvola od korisnika, što može biti korisno za povećanje privilegija.
com.apple.private.security.kext-management
Entitlement potreban za traženje od kernela da učita kernel ekstenziju.
com.apple.private.icloud-account-access
Entitlement com.apple.private.icloud-account-access
omogućava komunikaciju sa com.apple.iCloudHelper
XPC servisom koji će obezbediti iCloud tokene.
iMovie i Garageband su imali ovaj entitlement.
Za više informacija o eksploatu za dobijanje iCloud tokena iz tog entitlementa proverite predavanje: #OBTS v5.0: "Šta se dešava na vašem Mac-u, ostaje na Apple-ovom iCloud-u?!" - Wojciech Regula
com.apple.private.tcc.manager.check-by-audit-token
TODO: Ne znam šta ovo omogućava
com.apple.private.apfs.revert-to-snapshot
TODO: U ovom izveštaju se pominje da bi ovo moglo biti korišćeno za ažuriranje SSV-zaštićenog sadržaja nakon ponovnog pokretanja. Ako znate kako, pošaljite PR, molim vas!
com.apple.private.apfs.create-sealed-snapshot
TODO: U ovom izveštaju se pominje da bi ovo moglo biti korišćeno za ažuriranje SSV-zaštićenog sadržaja nakon ponovnog pokretanja. Ako znate kako, pošaljite PR, molim vas!
keychain-access-groups
Ovaj entitlement lista keychain grupa kojima aplikacija ima pristup:
kTCCServiceSystemPolicyAllFiles
Daje potpuni pristup disku dozvole, jedna od najviših TCC dozvola koje možete imati.
kTCCServiceAppleEvents
Omogućava aplikaciji da šalje događaje drugim aplikacijama koje se obično koriste za automatizaciju zadataka. Kontrolisanjem drugih aplikacija, može zloupotrebiti dozvole koje su dodeljene tim drugim aplikacijama.
Kao što je da ih natera da traže od korisnika njegovu lozinku:
Ili ih naterati da izvrše arbitrarne radnje.
kTCCServiceEndpointSecurityClient
Omogućava, između ostalog, da piše u TCC bazu podataka korisnika.
kTCCServiceSystemPolicySysAdminFiles
Omogućava da promeni NFSHomeDirectory
atribut korisnika koji menja putanju njegove početne fascikle i tako omogućava da obiđe TCC.
kTCCServiceSystemPolicyAppBundles
Omogućava modifikaciju fajlova unutar aplikacija (unutar app.app), što je podrazumevano zabranjeno.
Moguće je proveriti ko ima ovaj pristup u System Settings > Privacy & Security > App Management.
kTCCServiceAccessibility
Proces će moći da zloupotrebi macOS pristupne funkcije, što znači da će, na primer, moći da pritisne tastere. Tako bi mogao da zatraži pristup za kontrolu aplikacije kao što je Finder i odobri dijalog sa ovom dozvolom.
com.apple.security.cs.allow-jit
Ova dozvola omogućava da se kreira memorija koja je zapisiva i izvršna prosleđivanjem MAP_JIT
oznake mmap()
sistemskoj funkciji. Proverite ovo za više informacija.
com.apple.security.cs.allow-unsigned-executable-memory
Ova dozvola omogućava da se prepiše ili zakrpi C kod, koristi dugo zastareli NSCreateObjectFileImageFromMemory
(koji je fundamentalno nesiguran), ili koristi DVDPlayback okvir. Proverite ovo za više informacija.
Uključivanje ove dozvole izlaže vašu aplikaciju uobičajenim ranjivostima u jezicima koji nisu sigurni za memoriju. Pažljivo razmotrite da li vaša aplikacija treba ovu izuzetak.
com.apple.security.cs.disable-executable-page-protection
Ova dozvola omogućava da se modifikuju sekcije sopstvenih izvršnih fajlova na disku kako bi se prisilno izašlo. Proverite ovo za više informacija.
Dozvola za onemogućavanje zaštite izvršne memorije je ekstremna dozvola koja uklanja fundamentalnu sigurnosnu zaštitu iz vaše aplikacije, omogućavajući napadaču da prepiše izvršni kod vaše aplikacije bez otkrivanja. Preferirajte uže dozvole ako je moguće.
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Ova dozvola omogućava montiranje nullfs fajl sistema (zabranjeno podrazumevano). Alat: mount_nullfs.
kTCCServiceAll
Prema ovom blog postu, ova TCC dozvola obično se nalazi u formi:
Dozvolite procesu da zatraži sve TCC dozvole.
kTCCServicePostEvent
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)