macOS SIP
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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.
Basiese Inligting
Sistem Integriteit Beskerming (SIP) in macOS is ân mekanisme wat ontwerp is om selfs die mees bevoorregte gebruikers te verhoed om ongeoorloofde veranderinge aan sleutel stelselfolders te maak. Hierdie kenmerk speel ân belangrike rol in die handhawing van die integriteit van die stelsel deur aksies soos die toevoeging, wysiging of verwydering van lĂȘers in beskermde areas te beperk. Die primĂȘre folders wat deur SIP beskerm word, sluit in:
- /System
- /bin
- /sbin
- /usr
Die reĂ«ls wat SIP se gedrag regeer, is gedefinieer in die konfigurasie-lĂȘer geleĂ« by /System/Library/Sandbox/rootless.conf. Binne hierdie lĂȘer word paaie wat met ân asterisk (*) voorafgegaan word, as uitsonderings op die andersins streng SIP-beperkings aangedui.
Overweeg die voorbeeld hieronder:
/usr
* /usr/libexec/cups
* /usr/local
* /usr/share/man
Hierdie snit impliseer dat terwyl SIP oor die algemeen die /usr gids beveilig, daar spesifieke subgidsen (/usr/libexec/cups, /usr/local, en /usr/share/man) is waar wysigings toegelaat word, soos aangedui deur die asterisk (*) wat hul paaie voorafgaan.
Om te verifieer of ân gids of lĂȘer deur SIP beskerm word, kan jy die ls -lOd opdrag gebruik om die teenwoordigheid van die restricted of sunlnk vlag te kontroleer. Byvoorbeeld:
ls -lOd /usr/libexec/cups
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
In hierdie geval dui die sunlnk vlag aan dat die /usr/libexec/cups gids self nie verwyder kan word nie, hoewel lĂȘers daarin geskep, gewysig of verwyder kan word.
Aan die ander kant:
ls -lOd /usr/libexec
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
Hierdie restricted vlag dui aan dat die /usr/libexec gids deur SIP beskerm word. In ân SIP-beskermde gids kan lĂȘers nie geskep, gewysig of verwyder word nie.
Boonop, as ân lĂȘer die attribuut com.apple.rootless uitgebreide attribuut bevat, sal daardie lĂȘer ook deur SIP beskerm word.
Tip
Let daarop dat die Sandbox haak
hook_vnode_check_setextattrenige poging om die uitgebreide attribuutcom.apple.rootlesste wysig, voorkom.
SIP beperk ook ander wortel aksies soos:
- Laai onbetroubare kernuitbreidings
- Kry taak-poorte vir Apple-onderteken prosesse
- Wysig NVRAM veranderlikes
- Laat kernfoutopsporing toe
Opsies word in die nvram veranderlike as ân bitflag (csr-active-config op Intel en lp-sip0 word van die gebootte toestelboom vir ARM gelees). Jy kan die vlae in die XNU bronne kode in csr.sh vind:
.png)
SIP Status
Jy kan nagaan of SIP op jou stelsel geaktiveer is met die volgende opdrag:
csrutil status
As jy SIP moet deaktiveer, moet jy jou rekenaar in herstelmodus herbegin (deur Command+R tydens opstart te druk), en dan die volgende opdrag uitvoer:
csrutil disable
As jy SIP aangeskakel wil hou maar die foutopsporing beskermings wil verwyder, kan jy dit doen met:
csrutil enable --without debug
Ander Beperkings
- Verbied die laai van ongetekende kernuitbreidings (kexts), wat verseker dat slegs geverifieerde uitbreidings met die stelselkern interaksie het.
- Voorkom die debuggery van macOS-stelselsprosesse, wat kernstelseldelers teen ongemagtigde toegang en wysigings beskerm.
- Belemmer gereedskap soos dtrace om stelselsprosesse te ondersoek, wat die integriteit van die stelsel se werking verder beskerm.
Leer meer oor SIP-inligting in hierdie praatjie.
SIP-verwante Regte
com.apple.rootless.xpc.bootstrap: Beheer launchdcom.apple.rootless.install[.heritable]: Toegang tot lĂȘerstelselcom.apple.rootless.kext-management:kext_requestcom.apple.rootless.datavault.controller: Bestuur UF_DATAVAULTcom.apple.rootless.xpc.bootstrap: XPC-opstelling vermoĂ«nscom.apple.rootless.xpc.effective-root: Root via launchd XPCcom.apple.rootless.restricted-block-devices: Toegang tot rou bloktoestellecom.apple.rootless.internal.installer-equivalent: Onbeperkte lĂȘerstelseloegangcom.apple.rootless.restricted-nvram-variables[.heritable]: Volledige toegang tot NVRAMcom.apple.rootless.storage.label: Wysig lĂȘers wat deur com.apple.rootless xattr met die ooreenstemmende etiket beperk iscom.apple.rootless.volume.VM.label: Onderhou VM-swap op volume
SIP Bypasses
Deur SIP te omseil, kan ân aanvaller:
- Toegang tot Gebruikersdata: Lees sensitiewe gebruikersdata soos pos, boodskappe en Safari-geskiedenis van alle gebruikersrekeninge.
- TCC Bypass: Direk die TCC (Transparensie, Toestemming en Beheer) databasis manipuleer om ongemagtigde toegang tot die webcam, mikrofoon en ander hulpbronne te verleen.
- Vestig Volharding: Plaas malware in SIP-beskermde plekke, wat dit bestand maak teen verwydering, selfs deur wortelregte. Dit sluit ook die potensiaal in om met die Malware Removal Tool (MRT) te sloop.
- Laai Kernuitbreidings: Alhoewel daar addisionele beskermings is, vereenvoudig die omseiling van SIP die proses om ongetekende kernuitbreidings te laai.
Installer Pakkette
Installer pakkette wat met Apple se sertifikaat geteken is kan sy beskermings omseil. Dit beteken dat selfs pakkette wat deur standaard ontwikkelaars geteken is, geblokkeer sal word as hulle probeer om SIP-beskermde gidse te wysig.
Nie-bestaande SIP-lĂȘer
Een potensiĂ«le leemte is dat as ân lĂȘer in rootless.conf gespesifiseer word maar tans nie bestaan nie, dit geskep kan word. Malware kan dit benut om volharding op die stelsel te vestig. Byvoorbeeld, ân kwaadwillige program kan ân .plist-lĂȘer in /System/Library/LaunchDaemons skep as dit in rootless.conf gelys is maar nie teenwoordig is nie.
com.apple.rootless.install.heritable
Caution
Die reg
com.apple.rootless.install.heritablelaat toe om SIP te omseil
CVE-2019-8561
Daar is ontdek dat dit moontlik was om die installer-pakket te ruil nadat die stelsel sy kode handtekening geverifieer het en dan sou die stelsel die kwaadwillige pakket installeer in plaas van die oorspronklike. Aangesien hierdie aksies deur system_installd uitgevoer is, sou dit SIP omseil.
CVE-2020â9854
As ân pakket van ân gemonteerde beeld of eksterne skyf geĂŻnstalleer is, sou die installer die binĂȘre van daardie lĂȘerstelsel uitvoer (in plaas van ân SIP-beskermde plek), wat system_installd dwing om ân arbitrĂȘre binĂȘre uit te voer.
CVE-2021-30892 - Shrootless
Navorsers van hierdie blogpos het ân kwesbaarheid in macOS se Stelselintegriteitsbeskerming (SIP) meganisme ontdek, wat die âShrootlessâ kwesbaarheid genoem word. Hierdie kwesbaarheid sentreer rondom die system_installd daemon, wat ân reg het, com.apple.rootless.install.heritable, wat enige van sy kindprosesse toelaat om SIP se lĂȘerstelselbeperkings te omseil.
system_installd daemon sal pakkette installeer wat deur Apple geteken is.
Navorsers het gevind dat tydens die installasie van ân Apple-getekende pakket (.pkg-lĂȘer), system_installd uitvoer enige post-install skripte wat in die pakket ingesluit is. Hierdie skripte word deur die standaard-skal, zsh, uitgevoer, wat outomaties opdragte van die /etc/zshenv lĂȘer uitvoer, indien dit bestaan, selfs in nie-interaktiewe modus. Hierdie gedrag kan deur aanvallers benut word: deur ân kwaadwillige /etc/zshenv lĂȘer te skep en te wag vir system_installd om zsh aan te roep, kan hulle arbitrĂȘre operasies op die toestel uitvoer.
Boonop is ontdek dat /etc/zshenv as ân algemene aanvalstegniek gebruik kan word, nie net vir ân SIP-omseiling nie. Elke gebruikersprofiel het ân ~/.zshenv lĂȘer, wat dieselfde gedrag as /etc/zshenv vertoon, maar nie wortelregte vereis nie. Hierdie lĂȘer kan as ân volhardingsmeganisme gebruik word, wat elke keer wat zsh begin, geaktiveer word, of as ân verhoging van regte meganisme. As ân admin-gebruiker tot wortel verhoog met sudo -s of sudo <opdrag>, sal die ~/.zshenv lĂȘer geaktiveer word, wat effektief tot wortel verhoog.
CVE-2022-22583
In CVE-2022-22583 is ontdek dat dieselfde system_installd proses steeds misbruik kon word omdat dit die post-install skrip in ân random naamgegee gids wat deur SIP beskerm word binne /tmp geplaas het. Die ding is dat /tmp self nie deur SIP beskerm word nie, so dit was moontlik om ân virtuele beeld daarop te monteer, dan sou die installer die post-install skrip daar plaas, ontkoppel die virtuele beeld, herstel al die gidse en voeg die post-installasie skrip met die payload om uit te voer.
fsck_cs nut
ân Kwesbaarheid is geĂŻdentifiseer waar fsck_cs mislei is om ân belangrike lĂȘer te korrupteer, as gevolg van sy vermoĂ« om simboliese skakels te volg. Spesifiek het aanvallers ân skakel van /dev/diskX na die lĂȘer /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist gemaak. Die uitvoering van fsck_cs op /dev/diskX het gelei tot die korrupsie van Info.plist. Die integriteit van hierdie lĂȘer is noodsaaklik vir die bedryfstelsel se SIP (Stelselintegriteitsbeskerming), wat die laai van kernuitbreidings beheer. Sodra dit gekorrumpeer is, is SIP se vermoĂ« om kernuitsluitings te bestuur, gecompromitteer.
Die opdragte om hierdie kwesbaarheid te benut, is:
ln -s /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist /dev/diskX
fsck_cs /dev/diskX 1>&-
touch /Library/Extensions/
reboot
Die uitbuiting van hierdie kwesbaarheid het ernstige implikasies. Die Info.plist-lĂȘer, wat normaalweg verantwoordelik is vir die bestuur van toestemmings vir kernuitbreidings, word ondoeltreffend. Dit sluit die onvermoĂ« in om sekere uitbreidings, soos AppleHWAccess.kext, op ân swartlys te plaas. Gevolglik, met die SIP se beheermeganisme buite werking, kan hierdie uitbreiding gelaai word, wat ongeoorloofde lees- en skryftoegang tot die stelsels se RAM bied.
Mount oor SIP beskermde vouers
Dit was moontlik om ân nuwe lĂȘerstelsel oor SIP beskermde vouers te monteer om die beskerming te omseil.
mkdir evil
# Add contento to the folder
hdiutil create -srcfolder evil evil.dmg
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
Upgrader bypass (2016)
Die stelsel is ingestel om te boot vanaf ân ingebedde installer skyfbeeld binne die Install macOS Sierra.app om die OS op te gradeer, met die gebruik van die bless nut. Die opdrag wat gebruik word is soos volg:
/usr/sbin/bless -setBoot -folder /Volumes/Macintosh HD/macOS Install Data -bootefi /Volumes/Macintosh HD/macOS Install Data/boot.efi -options config="\macOS Install Data\com.apple.Boot" -label macOS Installer
Die sekuriteit van hierdie proses kan gecompromitteer word as ân aanvaller die opgradering beeld (InstallESD.dmg) voor die opstart verander. Die strategie behels die vervanging van ân dinamiese laaier (dyld) met ân kwaadwillige weergawe (libBaseIA.dylib). Hierdie vervanging lei tot die uitvoering van die aanvaller se kode wanneer die installeerder geaktiveer word.
Die aanvaller se kode verkry beheer tydens die opgraderingsproses, wat die stelsel se vertroue in die installeerder benut. Die aanval vorder deur die InstallESD.dmg beeld te verander via metode swizzling, met spesifieke fokus op die extractBootBits metode. Dit stel die inspuiting van kwaadwillige kode voor die gebruik van die skyfbeeld in staat.
Boonop, binne die InstallESD.dmg, is daar ân BaseSystem.dmg, wat dien as die wortel lĂȘerstelsel van die opgraderingskode. Die inspuiting van ân dinamiese biblioteek hierin stel die kwaadwillige kode in staat om binne ân proses te werk wat in staat is om OS-vlak lĂȘers te verander, wat die potensiaal vir stelselskompromie aansienlik verhoog.
systemmigrationd (2023)
In hierdie praatjie van DEF CON 31, word gewys hoe systemmigrationd (wat SIP kan omseil) ân bash en ân perl skrip uitvoer, wat misbruik kan word via omgewing veranderlikes BASH_ENV en PERL5OPT.
CVE-2023-42860
Soos gedetailleerd in hierdie blogpos, het ân postinstall skrip van InstallAssistant.pkg pakkette toegelaat om uit te voer:
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
en dit was moontlik om ân symlink in ${SHARED_SUPPORT_PATH}/SharedSupport.dmg te skep wat ân gebruiker in staat sou stel om enige lĂȘer te ontbloot, wat SIP-beskerming omseil.
com.apple.rootless.install
Caution
Die regte
com.apple.rootless.installmaak dit moontlik om SIP te omseil
Die regte com.apple.rootless.install is bekend om die Stelsels Integriteit Beskerming (SIP) op macOS te omseil. Dit is veral genoem in verband met CVE-2022-26712.
In hierdie spesifieke geval het die stelsel XPC-diens geleĂ« by /System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc hierdie regte. Dit stel die verwante proses in staat om SIP-beperkings te omseil. Verder bied hierdie diens ân metode aan wat die beweging van lĂȘers toelaat sonder om enige sekuriteitsmaatreĂ«ls af te dwing.
Geseëlde Stelsel Snapshot
GeseĂ«lde Stelsel Snapshots is ân kenmerk wat deur Apple in macOS Big Sur (macOS 11) bekendgestel is as deel van sy Stelsels Integriteit Beskerming (SIP) meganisme om ân bykomende laag van sekuriteit en stelsels stabiliteit te bied. Hulle is essensieel lees-slegs weergawes van die stelselvolume.
Hier is ân meer gedetailleerde kyk:
- Onveranderlike Stelsel: GeseĂ«lde Stelsel Snapshots maak die macOS stelselvolume âonveranderlikâ, wat beteken dat dit nie gewysig kan word nie. Dit voorkom enige ongeoorloofde of toevallige veranderinge aan die stelsel wat sekuriteit of stelsels stabiliteit kan benadeel.
- Stelsel Sagteware Opdaterings: Wanneer jy macOS-opdaterings of opgraderings installeer, skep macOS ân nuwe stelselsnapshot. Die macOS opstartvolume gebruik dan APFS (Apple File System) om na hierdie nuwe snapshot oor te skakel. Die hele proses van die toepas van opdaterings word veiliger en meer betroubaar aangesien die stelsel altyd na die vorige snapshot kan terugkeer as iets verkeerd gaan tydens die opdatering.
- Data Skeiding: In samewerking met die konsep van Data en Stelsel volume skeiding wat in macOS Catalina bekendgestel is, maak die GeseĂ«lde Stelsel Snapshot kenmerk seker dat al jou data en instellings op ân aparte âDataâ volume gestoor word. Hierdie skeiding maak jou data onafhanklik van die stelsel, wat die proses van stelsels opdaterings vereenvoudig en stelsels sekuriteit verbeter.
Onthou dat hierdie snapshots outomaties deur macOS bestuur word en nie addisionele spasie op jou skyf opneem nie, danksy die spasie deel vermoëns van APFS. Dit is ook belangrik om te noem dat hierdie snapshots verskillend is van Time Machine snapshots, wat gebruikers-toeganklike rugsteun van die hele stelsel is.
Kontroleer Snapshots
Die opdrag diskutil apfs list lys die besonderhede van die APFS volumes en hul uitleg:
+-- Container disk3 966B902E-EDBA-4775-B743-CF97A0556A13
| ====================================================
| APFS Container Reference: disk3
| Size (Capacity Ceiling): 494384795648 B (494.4 GB)
| Capacity In Use By Volumes: 219214536704 B (219.2 GB) (44.3% used)
| Capacity Not Allocated: 275170258944 B (275.2 GB) (55.7% free)
| |
| +-< Physical Store disk0s2 86D4B7EC-6FA5-4042-93A7-D3766A222EBE
| | -----------------------------------------------------------
| | APFS Physical Store Disk: disk0s2
| | Size: 494384795648 B (494.4 GB)
| |
| +-> Volume disk3s1 7A27E734-880F-4D91-A703-FB55861D49B7
| | ---------------------------------------------------
| | APFS Volume Disk (Role): disk3s1 (System)
| | Name: Macintosh HD (Case-insensitive)
| | Mount Point: /System/Volumes/Update/mnt1
| | Capacity Consumed: 12819210240 B (12.8 GB)
| | Sealed: Broken
| | FileVault: Yes (Unlocked)
| | Encrypted: No
| | |
| | Snapshot: FAA23E0C-791C-43FF-B0E7-0E1C0810AC61
| | Snapshot Disk: disk3s1s1
| | Snapshot Mount Point: /
| | Snapshot Sealed: Yes
[...]
+-> Volume disk3s5 281959B7-07A1-4940-BDDF-6419360F3327
| ---------------------------------------------------
| APFS Volume Disk (Role): disk3s5 (Data)
| Name: Macintosh HD - Data (Case-insensitive)
| Mount Point: /System/Volumes/Data
| Capacity Consumed: 412071784448 B (412.1 GB)
| Sealed: No
| FileVault: Yes (Unlocked)
In die vorige uitvoer is dit moontlik om te sien dat gebruikers-toeganklike plekke onder /System/Volumes/Data gemonteer is.
Boonop is die macOS Stelsel volume snapshot gemonteer in / en dit is geseal (kriptografies onderteken deur die OS). So, as SIP omseil word en dit gewysig word, sal die OS nie meer opstart nie.
Dit is ook moontlik om te verifieer dat die seël geaktiveer is deur te loop:
csrutil authenticated-root status
Authenticated Root status: enabled
Boonop is die snapshot skyf ook as slegs-lees gemonteer:
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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.
HackTricks

