macOS Gevaarlike Toestemmings & TCC regte

Reading time: 7 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

warning

Let daarop dat toestemmings wat begin met com.apple nie beskikbaar is vir derde partye nie, slegs Apple kan dit toeken.

Hoog

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 verkry, behalwe die kernel. Kyk hier vir meer inligting.

com.apple.security.get-task-allow

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

com.apple.security.cs.debugger

Toepassings met die Debugging Tool Toestemming kan task_for_pid() aanroep om 'n geldige taakpoort vir ongetekende en derdeparty toepassings met die Get Task Allow toestemming wat op true gestel is, te verkry. Tog, selfs met die debugging tool toestemming, kan 'n debugger nie die taakpoorte van prosesse wat nie die Get Task Allow toestemming het nie, en wat dus deur Stelselintegriteitsbeskerming beskerm word, verkry. Kyk hier vir meer inligting.

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

Hierdie toestemming maak dit moontlik om raamwerke, plug-ins, of biblioteke te laai sonder om of deur Apple geteken te wees of met dieselfde Span-ID as die hoof uitvoerbare, sodat 'n aanvaller sommige arbitrêre biblioteeklaai 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 direk biblioteekvalidasie te deaktiveer, maak dit dit moontlik vir die proses om 'n csops stelselaanroep te doen om dit te deaktiveer.
Kyk hier vir meer inligting.

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

Hierdie toestemming maak dit moontlik om DYLD omgewing veranderlikes 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 wysig.

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

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

com.apple.private.security.kext-management

Toestemming wat benodig word 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 tokens sal verskaf.

iMovie en Garageband het hierdie toestemming gehad.

Vir meer inligting oor die uitbuiting om icloud tokens van daardie toestemming te verkry, kyk die praatjie: #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: 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, stuur 'n PR asseblief!

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, stuur 'n PR asseblief!

keychain-access-groups

Hierdie toestemming lys keychain groepe waartoe die toepassing toegang het:

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

kTCCServiceSystemPolicyAllFiles

Gee Volle Skyf Toegang regte, een van die TCC hoogste regte wat jy kan hê.

kTCCServiceAppleEvents

Laat die app toe om gebeurtenisse na ander toepassings te stuur wat algemeen gebruik word vir outomatisering van take. Deur ander apps te beheer, kan dit die regte wat aan hierdie ander apps toegeken is, misbruik.

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

bash
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 om hulle arbitraire aksies te laat 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 tuisgids pad verander en dus toelaat om TCC te omseil.

kTCCServiceSystemPolicyAppBundles

Laat toe om lêers binne toepassingsbundels (binne app.app) te wysig, wat standaard verbied is.

Dit is moontlik om te kyk wie hierdie toegang het in Stelselsinstellings > Privaatheid & Sekuriteit > Toepassingbestuur.

kTCCServiceAccessibility

Die proses sal in staat wees om die macOS toeganklikheidskenmerke te misbruik, wat beteken dat hy byvoorbeeld sleutels kan druk. SO hy kan toegang vra om 'n toepassing soos Finder te beheer en die dialoog met hierdie toestemming goed te keur.

Medium

com.apple.security.cs.allow-jit

Hierdie reg laat toe om geheue te skep wat skryfbaar en uitvoerbaar is deur die MAP_JIT vlag aan die mmap() stelselfunksie deur te gee. Kyk hier vir meer inligting.

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

Hierdie reg laat toe om C-kode te oorskry of te patch, gebruik die lank-gedepregeerde NSCreateObjectFileImageFromMemory (wat fundamenteel onveilig is), of gebruik die DVDPlayback raamwerk. Kyk hier vir meer inligting.

caution

Om hierdie reg in te sluit stel jou toepassing bloot aan algemene kwesbaarhede in geheue-onveilige kode tale. Oorweeg sorgvuldig of jou toepassing hierdie uitsondering benodig.

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

Hierdie reg laat toe om afdelings van sy eie uitvoerbare lêers op skyf te wysig om gedwonge uitgang te dwing. Kyk hier vir meer inligting.

caution

Die Disable Executable Memory Protection Entitlement is 'n uiterste reg wat 'n fundamentele sekuriteitsbeskerming van jou toepassing verwyder, wat dit moontlik maak vir 'n aanvaller om jou toepassing se uitvoerbare kode sonder opsporing te herskryf. Verkies nouer regte indien moontlik.

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

TODO

com.apple.private.nullfs_allow

Hierdie reg laat toe om 'n nullfs lêerstelsel te monteer (verbied deur standaard). Gereedskap: mount_nullfs.

kTCCServiceAll

Volgens hierdie blogpos, word 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

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks