11 KiB
macOS Opasna Ovlašćenja i TCC dozvole
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRETPLATU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
{% hint style="warning" %}
Imajte na umu da ovlašćenja koja počinju sa com.apple
nisu dostupna trećim licima, samo Apple može da ih dodeli.
{% endhint %}
Visok
com.apple.rootless.install.heritable
Ovlašćenje com.apple.rootless.install.heritable
omogućava zaobilaženje SIP-a. Proverite ovde za više informacija.
com.apple.rootless.install
Ovlašćenje com.apple.rootless.install
omogućava zaobilaženje SIP-a. Proverite ovde za više informacija.
com.apple.system-task-ports
(ranije nazvano task_for_pid-allow
)
Ovo ovlašćenje omogućava dobijanje task porta za bilo koji proces, osim kernela. Proverite ovde za više informacija.
com.apple.security.get-task-allow
Ovo ovlašćenje omogućava drugim procesima sa ovlašćenjem com.apple.security.cs.debugger
da dobiju task port procesa pokrenutog od strane binarnog fajla sa ovim ovlašćenjem i ubace kod u njega. Proverite ovde za više informacija.
com.apple.security.cs.debugger
Aplikacije sa ovlašćenjem za alat za debagovanje mogu pozvati task_for_pid()
da dobiju validan task port za nepotpisane i aplikacije trećih lica sa ovlašćenjem Get Task Allow
postavljenim na true
. Međutim, čak i sa ovlašćenjem za alat za debagovanje, debager ne može dobiti task portove procesa koji nemaju ovlašćenje Get Task Allow
, i koji su stoga zaštićeni Sistemskom Integritetnom Zaštitom. Proverite ovde za više informacija.
com.apple.security.cs.disable-library-validation
Ovo ovlašćenje omogućava učitavanje framework-a, plug-inova ili biblioteka bez potpisa od strane Apple-a ili potpisanih istim Team ID-om kao glavni izvršni fajl, tako da napadač može zloupotrebiti neko proizvoljno učitavanje biblioteke da ubaci kod. Proverite ovde za više informacija.
com.apple.private.security.clear-library-validation
Ovo ovlašćenje je veoma slično com.apple.security.cs.disable-library-validation
ali umesto direktnog onemogućavanja provere biblioteke, omogućava procesu da pozove csops
sistemski poziv da je onemogući.
Proverite ovde za više informacija.
com.apple.security.cs.allow-dyld-environment-variables
Ovo ovlašćenje omogućava korišćenje DYLD okruženjskih promenljivih koje se mogu koristiti za ubacivanje biblioteka i koda. Proverite ovde za više informacija.
com.apple.private.tcc.manager
ili com.apple.rootless.storage
.TCC
Prema ovom blogu i ovom blogu, ova ovlašćenja omogućavaju izmenu TCC baze podataka.
system.install.apple-software
i system.install.apple-software.standar-user
Ova ovlašćenja omogućavaju instaliranje softvera bez traženja dozvole od korisnika, što može biti korisno za eskalaciju privilegija.
com.apple.private.security.kext-management
Ovlašćenje potrebno za traženje od kernela da učita kernel ekstenziju.
com.apple.private.icloud-account-access
Ovlašćenje com.apple.private.icloud-account-access
omogućava komunikaciju sa com.apple.iCloudHelper
XPC servisom koji će pružiti iCloud tokene.
iMovie i Garageband imaju ovo ovlašćenje.
Za više informacija o eksploataciji za dobijanje icloud tokena iz tog ovlašćenja pogledajte predavanje: #OBTS v5.0: "What Happens on your Mac, Stays on Apple's iCloud?!" - 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 se ovo može koristiti za ažuriranje SSV-zaštićenog sadržaja nakon restarta. Ako znate kako, pošaljite PR molim vas!
com.apple.private.apfs.create-sealed-snapshot
TODO: U ovom izveštaju se pominje da se ovo može koristiti za ažuriranje SSV-zaštićenog sadržaja nakon restarta. Ako znate kako, pošaljite PR molim vas!
keychain-access-groups
Ova lista ovlašćenja prikazuje grupe keychain-a do kojih aplikacija ima pristup:
<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>
kTCCServiceSystemPolicyAllFiles
Daje dozvole za puni pristup disku, jednu od najviših dozvola TCC-a koje možete imati.
kTCCServiceAppleEvents
Omogućava aplikaciji slanje događaja drugim aplikacijama koje se često koriste za automatizaciju zadataka. Kontrolisanjem drugih aplikacija, može zloupotrebiti dozvole koje su dodijeljene tim drugim aplikacijama.
Na primjer, može ih natjerati da zatraže korisnikovu lozinku:
{% code overflow="wrap" %}
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
{% endcode %}
Ili ih naterati da izvrše proizvoljne radnje.
kTCCServiceEndpointSecurityClient
Omogućava, između ostalih dozvola, pisanje korisničke TCC baze podataka.
kTCCServiceSystemPolicySysAdminFiles
Omogućava promenu atributa NFSHomeDirectory
korisnika koji menja putanju svoje matične fascikle i time omogućava zaobilaženje TCC.
kTCCServiceSystemPolicyAppBundles
Omogućava izmenu 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 funkcije pristupačnosti, što znači da će na primer moći da pritisne tastere. Tako bi mogao da zatraži pristup za kontrolu aplikacije poput Finder-a i odobri dijalog sa ovom dozvolom.
Srednje
com.apple.security.cs.allow-jit
Ova dozvola omogućava kreiranje memorije koja je upisiva i izvršna tako što se MAP_JIT
zastavica prosleđuje sistemske funkcije mmap()
. Proverite ovde za više informacija.
com.apple.security.cs.allow-unsigned-executable-memory
Ova dozvola omogućava zaobilaženje ili izmenu C koda, korišćenje zastarelog NSCreateObjectFileImageFromMemory
(koji je suštinski nesiguran), ili korišćenje DVDPlayback okvira. Proverite ovde za više informacija.
{% hint style="danger" %} Uključivanje ove dozvole izlaže vašu aplikaciju uobičajenim ranjivostima u jezicima sa kodom koji nije siguran za memoriju. Pažljivo razmotrite da li vaša aplikacija zahteva ovu izuzetnost. {% endhint %}
com.apple.security.cs.disable-executable-page-protection
Ova dozvola omogućava izmenu sekcija sopstvenih izvršnih fajlova na disku kako bi se prinudno izašlo. Proverite ovde za više informacija.
{% hint style="danger" %} Dozvola za onemogućavanje zaštite izvršne memorije je ekstremna dozvola koja uklanja osnovnu sigurnosnu zaštitu iz vaše aplikacije, čime se omogućava napadaču da izmeni izvršni kod vaše aplikacije bez otkrivanja. Ako je moguće, radije koristite uže dozvole. {% endhint %}
com.apple.security.cs.allow-relative-library-loads
TODO
com.apple.private.nullfs_allow
Ova dozvola omogućava montiranje nullfs fajl sistema (podrazumevano zabranjeno). Alatka: mount_nullfs.
kTCCServiceAll
Prema ovom blog postu, ova TCC dozvola se obično nalazi u obliku:
[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll
Dozvolite procesu da zatraži sve TCC dozvole.
kTCCServicePostEvent
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu u HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.