macOS Dangerous Entitlements & TCC perms

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Let op dat toestemmings wat begin met com.apple nie beskikbaar is vir derdepartye nie, slegs Apple kan hulle toeken.

Hoë

com.apple.rootless.install.heritable

Die toestemming com.apple.rootless.install.heritable maak dit moontlik om SIP te omseil. Kyk hier vir meer inligting.

com.apple.rootless.install

Die toestemming com.apple.rootless.install maak dit moontlik om SIP te omseil. Kyk hier vir meer inligting.

com.apple.system-task-ports (voorheen genoem task_for_pid-allow)

Hierdie toestemming maak dit moontlik om die taakpoort vir enige proses te kry, behalwe die kernel. Kyk hier vir meer inligting.

com.apple.security.get-task-allow

Hierdie toestemming maak dit vir ander prosesse met die com.apple.security.cs.debugger toestemming moontlik om die taakpoort van die proses wat deur die binêre lêer met hierdie toestemming uitgevoer word, te kry en kode daarop in te spuit. Kyk hier vir meer inligting.

com.apple.security.cs.debugger

Apps met die Debugging Tool Toestemming kan task_for_pid() aanroep om 'n geldige taakpoort vir ondertekende en derdeparty-apps met die Get Task Allow toestemming wat op waar is, te kry. Selfs met die debugging tool toestemming kan 'n debugger nie die taakpoorte kry van prosesse wat nie die Get Task Allow toestemming het nie, en wat dus beskerm word deur die System Integrity Protection. Kyk hier vir meer inligting.

com.apple.security.cs.disable-library-validation

Hierdie toestemming maak dit moontlik om raamwerke, invoegtoepassings, of biblioteke te laai sonder om deur Apple onderteken te wees of met dieselfde span-ID as die hoofuitvoerbare lêer onderteken te wees, sodat 'n aanvaller 'n arbitêre biblioteeklading kan misbruik om kode in te spuit. Kyk hier vir meer inligting.

com.apple.private.security.clear-library-validation

Hierdie toestemming is baie soortgelyk aan com.apple.security.cs.disable-library-validation maar in plaas daarvan om biblioteekvalidering direk uit te skakel, maak dit dit vir die proses moontlik om 'n csops stelseloproep te maak om dit uit te skakel. Kyk hier vir meer inligting.

com.apple.security.cs.allow-dyld-environment-variables

Hierdie toestemming maak dit moontlik om DYLD-omgewingsveranderlikes te gebruik wat gebruik kan word om biblioteke en kode in te spuit. Kyk hier vir meer inligting.

com.apple.private.tcc.manager of com.apple.rootless.storage.TCC

Volgens hierdie blog en hierdie blog, maak hierdie toestemmings dit moontlik om die TCC databasis te verander.

system.install.apple-software en system.install.apple-software.standar-user

Hierdie toestemmings maak dit moontlik om sagteware te installeer sonder om toestemming van die gebruiker te vra, wat nuttig kan wees vir 'n privilege-escalation.

com.apple.private.security.kext-management

Toestemming wat nodig is om die kernel te vra om 'n kernel-uitbreiding te laai.

com.apple.private.icloud-account-access

Die toestemming com.apple.private.icloud-account-access maak dit moontlik om te kommunikeer met die com.apple.iCloudHelper XPC-diens wat iCloud-token sal voorsien.

iMovie en Garageband het hierdie toestemming.

Vir meer inligting oor die uitbuiting om icloud-tokens van daardie toestemming te kry, kyk na die geselskap: #OBTS v5.0: "Wat Gebeur op jou Mac, Bly op Apple se iCloud?!" - Wojciech Regula

com.apple.private.tcc.manager.check-by-audit-token

TODO: Ek weet nie wat dit toelaat om te doen nie

com.apple.private.apfs.revert-to-snapshot

TODO: In hierdie verslag word genoem dat dit gebruik kan word om die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe om dit te doen, stuur asseblief 'n PR!

com.apple.private.apfs.create-sealed-snapshot

