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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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:
<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:
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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.