macOS SIP
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã
åºæ¬æ å ±
System Integrity Protection (SIP) ã¯ãmacOSã«ãããŠãæãç¹æš©ã®ãããŠãŒã¶ãŒã§ãããéèŠãªã·ã¹ãã ãã©ã«ããŒã«å¯ŸããŠäžæ£ãªå€æŽãè¡ãããšãé²ãããã«èšèšãããã¡ã«ããºã ã§ãããã®æ©èœã¯ãä¿è·ãããé åå ã®ãã¡ã€ã«ã远å ã倿ŽããŸãã¯åé€ããè¡åãå¶éããããšã«ãã£ãŠãã·ã¹ãã ã®æŽåæ§ãç¶æããäžã§éèŠãªåœ¹å²ãæãããŸããSIPã«ãã£ãŠä¿è·ãããŠããäž»ãªãã©ã«ããŒã¯ä»¥äžã®éãã§ãïŒ
- /System
- /bin
- /sbin
- /usr
SIPã®åäœãèŠå®ããã«ãŒã«ã¯ã/System/Library/Sandbox/rootless.conf ã«ããèšå®ãã¡ã€ã«ã§å®çŸ©ãããŠããŸãããã®ãã¡ã€ã«å
ã§ã¯ãã¢ã¹ã¿ãªã¹ã¯ïŒ*ïŒã§å§ãŸããã¹ã¯ã峿 ŒãªSIPå¶éã®äŸå€ãšããŠç€ºãããŠããŸãã
以äžã®äŸãèããŠã¿ãŠãã ããïŒ
/usr
* /usr/libexec/cups
* /usr/local
* /usr/share/man
ãã®ã¹ããããã¯ãSIPãäžè¬çã«**/usr**ãã£ã¬ã¯ããªãä¿è·ããŠããäžæ¹ã§ãç¹å®ã®ãµããã£ã¬ã¯ããªïŒ/usr/libexec/cupsã/usr/localãããã³/usr/share/manïŒã§ã¯ããã¹ã®åã«ã¢ã¹ã¿ãªã¹ã¯ïŒ*ïŒãä»ããŠããããšããã倿Žãèš±å¯ãããŠããããšã瀺åããŠããŸãã
ãã£ã¬ã¯ããªãŸãã¯ãã¡ã€ã«ãSIPã«ãã£ãŠä¿è·ãããŠãããã©ããã確èªããã«ã¯ã**ls -lOdã³ãã³ãã䜿çšããŠãrestrictedãŸãã¯sunlnk**ãã©ã°ã®ååšã確èªã§ããŸããäŸãã°ïŒ
ls -lOd /usr/libexec/cups
drwxr-xr-x 11 root wheel sunlnk 352 May 13 00:29 /usr/libexec/cups
ãã®å Žåãsunlnk ãã©ã°ã¯ /usr/libexec/cups ãã£ã¬ã¯ããªèªäœã åé€ã§ããªã ããšã瀺ããŠããŸããããã®äžã®ãã¡ã€ã«ã¯äœæã倿ŽããŸãã¯åé€ã§ããŸãã
äžæ¹:
ls -lOd /usr/libexec
drwxr-xr-x 338 root wheel restricted 10816 May 13 00:29 /usr/libexec
ããã§ãrestricted ãã©ã°ã¯ã/usr/libexec ãã£ã¬ã¯ããªã SIP ã«ãã£ãŠä¿è·ãããŠããããšã瀺ããŸããSIP ã«ãã£ãŠä¿è·ããããã£ã¬ã¯ããªã§ã¯ããã¡ã€ã«ãäœæã倿ŽããŸãã¯åé€ããããšã¯ã§ããŸããã
ããã«ããã¡ã€ã«ã com.apple.rootless æ¡åŒµ 屿§ ãå«ãå Žåããã®ãã¡ã€ã«ã SIP ã«ãã£ãŠä¿è·ãããŸãã
Tip
Sandbox ããã¯
hook_vnode_check_setextattrã¯ãæ¡åŒµå±æ§com.apple.rootlessã倿Žããããšãã詊ã¿ãé²ããŸãã
SIP ã¯ä»ã®ã«ãŒãã¢ã¯ã·ã§ã³ãå¶éããŸã äŸãã°ïŒ
- ä¿¡é Œã§ããªãã«ãŒãã«æ¡åŒµã®èªã¿èŸŒã¿
- Apple 眲åããã»ã¹ã®ã¿ã¹ã¯ããŒãã®ååŸ
- NVRAM 倿°ã®å€æŽ
- ã«ãŒãã«ãããã°ã®èš±å¯
ãªãã·ã§ã³ã¯ãããããã©ã°ãšã㊠nvram 倿°ã«ä¿æãããŸãïŒIntel ã®å Žå㯠csr-active-configãARM ã®å Žåã¯ããŒããããããã€ã¹ããªãŒãã lp-sip0 ãèªã¿åãããŸãïŒããã©ã°ã¯ csr.sh ã® XNU ãœãŒã¹ã³ãŒãå
ã§èŠã€ããããšãã§ããŸãïŒ
.png)
SIP ã¹ããŒã¿ã¹
次ã®ã³ãã³ãã䜿çšããŠãã·ã¹ãã ã§ SIP ãæå¹ãã©ããã確èªã§ããŸãïŒ
csrutil status
SIPãç¡å¹ã«ããå¿ èŠãããå Žåã¯ããªã«ããªãŒã¢ãŒãã§ã³ã³ãã¥ãŒã¿ãåèµ·åããå¿ èŠããããŸãïŒèµ·åäžã«Command+RãæŒããŸãïŒã次ã«ã以äžã®ã³ãã³ããå®è¡ããŸãïŒ
csrutil disable
SIPãæå¹ã®ãŸãŸã«ããŠãããã°ä¿è·ãåé€ãããå Žåã¯ã次ã®ããã«ã§ããŸã:
csrutil enable --without debug
ãã®ä»ã®å¶é
- 眲åãããŠããªãã«ãŒãã«æ¡åŒµã®èªã¿èŸŒã¿ãçŠæ¢ (kexts)ãããã«ããæ€èšŒãããæ¡åŒµã®ã¿ãã·ã¹ãã ã«ãŒãã«ãšçžäºäœçšããŸãã
- macOSã·ã¹ãã ããã»ã¹ã®ãããã°ã鲿¢ããã³ã¢ã·ã¹ãã ã³ã³ããŒãã³ããäžæ£ã¢ã¯ã»ã¹ã倿Žããä¿è·ããŸãã
- dtraceã®ãããªããŒã«ãæå¶ããã·ã¹ãã ã®åäœã®å®å šæ§ãããã«ä¿è·ããŸãã
ãã®ããŒã¯ã§SIPæ å ±ã«ã€ããŠãã£ãšåŠã¶.
SIPé¢é£ã®æš©é
com.apple.rootless.xpc.bootstrap: launchdã®å¶åŸ¡com.apple.rootless.install[.heritable]: ãã¡ã€ã«ã·ã¹ãã ãžã®ã¢ã¯ã»ã¹com.apple.rootless.kext-management:kext_requestcom.apple.rootless.datavault.controller: UF_DATAVAULTã®ç®¡çcom.apple.rootless.xpc.bootstrap: XPCã»ããã¢ããæ©èœcom.apple.rootless.xpc.effective-root: launchd XPCçµç±ã®ã«ãŒãcom.apple.rootless.restricted-block-devices: çã®ãããã¯ããã€ã¹ãžã®ã¢ã¯ã»ã¹com.apple.rootless.internal.installer-equivalent: å¶éã®ãªããã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹com.apple.rootless.restricted-nvram-variables[.heritable]: NVRAMãžã®å®å šã¢ã¯ã»ã¹com.apple.rootless.storage.label: 察å¿ããã©ãã«ãæã€com.apple.rootless xattrã«ãã£ãŠå¶éããããã¡ã€ã«ã倿Žcom.apple.rootless.volume.VM.label: ããªã¥ãŒã äžã®VMã¹ã¯ãããç¶æ
SIPãã€ãã¹
SIPããã€ãã¹ããããšã§æ»æè ã¯ä»¥äžãè¡ãããšãã§ããŸãïŒ
- ãŠãŒã¶ãŒããŒã¿ãžã®ã¢ã¯ã»ã¹: ãã¹ãŠã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãããã¡ãŒã«ãã¡ãã»ãŒãžãSafariã®å±¥æŽãªã©ã®æ©å¯ãŠãŒã¶ãŒããŒã¿ãèªã¿åãã
- TCCãã€ãã¹: TCCïŒTransparency, Consent, and ControlïŒããŒã¿ããŒã¹ãçŽæ¥æäœãããŠã§ãã«ã¡ã©ããã€ã¯ããã®ä»ã®ãªãœãŒã¹ãžã®äžæ£ã¢ã¯ã»ã¹ãèš±å¯ããã
- æç¶æ§ã®ç¢ºç«: SIPä¿è·ãããå Žæã«ãã«ãŠã§ã¢ãé 眮ããã«ãŒãæš©éã«ããåé€ã«å¯ŸããŠæµæåãæããããããã«ã¯ããã«ãŠã§ã¢é€å»ããŒã«ïŒMRTïŒãæ¹ããããå¯èœæ§ãå«ãŸããŸãã
- ã«ãŒãã«æ¡åŒµã®èªã¿èŸŒã¿: 远å ã®ä¿è·ãããã«ãããããããSIPããã€ãã¹ããããšã§çœ²åãããŠããªãã«ãŒãã«æ¡åŒµã®èªã¿èŸŒã¿ãç°¡çŽ åãããŸãã
ã€ã³ã¹ããŒã©ãŒããã±ãŒãž
Appleã®èšŒææžã§çœ²åãããã€ã³ã¹ããŒã©ãŒããã±ãŒãžã¯ããã®ä¿è·ããã€ãã¹ã§ããŸããããã¯ãæšæºã®éçºè ã«ãã£ãŠçœ²åãããããã±ãŒãžã§ãã£ãŠããSIPä¿è·ããããã£ã¬ã¯ããªã倿Žããããšãããšãããã¯ãããããšãæå³ããŸãã
ååšããªãSIPãã¡ã€ã«
1ã€ã®æœåšçãªæã穎ã¯ãrootless.confã«æå®ããããã¡ã€ã«ãçŸåšååšããªãå Žåããããäœæã§ããããšã§ãããã«ãŠã§ã¢ã¯ãããå©çšããŠã·ã¹ãã äžã«æç¶æ§ã確ç«ããå¯èœæ§ããããŸããããšãã°ãæªæã®ããããã°ã©ã ã¯ãrootless.confã«ãªã¹ããããŠãããååšããªãå Žåã/System/Library/LaunchDaemonsã«.plistãã¡ã€ã«ãäœæããããšãã§ããŸãã
com.apple.rootless.install.heritable
Caution
æš©é
com.apple.rootless.install.heritableã¯SIPããã€ãã¹ããããšãèš±å¯ããŸã
CVE-2019-8561
ã·ã¹ãã ããã®ã³ãŒã眲åãæ€èšŒããåŸã«ã€ã³ã¹ããŒã©ãŒããã±ãŒãžãå
¥ãæ¿ããããšãå¯èœã§ããããšãçºèŠãããŸããããã®åŸãã·ã¹ãã ã¯å
ã®ããã±ãŒãžã®ä»£ããã«æªæã®ããããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãããããã®ã¢ã¯ã·ã§ã³ã¯**system_installd**ã«ãã£ãŠå®è¡ããããããSIPããã€ãã¹ããããšãã§ããŸãã
CVE-2020â9854
ããŠã³ããããã€ã¡ãŒãžãŸãã¯å€éšãã©ã€ãããããã±ãŒãžãã€ã³ã¹ããŒã«ãããå Žåãã€ã³ã¹ããŒã©ãŒã¯ãã®ãã¡ã€ã«ã·ã¹ãã ãããã€ããªãå®è¡ããŸãïŒSIPä¿è·ãããå Žæããã§ã¯ãªãïŒãããã«ãã**system_installd**ãä»»æã®ãã€ããªãå®è¡ããããšã«ãªããŸãã
CVE-2021-30892 - Shrootless
ãã®ããã°æçš¿ã®ç ç©¶è
ãã¡ã¯ãmacOSã®ã·ã¹ãã æŽåæ§ä¿è·ïŒSIPïŒã¡ã«ããºã ã«ããããShrootlessãè匱æ§ãçºèŠããŸããããã®è匱æ§ã¯ã**system_installdããŒã¢ã³ã«é¢é£ããŠãããcom.apple.rootless.install.heritable**ãšããæš©éãæã¡ããã®åããã»ã¹ãSIPã®ãã¡ã€ã«ã·ã¹ãã å¶éããã€ãã¹ã§ããããšãèš±å¯ããŸãã
**system_installd**ããŒã¢ã³ã¯ãAppleã«ãã£ãŠçœ²åãããããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
ç ç©¶è
ãã¡ã¯ãApple眲åã®ããã±ãŒãžïŒ.pkgãã¡ã€ã«ïŒã®ã€ã³ã¹ããŒã«äžã«ãsystem_installdãããã±ãŒãžã«å«ãŸããpost-installã¹ã¯ãªãããå®è¡ããããšãçºèŠããŸããããããã®ã¹ã¯ãªããã¯ããã©ã«ãã®ã·ã§ã«ã§ãã**zshã«ãã£ãŠå®è¡ãããååšããå Žåã¯é察話ã¢ãŒãã§ã/etc/zshenvãã¡ã€ã«ããã³ãã³ããèªåçã«å®è¡ããŸãããã®åäœã¯æ»æè
ã«ãã£ãŠæªçšãããå¯èœæ§ããããŸãïŒæªæã®ãã/etc/zshenvãã¡ã€ã«ãäœæããsystem_installdãzshãåŒã³åºãã®ãåŸ
ã€**ããšã§ãããã€ã¹äžã§ä»»æã®æäœãå®è¡ã§ããŸãã
ããã«ã/etc/zshenvã¯äžè¬çãªæ»æææ³ãšããŠäœ¿çšã§ããããšãçºèŠãããŸãããåãŠãŒã¶ãŒãããã¡ã€ã«ã«ã¯~/.zshenvãã¡ã€ã«ããããããã¯/etc/zshenvãšåæ§ã«åäœããŸãããã«ãŒãæš©éã¯å¿
èŠãããŸããããã®ãã¡ã€ã«ã¯æç¶æ§ã¡ã«ããºã ãšããŠäœ¿çšãããzshãèµ·åãããã³ã«ããªã¬ãŒãããããç¹æš©ææ Œã¡ã«ããºã ãšããŠäœ¿çšãããå¯èœæ§ããããŸãã管çè
ãŠãŒã¶ãŒãsudo -sãŸãã¯sudo <command>ã䜿çšããŠã«ãŒãã«ææ Œãããšã~/.zshenvãã¡ã€ã«ãããªã¬ãŒãããå®è³ªçã«ã«ãŒãã«ææ ŒããŸãã
CVE-2022-22583
CVE-2022-22583ã§ã¯ãåã**system_installdããã»ã¹ãäŸç¶ãšããŠæªçšãããå¯èœæ§ãããããšãçºèŠãããŸããããªããªããpost-installã¹ã¯ãªãããSIPã«ãã£ãŠä¿è·ãããã©ã³ãã ã«åä»ãããããã©ã«ããŒå
ã«é
眮ãããŠããããã§ããåé¡ã¯ã/tmpèªäœã¯SIPã«ãã£ãŠä¿è·ãããŠããªããã**ãä»®æ³ã€ã¡ãŒãžãããŠã³ããããã®åŸã€ã³ã¹ããŒã©ãŒãpost-installã¹ã¯ãªãããããã«é
眮ããä»®æ³ã€ã¡ãŒãžãã¢ã³ããŠã³ããããã¹ãŠã®ãã©ã«ããŒãåäœæãããã€ããŒããå®è¡ããpost installationã¹ã¯ãªããã远å ããããšãå¯èœã ã£ãããšã§ãã
fsck_csãŠãŒãã£ãªãã£
**fsck_csãéèŠãªãã¡ã€ã«ãç Žæãããããã«èª€å°ãããè匱æ§ãç¹å®ãããŸãããããã¯ãã·ã³ããªãã¯ãªã³ã¯ããã©ãèœåã«ãããã®ã§ãããå
·äœçã«ã¯ãæ»æè
ã¯/dev/diskXãã/System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plistãžã®ãªã³ã¯ãäœæããŸãããfsck_cs**ã/dev/diskXã§å®è¡ãããšãInfo.plistãç ŽæããŸããããã®ãã¡ã€ã«ã®æŽåæ§ã¯ãã«ãŒãã«æ¡åŒµã®èªã¿èŸŒã¿ãå¶åŸ¡ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®SIPïŒã·ã¹ãã æŽåæ§ä¿è·ïŒã«ãšã£ãŠéèŠã§ããäžåºŠç ŽæãããšãSIPã®ã«ãŒãã«é€å€ã管çããèœåãæãªãããŸãã
ãã®è匱æ§ãæªçšããããã®ã³ãã³ãã¯ïŒ
ln -s /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist /dev/diskX
fsck_cs /dev/diskX 1>&-
touch /Library/Extensions/
reboot
ãã®è匱æ§ã®æªçšã¯æ·±å»ãªåœ±é¿ãåãŒããŸããéåžžãã«ãŒãã«æ¡åŒµã®æš©éã管çãã圹å²ãæã€Info.plistãã¡ã€ã«ãç¡å¹ã«ãªããŸããããã«ã¯ãAppleHWAccess.kextã®ãããªç¹å®ã®æ¡åŒµããã©ãã¯ãªã¹ãã«ç»é²ã§ããªãããšãå«ãŸããŸãããã®çµæãSIPã®å¶åŸ¡ã¡ã«ããºã ãæ©èœããªããªããšããã®æ¡åŒµãèªã¿èŸŒã¿å¯èœã«ãªããã·ã¹ãã ã®RAMãžã®äžæ£ãªèªã¿æžãã¢ã¯ã»ã¹ãèš±å¯ãããŸãã
SIPä¿è·ãã©ã«ãäžã«ããŠã³ã
ä¿è·ãåé¿ããããã«SIPä¿è·ãã©ã«ãäžã«æ°ãããã¡ã€ã«ã·ã¹ãã ãããŠã³ãããããšãå¯èœã§ããã
mkdir evil
# Add contento to the folder
hdiutil create -srcfolder evil evil.dmg
hdiutil attach -mountpoint /System/Library/Snadbox/ evil.dmg
Upgrader bypass (2016)
ã·ã¹ãã ã¯ãOSãã¢ããã°ã¬ãŒãããããã«Install macOS Sierra.appå
ã®åã蟌ã¿ã€ã³ã¹ããŒã©ãŒãã£ã¹ã¯ã€ã¡ãŒãžããããŒãããããã«èšå®ãããŠãããblessãŠãŒãã£ãªãã£ãå©çšããŠããŸãã䜿çšãããã³ãã³ãã¯æ¬¡ã®ãšããã§ã:
/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
ãã®ããã»ã¹ã®ã»ãã¥ãªãã£ã¯ãæ»æè
ãããŒãåã«ã¢ããã°ã¬ãŒãã€ã¡ãŒãžïŒInstallESD.dmgïŒã倿Žãããšå±éºã«ãããããå¯èœæ§ããããŸãããã®æŠç¥ã¯ãåçããŒããŒïŒdyldïŒãæªæã®ããããŒãžã§ã³ïŒlibBaseIA.dylibïŒã«çœ®ãæããããšãå«ã¿ãŸãããã®çœ®ãæãã«ãããã€ã³ã¹ããŒã©ãŒãéå§ããããšæ»æè
ã®ã³ãŒããå®è¡ãããŸãã
æ»æè
ã®ã³ãŒãã¯ãã¢ããã°ã¬ãŒãããã»ã¹äžã«å¶åŸ¡ãååŸããã€ã³ã¹ããŒã©ãŒã«å¯Ÿããã·ã¹ãã ã®ä¿¡é Œãå©çšããŸããæ»æã¯ãInstallESD.dmgã€ã¡ãŒãžãã¡ãœããã¹ãŠã£ãºãªã³ã°ãéããŠå€æŽããç¹ã«extractBootBitsã¡ãœãããã¿ãŒã²ããã«ããŸããããã«ããããã£ã¹ã¯ã€ã¡ãŒãžã䜿çšãããåã«æªæã®ããã³ãŒããæ³šå
¥ããããšãå¯èœã«ãªããŸãã
ããã«ãInstallESD.dmgå
ã«ã¯ãã¢ããã°ã¬ãŒãã³ãŒãã®ã«ãŒããã¡ã€ã«ã·ã¹ãã ãšããŠæ©èœããBaseSystem.dmgããããŸããããã«åçã©ã€ãã©ãªã泚å
¥ããããšã§ãæªæã®ããã³ãŒããOSã¬ãã«ã®ãã¡ã€ã«ã倿Žã§ããããã»ã¹å
ã§åäœããããšãã§ããã·ã¹ãã ã®å±éºæ§ã倧å¹
ã«å¢å ããŸãã
systemmigrationd (2023)
ãã®DEF CON 31ã®è¬æŒã§ã¯ãsystemmigrationdïŒSIPããã€ãã¹ã§ããïŒãbashãšperlã¹ã¯ãªãããå®è¡ãããããç°å¢å€æ°**BASH_ENVãšPERL5OPT**ãä»ããŠæªçšãããå¯èœæ§ãããããšã瀺ãããŠããŸãã
CVE-2023-42860
ãã®ããã°èšäºã§è©³è¿°ãããŠããããã«ãInstallAssistant.pkgããã±ãŒãžã®postinstallã¹ã¯ãªãããå®è¡ãããŠããŸããïŒ
/usr/bin/chflags -h norestricted "${SHARED_SUPPORT_PATH}/SharedSupport.dmg"
and it was possible to create a symlink in ${SHARED_SUPPORT_PATH}/SharedSupport.dmg that would allow a user to unrestrict any file, bypassing SIP protection.
com.apple.rootless.install
Caution
The entitlement
com.apple.rootless.installallows to bypass SIP
The entitlement com.apple.rootless.install is known to bypass System Integrity Protection (SIP) on macOS. This was notably mentioned in relation to CVE-2022-26712.
In this specific case, the system XPC service located at /System/Library/PrivateFrameworks/ShoveService.framework/Versions/A/XPCServices/SystemShoveService.xpc possesses this entitlement. This allows the related process to circumvent SIP constraints. Furthermore, this service notably presents a method that permits the movement of files without enforcing any security measures.
Sealed System Snapshots
Sealed System Snapshotsã¯ãAppleã**macOS Big Sur (macOS 11)**ã§å°å ¥ããæ©èœã§ã**System Integrity Protection (SIP)**ã¡ã«ããºã ã®äžéšãšããŠã远å ã®ã»ãã¥ãªãã£ãšã·ã¹ãã ã®å®å®æ§ãæäŸããŸãããããã¯æ¬è³ªçã«ã·ã¹ãã ããªã¥ãŒã ã®èªã¿åãå°çšããŒãžã§ã³ã§ãã
以äžã¯è©³çްãªèª¬æã§ãïŒ
- äžå€ã®ã·ã¹ãã : Sealed System Snapshotsã¯macOSã·ã¹ãã ããªã¥ãŒã ããäžå€ãã«ãã倿Žã§ããªãããã«ããŸããããã«ãããã»ãã¥ãªãã£ãã·ã¹ãã ã®å®å®æ§ãæãªãå¯èœæ§ã®ããäžæ£ãŸãã¯å¶çºçãªå€æŽãé²ããŸãã
- ã·ã¹ãã ãœãããŠã§ã¢ã®æŽæ°: macOSã®æŽæ°ãã¢ããã°ã¬ãŒããã€ã³ã¹ããŒã«ãããšãmacOSã¯æ°ããã·ã¹ãã ã¹ãããã·ã§ãããäœæããŸããmacOSã®èµ·åããªã¥ãŒã ã¯ãã®åŸã**APFS (Apple File System)**ã䜿çšããŠãã®æ°ããã¹ãããã·ã§ããã«åãæ¿ããŸããæŽæ°ãé©çšããããã»ã¹å šäœãå®å šã§ä¿¡é Œæ§ãé«ããªããæŽæ°äžã«äœãåé¡ãçºçããå Žåã§ããã·ã¹ãã ã¯åžžã«åã®ã¹ãããã·ã§ããã«æ»ãããšãã§ããŸãã
- ããŒã¿ã®åé¢: macOS Catalinaã§å°å ¥ãããããŒã¿ãšã·ã¹ãã ããªã¥ãŒã ã®åé¢ã®æŠå¿µãšçµã¿åãããŠãSealed System Snapshotæ©èœã¯ããã¹ãŠã®ããŒã¿ãšèšå®ãå¥ã®ãDataãããªã¥ãŒã ã«ä¿åãããããšãä¿èšŒããŸãããã®åé¢ã«ãããããŒã¿ãã·ã¹ãã ããç¬ç«ããã·ã¹ãã ã®æŽæ°ããã»ã¹ãç°¡çŽ åãããã·ã¹ãã ã®ã»ãã¥ãªãã£ãåäžããŸãã
ãããã®ã¹ãããã·ã§ããã¯macOSã«ãã£ãŠèªåçã«ç®¡çãããAPFSã®ã¹ããŒã¹å ±ææ©èœã®ãããã§ãã£ã¹ã¯äžã«è¿œå ã®ã¹ããŒã¹ãå æããŸããããŸãããããã®ã¹ãããã·ã§ããã¯ããŠãŒã¶ãŒãã¢ã¯ã»ã¹å¯èœãªã·ã¹ãã å šäœã®ããã¯ã¢ããã§ããTime Machineã¹ãããã·ã§ãããšã¯ç°ãªãããšã«æ³šæããããšãéèŠã§ãã
Check Snapshots
The command diskutil apfs list lists the details of the APFS volumes and their layout:
+-- 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 the previous output itâs possible to see that user-accessible locations are mounted under /System/Volumes/Data.
Moreover, macOS System volume snapshot is mounted in / and itâs sealed (cryptographically signed by the OS). So, if SIP is bypassed and modifies it, the OS wonât boot anymore.
Itâs also possible to verify that seal is enabled by running:
csrutil authenticated-root status
Authenticated Root status: enabled
ããã«ãã¹ãããã·ã§ãããã£ã¹ã¯ã¯èªã¿åãå°çšãšããŠããŠã³ããããŸãïŒ
mount
/dev/disk3s1s1 on / (apfs, sealed, local, read-only, journaled)
Tip
AWSãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training AWS Red Team Expert (ARTE)
GCPãããã³ã°ãåŠã³ãå®è·µããïŒHackTricks Training GCP Red Team Expert (GRTE)
Azureãããã³ã°ãåŠã³ãå®è·µããïŒ
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå ±æããŠãã ããã


