macOS ํ์ผ, ํด๋, ๋ฐ์ด๋๋ฆฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ
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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
ํ์ผ ๊ณ์ธต ๊ตฌ์กฐ
- /Applications: ์ค์น๋ ์ฑ์ด ์ฌ๊ธฐ์ ์์ด์ผ ํฉ๋๋ค. ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์์ต๋๋ค.
- /bin: ๋ช ๋ น์ค ๋ฐ์ด๋๋ฆฌ
- /cores: ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ฝ์ด ๋คํ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- /dev: ๋ชจ๋ ๊ฒ์ด ํ์ผ๋ก ์ทจ๊ธ๋๋ฏ๋ก ํ๋์จ์ด ์ฅ์น๊ฐ ์ฌ๊ธฐ์ ์ ์ฅ๋ ์ ์์ต๋๋ค.
- /etc: ๊ตฌ์ฑ ํ์ผ
- /Library: ํ๊ฒฝ ์ค์ , ์บ์ ๋ฐ ๋ก๊ทธ์ ๊ด๋ จ๋ ๋ง์ ํ์ ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฃจํธ์ ๊ฐ ์ฌ์ฉ์ ๋๋ ํ ๋ฆฌ์ Library ํด๋๊ฐ ์กด์ฌํฉ๋๋ค.
- /private: ๋ฌธ์ํ๋์ง ์์์ง๋ง ์ธ๊ธ๋ ๋ง์ ํด๋๋ ๊ฐ์ธ ๋๋ ํ ๋ฆฌ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ์ ๋๋ค.
- /sbin: ํ์ ์์คํ ๋ฐ์ด๋๋ฆฌ(๊ด๋ฆฌ์ ๊ด๋ จ๋จ)
- /System: OS X์ ์คํํ๊ธฐ ์ํ ํ์ผ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฃผ๋ก Apple ์ ์ฉ ํ์ผ๋ง ์์ด์ผ ํฉ๋๋ค(์๋ํํฐ ์๋).
- /tmp: ํ์ผ์ 3์ผ ํ์ ์ญ์ ๋ฉ๋๋ค(์ด๋ /private/tmp์ ๋ํ ์ํํธ ๋งํฌ์ ๋๋ค).
- /Users: ์ฌ์ฉ์์ ํ ๋๋ ํ ๋ฆฌ์ ๋๋ค.
- /usr: ๊ตฌ์ฑ ๋ฐ ์์คํ ๋ฐ์ด๋๋ฆฌ
- /var: ๋ก๊ทธ ํ์ผ
- /Volumes: ๋ง์ดํธ๋ ๋๋ผ์ด๋ธ๊ฐ ์ฌ๊ธฐ์ ๋ํ๋ฉ๋๋ค.
- /.vol:
stat a.txt๋ฅผ ์คํํ๋ฉด16777223 7545753 -rw-r--r-- 1 username wheel ...์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค. ์ฌ๊ธฐ์ ์ฒซ ๋ฒ์งธ ์ซ์๋ ํ์ผ์ด ์กด์ฌํ๋ ๋ณผ๋ฅจ์ ID ๋ฒํธ์ด๊ณ ๋ ๋ฒ์งธ ์ซ์๋ inode ๋ฒํธ์ ๋๋ค. ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌcat /.vol/16777223/7545753๋ฅผ ์คํํ์ฌ ์ด ํ์ผ์ ๋ด์ฉ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ํด๋
- ์์คํ
์ ํ๋ฆฌ์ผ์ด์
์
/System/Applications์๋์ ์์นํฉ๋๋ค. - ์ค์น๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ผ๋ฐ์ ์ผ๋ก
/Applications๋๋~/Applications์ ์ค์น๋ฉ๋๋ค. - ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ ๋ฃจํธ๋ก ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ
/Library/Application Support์, ์ฌ์ฉ์๋ก ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ~/Library/Application Support์ ์์ต๋๋ค. - ์๋ํํฐ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ๋ชฌ์ ๋ฃจํธ๋ก ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก
/Library/PrivilegedHelperTools/์ ์์นํฉ๋๋ค. - ์๋๋ฐ์ค ์ฑ์
~/Library/Containersํด๋์ ๋งคํ๋ฉ๋๋ค. ๊ฐ ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฒ๋ค ID(com.apple.Safari)์ ๋ฐ๋ผ ์ด๋ฆ์ด ์ง์ ๋ ํด๋๋ฅผ ๊ฐ์ง๋๋ค. - ์ปค๋์
/System/Library/Kernels/kernel์ ์์นํฉ๋๋ค. - Apple์ ์ปค๋ ํ์ฅ์
/System/Library/Extensions์ ์์นํฉ๋๋ค. - ์๋ํํฐ ์ปค๋ ํ์ฅ์
/Library/Extensions์ ์ ์ฅ๋ฉ๋๋ค.
๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ํฌํจ๋ ํ์ผ
MacOS๋ ๋น๋ฐ๋ฒํธ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฌ๋ฌ ์ฅ์์ ์ ์ฅํฉ๋๋ค:
macOS Sensitive Locations & Interesting Daemons
์ทจ์ฝํ pkg ์ค์น ํ๋ก๊ทธ๋จ
OS X ํน์ ํ์ฅ
.dmg: Apple ๋์คํฌ ์ด๋ฏธ์ง ํ์ผ์ ์ค์น ํ๋ก๊ทธ๋จ์ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค..kext: ํน์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ผ์ผ ํ๋ฉฐ OS X ๋ฒ์ ์ ๋๋ผ์ด๋ฒ์ ๋๋ค. (๋ฒ๋ค์ ๋๋ค).plist: ์์ฑ ๋ชฉ๋ก์ผ๋ก๋ ์๋ ค์ ธ ์์ผ๋ฉฐ XML ๋๋ ๋ฐ์ด๋๋ฆฌ ํ์์ผ๋ก ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.- XML ๋๋ ๋ฐ์ด๋๋ฆฌ์ผ ์ ์์ต๋๋ค. ๋ฐ์ด๋๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฝ์ ์ ์์ต๋๋ค:
defaults read config.plist/usr/libexec/PlistBuddy -c print config.plistplutil -p ~/Library/Preferences/com.apple.screensaver.plistplutil -convert xml1 ~/Library/Preferences/com.apple.screensaver.plist -o -plutil -convert json ~/Library/Preferences/com.apple.screensaver.plist -o -.app: ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ Apple ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค(๋ฒ๋ค์ ๋๋ค)..dylib: ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Windows DLL ํ์ผ๊ณผ ์ ์ฌ).pkg: xar(ํ์ฅ ๊ฐ๋ฅํ ์์นด์ด๋ธ ํ์)์ ๋์ผํฉ๋๋ค. ์ค์น ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ํ์ผ์ ๋ด์ฉ์ ์ค์นํ ์ ์์ต๋๋ค..DS_Store: ์ด ํ์ผ์ ๊ฐ ๋๋ ํ ๋ฆฌ์ ์์ผ๋ฉฐ, ๋๋ ํ ๋ฆฌ์ ์์ฑ๊ณผ ์ฌ์ฉ์ ์ ์๋ฅผ ์ ์ฅํฉ๋๋ค..Spotlight-V100: ์ด ํด๋๋ ์์คํ ์ ๋ชจ๋ ๋ณผ๋ฅจ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ๋ํ๋ฉ๋๋ค..metadata_never_index: ์ด ํ์ผ์ด ๋ณผ๋ฅจ์ ๋ฃจํธ์ ์์ผ๋ฉด Spotlight๋ ํด๋น ๋ณผ๋ฅจ์ ์ธ๋ฑ์ฑํ์ง ์์ต๋๋ค..noindex: ์ด ํ์ฅ์ ๊ฐ์ง ํ์ผ๊ณผ ํด๋๋ Spotlight์ ์ํด ์ธ๋ฑ์ฑ๋์ง ์์ต๋๋ค..sdef: ๋ฒ๋ค ๋ด์ ํ์ผ๋ก, AppleScript์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค.
macOS ๋ฒ๋ค
๋ฒ๋ค์ Finder์์ ๊ฐ์ฒด์ฒ๋ผ ๋ณด์ด๋ ๋๋ ํ ๋ฆฌ์
๋๋ค(๋ฒ๋ค์ ์๋ *.app ํ์ผ์
๋๋ค).
Dyld ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์บ์ (SLC)
macOS(๋ฐ iOS)์์ ๋ชจ๋ ์์คํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ ๋ฐ dylibs๋ ๋จ์ผ ํ์ผ๋ก ๊ฒฐํฉ๋์ด, dyld ๊ณต์ ์บ์๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค. ์ด๋ ์ฑ๋ฅ์ ํฅ์์์ผ ์ฝ๋๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ก๋๋ ์ ์๊ฒ ํฉ๋๋ค.
์ด๊ฒ์ macOS์์ /System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/์ ์์นํ๋ฉฐ, ์ด์ ๋ฒ์ ์์๋ **/System/Library/dyld/**์์ ๊ณต์ ์บ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
iOS์์๋ **/System/Library/Caches/com.apple.dyld/**์์ ์ฐพ์ ์ ์์ต๋๋ค.
dyld ๊ณต์ ์บ์์ ์ ์ฌํ๊ฒ, ์ปค๋ ๋ฐ ์ปค๋ ํ์ฅ๋ ๋ถํ ์ ๋ก๋๋๋ ์ปค๋ ์บ์์ ์ปดํ์ผ๋ฉ๋๋ค.
๋จ์ผ ํ์ผ dylib ๊ณต์ ์บ์์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ถํ๊ธฐ ์ํด dyld_shared_cache_util์ด๋ผ๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์์ผ๋ ํ์ฌ๋ ์๋ํ์ง ์์ ์ ์์ผ๋ฉฐ, dyldextractor๋ ์ฌ์ฉํ ์ ์์ต๋๋ค:
# dyld_shared_cache_util
dyld_shared_cache_util -extract ~/shared_cache/ /System/Volumes/Preboot/Cryptexes/OS/System/Library/dyld/dyld_shared_cache_arm64e
# dyldextractor
dyldex -l [dyld_shared_cache_path] # List libraries
dyldex_all [dyld_shared_cache_path] # Extract all
# More options inside the readme
Tip
dyld_shared_cache_util๋๊ตฌ๊ฐ ์๋ํ์ง ์๋๋ผ๋ ๊ณต์ dyld ๋ฐ์ด๋๋ฆฌ๋ฅผ Hopper์ ์ ๋ฌํ๋ฉด Hopper๊ฐ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ณํ๊ณ ์กฐ์ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํ ์ ์๊ฒ ํด์ค๋๋ค:
.png)
์ผ๋ถ ์ถ์ถ๊ธฐ๋ dylibs๊ฐ ํ๋ ์ฝ๋ฉ๋ ์ฃผ์๋ก ๋ฏธ๋ฆฌ ๋งํฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ์ ์ ์๋ ์ฃผ์๋ก ์ ํํ ์ ์์ต๋๋ค.
Tip
Xcode์ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ macOS์์ ๋ค๋ฅธ *OS ์ฅ์น์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์บ์๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ค์ ๋ค์ ๊ฒฝ๋ก์ ๋ค์ด๋ก๋๋ฉ๋๋ค: ls
$HOME/Library/Developer/Xcode/<*>OS\ DeviceSupport/<version>/Symbols/System/Library/Caches/com.apple.dyld/, ์:$HOME/Library/Developer/Xcode/iOS\ DeviceSupport/14.1\ (18A8395)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64
SLC ๋งคํ
**dyld**๋ SLC๊ฐ ๋งคํ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์์คํ
ํธ์ถ **shared_region_check_np**๋ฅผ ์ฌ์ฉํ๊ณ (์ฃผ์๋ฅผ ๋ฐํํจ) **shared_region_map_and_slide_np**๋ฅผ ์ฌ์ฉํ์ฌ SLC๋ฅผ ๋งคํํฉ๋๋ค.
SLC๊ฐ ์ฒซ ๋ฒ์งธ ์ฌ์ฉ ์ ์ฌ๋ผ์ด๋๋๋๋ผ๋ ๋ชจ๋ ํ๋ก์ธ์ค๋ ๊ฐ์ ๋ณต์ฌ๋ณธ์ ์ฌ์ฉํ๋ฏ๋ก, ๊ณต๊ฒฉ์๊ฐ ์์คํ ์์ ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ ์๋ค๋ฉด ASLR ๋ณดํธ๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด๋ ๊ณผ๊ฑฐ์ ์ค์ ๋ก ์ ์ฉ๋์์ผ๋ฉฐ ๊ณต์ ์์ญ ํ์ด์ ๋ก ์์ ๋์์ต๋๋ค.
๋ธ๋์น ํ์ ์ด๋ฏธ์ง ๋งคํ ์ฌ์ด์ ์์ ๊ณต๊ฐ์ ๋ง๋ค์ด ํจ์์ ์ค๊ฐ ๊ฐ์ ์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ์์ Mach-O dylibs์ ๋๋ค.
SLC ์ฌ์ ์
ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ:
DYLD_DHARED_REGION=private DYLD_SHARED_CACHE_DIR=</path/dir> DYLD_SHARED_CACHE_DONT_VALIDATE=1-> ์๋ก์ด ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์บ์๋ฅผ ๋ก๋ํ ์ ์๊ฒ ํด์ค๋๋ค.DYLD_SHARED_CACHE_DIR=avoid๋ฐ ์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ๊ณต์ ์บ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ต์ฒดํฉ๋๋ค (์ถ์ถํด์ผ ํจ).
ํน๋ณ ํ์ผ ๊ถํ
ํด๋ ๊ถํ
ํด๋์์ ์ฝ๊ธฐ๋ ๋ชฉ๋ก์ ๋์ดํ ์ ์๊ฒ ํ๊ณ , ์ฐ๊ธฐ๋ ํ์ผ์ ์ญ์ ํ๊ณ ์์ฑํ ์ ์๊ฒ ํ๋ฉฐ, ์คํ์ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ํ ์ ์๊ฒ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์คํ ๊ถํ์ด ์๋ ๋๋ ํ ๋ฆฌ ๋ด์ ํ์ผ์ ๋ํด ์ฝ๊ธฐ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ ํ์ผ์ ์ฝ์ ์ ์์ต๋๋ค.
ํ๋๊ทธ ์์ ์
ํ์ผ์ ์ค์ ํ ์ ์๋ ๋ช ๊ฐ์ง ํ๋๊ทธ๊ฐ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ํ์ผ์ด ๋ค๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค. ls -lO /path/directory๋ก ๋๋ ํ ๋ฆฌ ๋ด ํ์ผ์ ํ๋๊ทธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
uchg: uchange ํ๋๊ทธ๋ก, ํ์ผ์ ๋ณ๊ฒฝ ๋๋ ์ญ์ ๋ฅผ ๋ฐฉ์งํฉ๋๋ค. ์ค์ ํ๋ ค๋ฉด:chflags uchg file.txt- ๋ฃจํธ ์ฌ์ฉ์๋ ํ๋๊ทธ๋ฅผ ์ ๊ฑฐํ๊ณ ํ์ผ์ ์์ ํ ์ ์์ต๋๋ค.
restricted: ์ด ํ๋๊ทธ๋ ํ์ผ์ด SIP์ ์ํด ๋ณดํธ๋๋๋ก ํฉ๋๋ค (์ด ํ๋๊ทธ๋ฅผ ํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค).Sticky bit: ์คํฐํค ๋นํธ๊ฐ ์๋ ๋๋ ํ ๋ฆฌ์์๋ ์ค์ง ๋๋ ํ ๋ฆฌ ์์ ์ ๋๋ ๋ฃจํธ๋ง ํ์ผ์ ์ด๋ฆ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๋ /tmp ๋๋ ํ ๋ฆฌ์ ์ค์ ๋์ด ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์์ ํ์ผ์ ์ญ์ ํ๊ฑฐ๋ ์ด๋ํ์ง ๋ชปํ๋๋ก ํฉ๋๋ค.
๋ชจ๋ ํ๋๊ทธ๋ ํ์ผ sys/stat.h์์ ์ฐพ์ ์ ์์ผ๋ฉฐ (๋ค์ ๋ช
๋ น์ด๋ก ์ฐพ์ ์ ์์ต๋๋ค: mdfind stat.h | grep stat.h) ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
UF_SETTABLE0x0000ffff: ์์ ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ ํ๋๊ทธ์ ๋ง์คํฌ.UF_NODUMP0x00000001: ํ์ผ ๋คํ๋ฅผ ํ์ง ์์.UF_IMMUTABLE0x00000002: ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์.UF_APPEND0x00000004: ํ์ผ์ ๋ํ ์ฐ๊ธฐ๋ ์ค์ง ์ถ๊ฐ๋ง ๊ฐ๋ฅ.UF_OPAQUE0x00000008: ๋๋ ํ ๋ฆฌ๋ ์ ๋์จ์ ๋ํด ๋ถํฌ๋ช ํจ.UF_COMPRESSED0x00000020: ํ์ผ์ด ์์ถ๋จ (์ผ๋ถ ํ์ผ ์์คํ ).UF_TRACKED0x00000040: ์ด ์ค์ ์ด ์๋ ํ์ผ์ ๋ํ ์ญ์ /์ด๋ฆ ๋ณ๊ฒฝ ์๋ฆผ ์์.UF_DATAVAULT0x00000080: ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ๋ํ ๊ถํ ํ์.UF_HIDDEN0x00008000: ์ด ํญ๋ชฉ์ด GUI์ ํ์๋์ง ์์์ผ ํจ์ ๋ํ๋.SF_SUPPORTED0x009f0000: ์ํผ์ ์ ์ง์ ํ๋๊ทธ์ ๋ง์คํฌ.SF_SETTABLE0x3fff0000: ์ํผ์ ์ ๋ณ๊ฒฝ ๊ฐ๋ฅ ํ๋๊ทธ์ ๋ง์คํฌ.SF_SYNTHETIC0xc0000000: ์์คํ ์ฝ๊ธฐ ์ ์ฉ ํฉ์ฑ ํ๋๊ทธ์ ๋ง์คํฌ.SF_ARCHIVED0x00010000: ํ์ผ์ด ์์นด์ด๋ธ๋จ.SF_IMMUTABLE0x00020000: ํ์ผ์ ๋ณ๊ฒฝํ ์ ์์.SF_APPEND0x00040000: ํ์ผ์ ๋ํ ์ฐ๊ธฐ๋ ์ค์ง ์ถ๊ฐ๋ง ๊ฐ๋ฅ.SF_RESTRICTED0x00080000: ์ฐ๊ธฐ์ ๋ํ ๊ถํ ํ์.SF_NOUNLINK0x00100000: ํญ๋ชฉ์ ์ ๊ฑฐ, ์ด๋ฆ ๋ณ๊ฒฝ ๋๋ ๋ง์ดํธํ ์ ์์.SF_FIRMLINK0x00800000: ํ์ผ์ด firmlink์.SF_DATALESS0x40000000: ํ์ผ์ด ๋ฐ์ดํฐ ์๋ ๊ฐ์ฒด์.
ํ์ผ ACLs
ํ์ผ ACLs๋ ACE (Access Control Entries)๋ฅผ ํฌํจํ์ฌ ์๋ก ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ ์ธ๋ถํ๋ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
๋๋ ํ ๋ฆฌ์ ๋ค์ ๊ถํ์ ๋ถ์ฌํ ์ ์์ต๋๋ค: list, search, add_file, add_subdirectory, delete_child, delete_child.
๊ทธ๋ฆฌ๊ณ ํ์ผ์ ๋ํด์๋: read, write, append, execute.
ํ์ผ์ ACL์ด ํฌํจ๋์ด ์์ผ๋ฉด ๊ถํ์ ๋์ดํ ๋ โ+โ๊ฐ ํ์๋ฉ๋๋ค:
ls -ld Movies
drwx------+ 7 username staff 224 15 Apr 19:42 Movies
ํ์ผ์ ACLs๋ฅผ ์ฝ์ผ๋ ค๋ฉด:
ls -lde Movies
drwx------+ 7 username staff 224 15 Apr 19:42 Movies
0: group:everyone deny delete
๋ชจ๋ ACL์ด ์๋ ํ์ผ์ ์ฐพ์ผ๋ ค๋ฉด (์ด๊ฒ์ ๋งค์ฐ ๋๋ฆฝ๋๋ค):
ls -RAle / 2>/dev/null | grep -E -B1 "\d: "
ํ์ฅ ์์ฑ
ํ์ฅ ์์ฑ์ ์ด๋ฆ๊ณผ ์ํ๋ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ls -@๋ฅผ ์ฌ์ฉํ์ฌ ๋ณผ ์ ์๊ณ xattr ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ์ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ํ์ฅ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
com.apple.resourceFork: ๋ฆฌ์์ค ํฌํฌ ํธํ์ฑ.filename/..namedfork/rsrc๋ก๋ ๋ณผ ์ ์์com.apple.quarantine: MacOS: Gatekeeper ๊ฒฉ๋ฆฌ ๋ฉ์ปค๋์ฆ (III/6)metadata:*: MacOS:_backup_excludeItem๋๋kMD*์ ๊ฐ์ ๋ค์ํ ๋ฉํ๋ฐ์ดํฐcom.apple.lastuseddate(#PS): ๋ง์ง๋ง ํ์ผ ์ฌ์ฉ ๋ ์งcom.apple.FinderInfo: MacOS: Finder ์ ๋ณด (์: ์์ ํ๊ทธ)com.apple.TextEncoding: ASCII ํ ์คํธ ํ์ผ์ ํ ์คํธ ์ธ์ฝ๋ฉ์ ์ง์ com.apple.logd.metadata:/var/db/diagnostics์ ํ์ผ์์ logd์ ์ํด ์ฌ์ฉ๋จcom.apple.genstore.*: ์ธ๋ ์ ์ฅ์ (/.DocumentRevisions-V100ํ์ผ ์์คํ ์ ๋ฃจํธ์ ์์น)com.apple.rootless: MacOS: ์์คํ ๋ฌด๊ฒฐ์ฑ ๋ณดํธ์ ์ํด ํ์ผ์ ๋ ์ด๋ธ์ ๋ถ์ด๋ ๋ฐ ์ฌ์ฉ๋จ (III/10)com.apple.uuidb.boot-uuid: ๊ณ ์ UUID๋ก ๋ถํ ์ํฌํฌ์ logd ๋งํนcom.apple.decmpfs: MacOS: ํฌ๋ช ํ์ผ ์์ถ (II/7)com.apple.cprotect: *OS: ํ์ผ๋ณ ์ํธํ ๋ฐ์ดํฐ (III/11)com.apple.installd.*: *OS: installd์ ์ํด ์ฌ์ฉ๋๋ ๋ฉํ๋ฐ์ดํฐ, ์:installType,uniqueInstallID
๋ฆฌ์์ค ํฌํฌ | macOS ADS
์ด๋ MacOS์์ ๋์ฒด ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์ป๋ ๋ฐฉ๋ฒ์ ๋๋ค. file/..namedfork/rsrc์ ์๋ ํ์ฅ ์์ฑ com.apple.ResourceFork ์์ ๋ด์ฉ์ ์ ์ฅํ ์ ์์ต๋๋ค.
echo "Hello" > a.txt
echo "Hello Mac ADS" > a.txt/..namedfork/rsrc
xattr -l a.txt #Read extended attributes
com.apple.ResourceFork: Hello Mac ADS
ls -l a.txt #The file length is still q
-rw-r--r--@ 1 username wheel 6 17 Jul 01:15 a.txt
๋ค์ ๋ช ๋ น์ด๋ก ์ด ํ์ฅ ์์ฑ์ ํฌํจํ๋ ๋ชจ๋ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค:
find / -type f -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; printf "\n"}' | xargs -I {} xattr -lv {} | grep "com.apple.ResourceFork"
decmpfs
ํ์ฅ ์์ฑ com.apple.decmpfs๋ ํ์ผ์ด ์ํธํ๋์ด ์ ์ฅ๋จ์ ๋ํ๋ด๋ฉฐ, ls -l์ ํฌ๊ธฐ๊ฐ 0์ผ๋ก ๋ณด๊ณ ํ๊ณ ์์ถ๋ ๋ฐ์ดํฐ๋ ์ด ์์ฑ ์์ ์์ต๋๋ค. ํ์ผ์ ์ ๊ทผํ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ์์ ๋ณตํธํ๋ฉ๋๋ค.
์ด ์์ฑ์ ls -lO๋ก ํ์ธํ ์ ์์ผ๋ฉฐ, ์์ถ๋ ํ์ผ์ UF_COMPRESSED ํ๋๊ทธ๋ก ํ๊ทธ๊ฐ ๋ถ์ด ์์ถ๋ ๊ฒ์ผ๋ก ํ์๋ฉ๋๋ค. ์์ถ๋ ํ์ผ์ด chflags nocompressed </path/to/file>๋ก ์ ๊ฑฐ๋๋ฉด, ์์คํ
์ ํด๋น ํ์ผ์ด ์์ถ๋์๋ค๋ ๊ฒ์ ์์ง ๋ชปํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๊ณ ์ ๊ทผํ ์ ์์ต๋๋ค(์ค์ ๋ก ๋น์ด ์๋ค๊ณ ์๊ฐํ ๊ฒ์
๋๋ค).
๋๊ตฌ afscexpand๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ์ ๊ฐ์ ๋ก ์์ถ ํด์ ํ ์ ์์ต๋๋ค.
Universal binaries & Mach-o Format
Mac OS ๋ฐ์ด๋๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๋๋ฒ์ค ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผ๋ฉ๋๋ค. ์ ๋๋ฒ์ค ๋ฐ์ด๋๋ฆฌ๋ ๊ฐ์ ํ์ผ์์ ์ฌ๋ฌ ์ํคํ ์ฒ๋ฅผ ์ง์ํ ์ ์์ต๋๋ค.
macOS Universal binaries & Mach-O Format
macOS Process Memory
macOS memory dumping
Risk Category Files Mac OS
๋๋ ํ ๋ฆฌ /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/System๋ ๋ค์ํ ํ์ผ ํ์ฅ์์ ๊ด๋ จ๋ ์ํ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ๊ณณ์
๋๋ค. ์ด ๋๋ ํ ๋ฆฌ๋ ํ์ผ์ ๋ค์ํ ์ํ ์์ค์ผ๋ก ๋ถ๋ฅํ์ฌ Safari๊ฐ ๋ค์ด๋ก๋ ์ ์ด๋ฌํ ํ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์นดํ
๊ณ ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- LSRiskCategorySafe: ์ด ์นดํ ๊ณ ๋ฆฌ์ ํ์ผ์ ์์ ํ ์์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. Safari๋ ๋ค์ด๋ก๋ ํ ์๋์ผ๋ก ์ด๋ฌํ ํ์ผ์ ์ฝ๋๋ค.
- LSRiskCategoryNeutral: ์ด ํ์ผ์ ๊ฒฝ๊ณ ์์ด ์ ๊ณต๋๋ฉฐ Safari์ ์ํด ์๋์ผ๋ก ์ด๋ฆฌ์ง ์์ต๋๋ค.
- LSRiskCategoryUnsafeExecutable: ์ด ์นดํ ๊ณ ๋ฆฌ์ ํ์ผ์ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํต๋๋ค. ์ด๋ ํ์ผ์ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ํ๋ด๋ฉฐ, ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ํ๋ ๋ณด์ ์กฐ์น์ ๋๋ค.
- LSRiskCategoryMayContainUnsafeExecutable: ์ด ์นดํ ๊ณ ๋ฆฌ๋ ์คํ ํ์ผ์ ํฌํจํ ์ ์๋ ์์นด์ด๋ธ์ ๊ฐ์ ํ์ผ์ ์ํ ๊ฒ์ ๋๋ค. Safari๋ ๋ชจ๋ ๋ด์ฉ์ด ์์ ํ๊ฑฐ๋ ์ค๋ฆฝ์ ์์ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํต๋๋ค.
Log files
$HOME/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2: ๋ค์ด๋ก๋๋ ํ์ผ์ ๋ํ ์ ๋ณด, ์๋ฅผ ๋ค์ด ๋ค์ด๋ก๋๋ URL์ ํฌํจํฉ๋๋ค./var/log/system.log: OSX ์์คํ ์ ์ฃผ์ ๋ก๊ทธ์ ๋๋ค. com.apple.syslogd.plist๋ syslogging์ ์คํ์ ๋ด๋นํฉ๋๋ค(๋นํ์ฑํ๋ ๊ฒฝ์ฐlaunchctl list์์ โcom.apple.syslogdโ๋ฅผ ์ฐพ์ ํ์ธํ ์ ์์ต๋๋ค)./private/var/log/asl/*.asl: ํฅ๋ฏธ๋ก์ด ์ ๋ณด๋ฅผ ํฌํจํ ์ ์๋ Apple ์์คํ ๋ก๊ทธ์ ๋๋ค.$HOME/Library/Preferences/com.apple.recentitems.plist: โFinderโ๋ฅผ ํตํด ์ต๊ทผ์ ์ ๊ทผํ ํ์ผ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ฅํฉ๋๋ค.$HOME/Library/Preferences/com.apple.loginitems.plsit: ์์คํ ์์ ์ ์คํํ ํญ๋ชฉ์ ์ ์ฅํฉ๋๋ค.$HOME/Library/Logs/DiskUtility.log: DiskUtility ์ฑ์ ๋ก๊ทธ ํ์ผ(๋๋ผ์ด๋ธ์ ๋ํ ์ ๋ณด, USB ํฌํจ)./Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist: ๋ฌด์ ์ก์ธ์ค ํฌ์ธํธ์ ๋ํ ๋ฐ์ดํฐ์ ๋๋ค./private/var/db/launchd.db/com.apple.launchd/overrides.plist: ๋นํ์ฑํ๋ ๋ฐ๋ชฌ ๋ชฉ๋ก์ ๋๋ค.
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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