TODO: In hierdie verslag word genoem dat dit gebruik kan word om die SSV-beskermde inhoud na 'n herlaai op te dateer. As jy weet hoe om dit te doen, stuur asseblief 'n PR!

keychain-access-groups

Hierdie toestemming lys sleutelhanger groepe waarop die aansoek toegang het:

<key>keychain-access-groups</key>
<array>
<string>ichat</string>
<string>apple</string>
<string>appleaccount</string>
<string>InternetAccounts</string>
<string>IMCore</string>
</array>

kTCCServiceSystemPolicyAllFiles

Geeft Volle Skyftoegang toestemmings, een van die hoogste TCC-toestemmings wat jy kan hê.

kTCCServiceAppleEvents

Laat die app toe om gebeurtenisse na ander toepassings te stuur wat gewoonlik gebruik word vir outomatiese take. Deur ander programme te beheer, kan dit misbruik maak van die toestemmings wat aan hierdie ander programme verleen is.

Soos om hulle die gebruiker vir sy wagwoord te laat vra:

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"'

Of maak hulle willekeurige aksies uitvoer.

kTCCServiceEndpointSecurityClient

Laat, onder andere toestemmings, toe om die gebruikers TCC-databasis te skryf.

kTCCServiceSystemPolicySysAdminFiles

Laat toe om die NFSHomeDirectory attribuut van 'n gebruiker te verander wat sy tuisvouerpad verander en dus toelaat om TCC te omseil.

kTCCServiceSystemPolicyAppBundles

Laat toe om lêers binne app-bundels (binne app.app) te wysig, wat standaard nie toegelaat word nie.

Dit is moontlik om te kontroleer wie hierdie toegang het in Sisteeminstellings > Privaatheid & Sekuriteit > App-bestuur.

kTCCServiceAccessibility

Die proses sal in staat wees om die macOS-toeganklikheidskenmerke te misbruik, wat beteken dat hy byvoorbeeld toetsaanslae kan indruk. Hy kan dus versoek om toegang te kry om 'n app soos Finder te beheer en die dialoogvenster met hierdie toestemming goed te keur.

Medium

com.apple.security.cs.allow-jit

Hierdie toestemming laat toe om geheue te skep wat skryfbaar en uitvoerbaar is deur die MAP_JIT vlag na die mmap()-sisteemfunksie te stuur. Kyk hier vir meer inligting.

com.apple.security.cs.allow-unsigned-executable-memory

Hierdie toestemming laat toe om C-kode te oorheers of te lap, gebruik die lank verouderde NSCreateObjectFileImageFromMemory (wat fundamenteel onveilig is), of gebruik die DVDPlayback-raamwerk. Kyk hier vir meer inligting.

Die insluiting van hierdie toestemming stel jou app bloot aan algemene kwesbaarhede in geheue-onveilige kodeland. Oorweeg sorgvuldig of jou app hierdie uitsondering nodig het.

com.apple.security.cs.disable-executable-page-protection

Hierdie toestemming laat toe om afsnitte van sy eie uitvoerbare lêers op skyf te wysig om kragtig te verlaat. Kyk hier vir meer inligting.

Die Uitskakelbare Uitvoerbare Geheuebeskermingstoestemming is 'n ekstreme toestemming wat 'n fundamentele sekuriteitsbeskerming van jou app verwyder, wat dit moontlik maak vir 'n aanvaller om jou app se uitvoerbare kode te herskryf sonder opsporing. Gee verkieslik nouer toestemmings as moontlik.

com.apple.security.cs.allow-relative-library-loads

TODO

com.apple.private.nullfs_allow

Hierdie toestemming laat toe om 'n nullfs-lêersisteem te koppel (standaard verbode). Gereedskap: mount_nullfs.

kTCCServiceAll

Volgens hierdie blogpos, hierdie TCC-toestemming gewoonlik in die vorm gevind:

[Key] com.apple.private.tcc.allow-prompting
[Value]
[Array]
[String] kTCCServiceAll

Laat die proses toe om vir al die TCC-toestemmings te vra.

kTCCServicePostEvent

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated