macOS Office Sandbox Bypasses

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 ์ง€์›ํ•˜๊ธฐ

Word Sandbox bypass via Launch Agents

์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ com.apple.security.temporary-exception.sbpl ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜๋Š” ์ปค์Šคํ…€ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด ์ปค์Šคํ…€ ์ƒŒ๋“œ๋ฐ•์Šค๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด ~$๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ•œ ์–ด๋””์—๋‚˜ ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค: (require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))

๋”ฐ๋ผ์„œ ํƒˆ์ถœ์€ **~/Library/LaunchAgents/~$escape.plist**์— plist LaunchAgent๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ๋ณด๊ณ ์„œ ํ™•์ธํ•˜๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Word Sandbox bypass via Login Items and zip

์ฒซ ๋ฒˆ์งธ ํƒˆ์ถœ์—์„œ Word๋Š” ์ด๋ฆ„์ด ~$๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž„์˜์˜ ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด์ „ ์ทจ์•ฝ์ ์˜ ํŒจ์น˜ ์ดํ›„ /Library/Application Scripts ๋˜๋Š” /Library/LaunchAgents์— ์“ธ ์ˆ˜๋Š” ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ๋กœ๊ทธ์ธ ํ•ญ๋ชฉ(์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•  ๋•Œ ์‹คํ–‰๋˜๋Š” ์•ฑ)์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์•ฑ์€ notarized๋˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ, args๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ **bash**๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ๋ฒ„์Šค ์…ธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค).

์ด์ „ ์ƒŒ๋“œ๋ฐ•์Šค ์šฐํšŒ๋กœ ์ธํ•ด Microsoft๋Š” ~/Library/LaunchAgents์— ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋กœ๊ทธ์ธ ํ•ญ๋ชฉ์œผ๋กœ zip ํŒŒ์ผ์„ ๋„ฃ์œผ๋ฉด Archive Utility๊ฐ€ ํ˜„์žฌ ์œ„์น˜์—์„œ ์••์ถ•์„ ํ’€๊ธฐ๋งŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ~/Library์˜ LaunchAgents ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— **LaunchAgents/~$escape.plist**์— plist๋ฅผ ์••์ถ•ํ•˜๊ณ  **~/Library**์— zip ํŒŒ์ผ์„ ๋ฐฐ์น˜ํ•˜๋ฉด ์••์ถ• ํ•ด์ œ ์‹œ ์ง€์†์„ฑ ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ๋ณด๊ณ ์„œ ํ™•์ธํ•˜๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Word Sandbox bypass via Login Items and .zshenv

(์ฒซ ๋ฒˆ์งธ ํƒˆ์ถœ์—์„œ Word๋Š” ์ด๋ฆ„์ด ~$๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž„์˜์˜ ํŒŒ์ผ์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์„ธ์š”).

๊ทธ๋Ÿฌ๋‚˜ ์ด์ „ ๊ธฐ์ˆ ์—๋Š” ์ œํ•œ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ~/Library/LaunchAgents ํด๋”๊ฐ€ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด์— ์˜ํ•ด ์ƒ์„ฑ๋œ ๊ฒฝ์šฐ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฅผ ์œ„ํ•œ ๋‹ค๋ฅธ ๋กœ๊ทธ์ธ ํ•ญ๋ชฉ ์ฒด์ธ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž๋Š” .bash_profile ๋ฐ .zshenv ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ์ด๋ฅผ ์••์ถ•ํ•˜๊ณ  ํฌ์ƒ์ž์˜ ์‚ฌ์šฉ์ž ํด๋”์— **~/~$escape.zip**๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ zip ํŒŒ์ผ์„ ๋กœ๊ทธ์ธ ํ•ญ๋ชฉ์— ์ถ”๊ฐ€ํ•˜๊ณ  Terminal ์•ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜๋ฉด zip ํŒŒ์ผ์ด ์‚ฌ์šฉ์ž ํŒŒ์ผ์— ์••์ถ• ํ•ด์ œ๋˜์–ด .bash_profile ๋ฐ **.zshenv**๋ฅผ ๋ฎ์–ด์“ฐ๊ฒŒ ๋˜๊ณ , ๋”ฐ๋ผ์„œ ํ„ฐ๋ฏธ๋„์€ ์ด ํŒŒ์ผ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค(์‚ฌ์šฉ๋˜๋Š” ์…ธ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„).

์›๋ณธ ๋ณด๊ณ ์„œ ํ™•์ธํ•˜๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Word Sandbox Bypass with Open and env variables

์ƒŒ๋“œ๋ฐ•์Šค๋œ ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ์ „ํžˆ open ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์˜ ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

open ์œ ํ‹ธ๋ฆฌํ‹ฐ์—๋Š” ํŠน์ • env ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ์‹คํ–‰ํ•˜๋Š” --env ์˜ต์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์˜ ํด๋”์— .zshenv ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  --env๋กœ HOME ๋ณ€์ˆ˜๋ฅผ ํ•ด๋‹น ํด๋”๋กœ ์„ค์ •ํ•˜์—ฌ Terminal ์•ฑ์„ ์—ด๋ฉด .zshenv ํŒŒ์ผ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค(์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด __OSINSTALL_ENVIROMENT ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค).

์›๋ณธ ๋ณด๊ณ ์„œ ํ™•์ธํ•˜๊ธฐ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

Word Sandbox Bypass with Open and stdin

open ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” --stdin ๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค(์ด์ „ ์šฐํšŒ ์ดํ›„ --env๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

๋ฌธ์ œ๋Š” **python**์ด Apple์— ์˜ํ•ด ์„œ๋ช…๋˜์—ˆ๋”๋ผ๋„ quarantine ์†์„ฑ์ด ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ stdin์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ๊ฒฉ๋ฆฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค:

  1. ์ž„์˜์˜ Python ๋ช…๋ น์ด ํฌํ•จ๋œ ~$exploit.py ํŒŒ์ผ์„ ๋“œ๋กญํ•ฉ๋‹ˆ๋‹ค.
  2. open **โ€“stdin='~$exploit.py' -a Python**์„ ์‹คํ–‰ํ•˜์—ฌ Python ์•ฑ์„ ์‹คํ–‰ํ•˜๊ณ , ๋“œ๋กญํ•œ ํŒŒ์ผ์„ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Python์€ ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ๊ธฐ๊บผ์ด ์‹คํ–‰ํ•˜๋ฉฐ, ์ด๋Š” _launchd_์˜ ์ž์‹ ํ”„๋กœ์„ธ์Šค์ด๋ฏ€๋กœ Word์˜ ์ƒŒ๋“œ๋ฐ•์Šค ๊ทœ์น™์— ๊ตฌ์†๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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 ์ง€์›ํ•˜๊ธฐ