<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako inatangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
**System Integrity Protection (SIP)** kwenye macOS ni mfumo ulioundwa kuzuia hata watumiaji wenye mamlaka zaidi kufanya mabadiliko yasiyoruhusiwa kwenye folda muhimu za mfumo. Kipengele hiki kina jukumu muhimu katika kudumisha uadilifu wa mfumo kwa kuzuia vitendo kama kuongeza, kubadilisha, au kufuta faili katika maeneo yaliyolindwa. Folders kuu zinazolindwa na SIP ni pamoja na:
Sheria zinazosimamia tabia ya SIP zimefafanuliwa katika faili ya usanidi iliyoko kwenye **`/System/Library/Sandbox/rootless.conf`**. Ndani ya faili hii, njia zilizo na alama ya nyota (*) zinatajwa kama ubaguzi kwa vikwazo vikali vya SIP vinginevyo.
Kifungu hiki kinaonyesha kuwa wakati SIP kwa ujumla inalinda saraka ya **`/usr`**, kuna saraka maalum (`/usr/libexec/cups`, `/usr/local`, na `/usr/share/man`) ambapo marekebisho yanaruhusiwa, kama inavyoonyeshwa na nyota (*) kabla ya njia zao.
Ili kuthibitisha ikiwa saraka au faili inalindwa na SIP, unaweza kutumia amri ya **`ls -lOd`** kuangalia uwepo wa bendera ya **`restricted`** au **`sunlnk`**. Kwa mfano:
Katika kesi hii, bendera ya **`sunlnk`** inaashiria kwamba directory ya `/usr/libexec/cups` yenyewe **haiwezi kufutwa**, ingawa faili zilizomo ndani yake zinaweza kuundwa, kuhaririwa, au kufutwa.
Hapa, bendera ya **`restricted`** inaonyesha kuwa saraka ya `/usr/libexec` inalindwa na SIP. Katika saraka iliyolindwa na SIP, faili haziwezi kuundwa, kuhaririwa, au kufutwa.
Chaguo zinahifadhiwa katika kivinjari cha nvram kama bitflag (`csr-active-config` kwenye Intel na `lp-sip0` inasomwa kutoka Mti wa Kifaa uliopakia kwa ARM). Unaweza kupata bendera hizo katika msimbo wa chanzo wa XNU katika `csr.sh`:
Ikiwa unahitaji kulemaza SIP, lazima uanzishe upya kompyuta yako kwenye hali ya kurejesha (kwa kubonyeza Amri+R wakati wa kuanza), kisha tekeleza amri ifuatayo:
**[Jifunze zaidi kuhusu habari za SIP katika mazungumzo haya](https://www.slideshare.net/i0n1c/syscan360-stefan-esser-os-x-el-capitan-sinking-the-ship).**
- **Kupata Data ya Mtumiaji**: Kusoma data nyeti ya mtumiaji kama barua, ujumbe, na historia ya Safari kutoka kwenye akaunti zote za mtumiaji.
- **Kupita Kizuizi cha TCC**: Kudhibiti moja kwa moja hifadhidata ya TCC (Transparency, Consent, and Control) ili kutoa ufikiaji usiohalali kwa kamera, kipaza sauti, na rasilimali zingine.
- **Kuanzisha Uthabiti**: Kuweka programu hasidi katika maeneo yaliyolindwa na SIP, kufanya iwe ngumu kuiondoa, hata kwa mamlaka ya mizizi. Hii pia ni pamoja na uwezekano wa kuharibu Zana ya Kuondoa Programu Hasidi (MRT).
- **Kupakia Nyongeza za Kernel**: Ingawa kuna ulinzi zaidi, kupita kizuizi cha SIP kunafanya iwe rahisi kupakia nyongeza za kernel zisizo na saini.
**Pakiti za wasanidi programu zilizosainiwa na cheti cha Apple** zinaweza kupita kinga zake. Hii inamaanisha kuwa hata pakiti zilizosainiwa na wasanidi programu wa kawaida zitazuiliwa ikiwa zitajaribu kubadilisha saraka zilizolindwa na SIP.
Njia moja ya kuepuka ni kwamba ikiwa faili imeelekezwa katika **`rootless.conf` lakini haipo kwa sasa**, inaweza kuundwa. Programu hasidi inaweza kutumia hii kuanzisha uthabiti kwenye mfumo. Kwa mfano, programu hasidi inaweza kuunda faili ya .plist katika `/System/Library/LaunchDaemons` ikiwa iko kwenye orodha ya `rootless.conf` lakini haipo.
[**Watafiti kutoka chapisho hili la blogu**](https://www.microsoft.com/en-us/security/blog/2021/10/28/microsoft-finds-new-macos-vulnerability-shrootless-that-could-bypass-system-integrity-protection/) waligundua udhaifu katika mfumo wa Ulinzi wa Uadilifu wa Mfumo (SIP) wa macOS, ulioitwa udhaifu wa 'Shrootless'. Udhaifu huu unahusiana na kifaa cha **`system_installd`**, ambacho kina ruhusa ya **`com.apple.rootless.install.heritable`**, ambayo inaruhusu michakato yoyote ya mtoto kuepuka vizuizi vya mfumo wa faili vya SIP.
Watafiti waligundua kuwa wakati wa kusanikisha pakiti iliyosainiwa na Apple (.pkg file), **`system_installd`** **huendesha** hati za **post-install** zilizomo kwenye pakiti hiyo. Hati hizi zinatekelezwa na kabati la msingi, **`zsh`**, ambayo kwa moja kwa moja **huendesha** amri kutoka kwenye faili ya **`/etc/zshenv`**, ikiwepo, hata katika hali isiyo ya mwingiliano. Mshambuliaji anaweza kutumia tabia hii: kwa kuunda faili mbaya ya `/etc/zshenv` na kusubiri **`system_installd` kuita `zsh`**, wanaweza kufanya operesheni za kiholela kwenye kifaa.
Zaidi ya hayo, iligundulika kuwa **`/etc/zshenv inaweza kutumika kama mbinu ya mashambulizi kwa ujumla**, sio tu kwa kupita kizuizi cha SIP. Kila wasifu wa mtumiaji una faili ya `~/.zshenv`, ambayo inafanya kazi kwa njia ile ile kama `/etc/zshenv` lakini haitahitaji ruhusa za mizizi. Faili hii inaweza kutumika kama mbinu ya uthabiti, ikianza kila wakati `zsh` inapoanza, au kama mbinu ya kuongeza haki za mamlaka. Ikiwa mtumiaji wa admin anapata haki za mizizi kwa kutumia `sudo -s` au `sudo <amri>`, faili ya `~/.zshenv` itaanza, ikiongeza haki za mizizi.
Katika [**CVE-2022-22583**](https://perception-point.io/blog/technical-analysis-cve-2022-22583/), iligundulika kuwa mchakato huo huo wa **`system_installd`** bado unaweza kutumiwa vibaya kwa sababu ulikuwa ukiiweka hati ya **post-install ndani ya saraka yenye jina la nasibu iliyolindwa na SIP ndani ya `/tmp`**. Jambo ni kwamba **`/tmp` yenyewe haijamilindwa na SIP**, kwa hivyo ilikuwa inawezekana **kufunga** picha ya **virtual kwenye hiyo**, kisha **msanidi programu** angeiweka ndani yake **hati ya post-install**, **kufunga** tena picha ya virtual, **kuunda upya** saraka zote na **kuongeza** hati ya **post-install** na **payload** ya kutekelezwa.
Udhaifu uligunduliwa ambapo **`fsck_cs`** ulidanganywa kuharibu faili muhimu, kutokana na uwezo wake wa kufuata **viungo vya ishara**. Hasa, wadukuzi walitengeneza kiungo kutoka _`/dev/diskX`_ kwenda faili ya `/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist`. Kutekeleza **`fsck_cs`** kwenye _`/dev/diskX`_ kulifanya `Info.plist` kuharibika. Uadilifu wa faili hii ni muhimu kwa Ulinzi wa Uadilifu wa Mfumo wa mfumo wa uendeshaji, ambao unadhibiti kupakia nyongeza za kernel. Mara ilipoharibika, uwezo wa SIP wa kusimamia uzuiaji wa kernel unakuwa hatarini.
Udhalilishaji wa udhaifu huu una athari kubwa. Faili ya `Info.plist`, kawaida inayohusika na usimamizi wa ruhusa za nyongeza za kernel, inakuwa haifanyi kazi. Hii ni pamoja na kutokuweza kuweka orodha nyeusi ya nyongeza fulani, kama vile `AppleHWAccess.kext`. Kwa hivyo, na mfumo wa udhibiti wa SIP ukiwa umeharibika, nyongeza hii inaweza kupakia, ikiruhusu ufikiaji usiohalali wa kusoma na kuandika kwenye RAM ya mfumo.
Mfumo umewekwa ili kuanza kutoka kwenye picha ya diski ya mwendeshaji iliyounganishwa ndani ya `Install macOS Sierra.app` ili kuboresha mfumo wa uendeshaji, kwa kutumia kifaa cha `bless`. Amri inayotumiwa ni kama ifuatavyo:
Usalama wa mchakato huu unaweza kudhoofishwa ikiwa mshambuliaji anabadilisha picha ya kuboresha (`InstallESD.dmg`) kabla ya kuanza. Mkakati huu unahusisha kubadilisha mzigo wa kudumu (dyld) na toleo la hatari (`libBaseIA.dylib`). Mabadiliko haya husababisha utekelezaji wa nambari ya mshambuliaji wakati mchakato wa kufunga unaanzishwa.
Nambari ya mshambuliaji inapata udhibiti wakati wa mchakato wa kuboresha, ikitumia imani ya mfumo katika programu ya kufunga. Shambulio linaendelea kwa kubadilisha picha ya `InstallESD.dmg` kupitia njia ya kubadilishana, haswa ikilenga njia ya `extractBootBits`. Hii inaruhusu uingizaji wa nambari ya hatari kabla ya picha ya diski kutumiwa.
Zaidi ya hayo, ndani ya `InstallESD.dmg`, kuna `BaseSystem.dmg`, ambayo ni mfumo wa faili wa msingi wa nambari ya kuboresha. Kuingiza maktaba ya kudumu ndani yake kunaruhusu nambari ya hatari kufanya kazi ndani ya mchakato ambao unaweza kubadilisha faili za kiwango cha mfumo, ikiongeza sana uwezekano wa kudhoofisha mfumo.
Katika mazungumzo haya kutoka [**DEF CON 31**](https://www.youtube.com/watch?v=zxZesAN-TEk), inaonyeshwa jinsi **`systemmigrationd`** (ambayo inaweza kuepuka SIP) inatekeleza script ya **bash** na **perl**, ambayo inaweza kutumiwa vibaya kupitia mazingira ya pembejeo **`BASH_ENV`** na **`PERL5OPT`**.
Ruhusa ya `com.apple.rootless.install` inajulikana kuepuka System Integrity Protection (SIP) kwenye macOS. Hii ilielezwa hasa kuhusiana na [**CVE-2022-26712**](https://jhftss.github.io/CVE-2022-26712-The-POC-For-SIP-Bypass-Is-Even-Tweetable/).
Katika kesi hii maalum, huduma ya XPC ya mfumo iliyoko kwenye `/System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc` inamiliki ruhusa hii. Hii inaruhusu mchakato unaohusiana kuepuka vizuizi vya SIP. Zaidi ya hayo, huduma hii hasa ina njia inayoruhusu hoja ya faili bila kutekeleza hatua yoyote ya usalama.
Picha Zilizofungwa za Mfumo ni kipengele kilicholetwa na Apple katika **macOS Big Sur (macOS 11)** kama sehemu ya mfumo wake wa **System Integrity Protection (SIP)** ili kutoa safu ya ziada ya usalama na utulivu wa mfumo. Kimsingi, ni toleo lisiloweza kuhaririwa la kiasi cha mfumo.
1.**Mfumo Usiobadilika**: Picha Zilizofungwa za Mfumo hufanya kiasi cha mfumo wa macOS kuwa "usiobadilika", maana yake haiwezi kuhaririwa. Hii inazuia mabadiliko yoyote yasiyoruhusiwa au ya bahati mbaya kwenye mfumo ambayo inaweza kudhoofisha usalama au utulivu wa mfumo.
2.**Visasisho vya Programu ya Mfumo**: Unapoweka visasisho au uboreshaji wa macOS, macOS hujenga picha mpya ya mfumo. Kisha kiasi cha kuanza cha macOS kinatumia **APFS (Apple File System)** kubadilisha kwenye picha hii mpya. Mchakato mzima wa kuomba visasisho unakuwa salama na wa kuaminika zaidi kwani mfumo unaweza kurudi kwenye picha ya awali ikiwa kuna shida wakati wa kusasisha.
3.**Ugawaji wa Data**: Kwa kushirikiana na dhana ya kugawanya kiasi cha Data na Mfumo iliyowasilishwa katika macOS Catalina, kipengele cha Picha Zilizofungwa za Mfumo kinahakikisha kuwa data yako yote na mipangilio inahifadhiwa kwenye kiasi tofauti cha "**Data**". Kugawanya huku kunafanya data yako kuwa huru kutoka kwa mfumo, ambayo inasaidia mchakato wa visasisho vya mfumo na kuimarisha usalama wa mfumo.
Kumbuka kuwa picha hizi zinaendeshwa moja kwa moja na macOS na hazichukui nafasi ya ziada kwenye diski yako, shukrani kwa uwezo wa kushiriki nafasi wa APFS. Ni muhimu pia kutambua kuwa picha hizi zinatofautiana na **picha za Time Machine**, ambazo ni nakala rudufu zinazopatikana kwa mtumiaji ya mfumo mzima.
Zaidi ya hayo, kiasi cha mfumo cha macOS kimefungwa na kimefungwa kwenye `/`, na ni **imefungwa** (imehifadhiwa kwa saini ya kielektroniki na mfumo wa uendeshaji). Kwa hivyo, ikiwa SIP inapuuzwa na kubadilishwa, **mfumo hautaanza tena**.
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.