macOS Office Sandbox Bypasses
Kuepuka Sanduku kwa Neno kwa Kutumia Mawakala wa Kuanzisha
Programu hutumia Sanduku la Mchanga la desturi kwa kutumia ruhusu com.apple.security.temporary-exception.sbpl
na sanduku hili la desturi linaruhusu kuandika faili popote ikiwa jina la faili linaanza na ~$
: (hitaji-moja-kwa-moja (hitaji-yote (aina-ya-vnode REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))
Kwa hivyo, kuepuka kulikuwa rahisi kama kuandika plist
ya LaunchAgent katika ~/Library/LaunchAgents/~$escape.plist
.
Angalia ripoti ya asili hapa.
Kuepuka Sanduku kwa Neno kwa Kutumia Vitu vya Kuingia na zip
Kumbuka kwamba kutoka kwa kuepuka kwanza, Neno linaweza kuandika faili za aina yoyote ambazo jina lake linaanza na ~$
ingawa baada ya kurekebisha kasoro ya awali haikuwezekana kuandika katika /Library/Application Scripts
au katika /Library/LaunchAgents
.
Iligunduliwa kwamba kutoka ndani ya sanduku la mchanga ni inawezekana kuunda Kipengele cha Kuingia (programu ambazo zitatekelezwa wakati mtumiaji anajiingia). Walakini, programu hizi hazitafanya kazi isipokuwa zime sainiwa na haiwezekani kuongeza args (kwa hivyo huwezi tu kukimbia kitanzi cha nyuma kwa kutumia bash
).
Kutoka kwa kuepuka kwa sanduku la mchanga hapo awali, Microsoft ilizima chaguo la kuandika faili katika ~/Library/LaunchAgents
. Walakini, iligunduliwa kwamba ikiweka faili ya zip kama Kipengele cha Kuingia Archive Utility
itaifungua tu katika eneo lake la sasa. Kwa hivyo, kwa sababu kwa chaguo-msingi saraka ya LaunchAgents
kutoka ~/Library
haijaundwa, ilikuwa inawezekana kuzipisha plist katika LaunchAgents/~$escape.plist
na kuweka faili ya zip katika ~/Library
ili wakati wa kuzipua itafikia marudio ya uthabiti.
Angalia ripoti ya asili hapa.
Kuepuka Sanduku kwa Neno kwa Kutumia Vitu vya Kuingia na .zshenv
(Kumbuka kwamba kutoka kwa kuepuka kwanza, Neno linaweza kuandika faili za aina yoyote ambazo jina lake linaanza na ~$
).
Walakini, mbinu ya awali ilikuwa na kizuizi, ikiwa saraka ya ~/Library/LaunchAgents
ipo kwa sababu programu nyingine iliiunda, itashindwa. Kwa hivyo, mlolongo tofauti wa Vitu vya Kuingia uligunduliwa kwa hii.
Mshambuliaji angeweza kuunda faili za .bash_profile
na .zshenv
na mzigo wa kutekeleza kisha kuzipisha na kuandika zip katika saraka ya mtumiaji wa waathirika: ~/~$escape.zip
.
Kisha, ongeza faili ya zip kwa Vitu vya Kuingia na kisha programu ya Terminal
. Wakati mtumiaji anapoingia tena, faili ya zip itafunguliwa katika faili za mtumiaji, ikibadilisha .bash_profile
na .zshenv
na kwa hivyo, terminal itatekeleza moja ya faili hizi (kulingana na ikiwa bash au zsh inatumika).
Angalia ripoti ya asili hapa.
Kuepuka Sanduku la Mchanga kwa Neno kwa Kutumia Open na mazingira ya env
Kutoka kwa michakato iliyowekwa sandukuni, bado inawezekana kuamsha michakato mingine kwa kutumia zana ya open
. Zaidi ya hayo, michakato hii itaendeshwa ndani ya sanduku yao wenyewe la mchanga.
Iligunduliwa kwamba zana ya open ina chaguo la --env
kuendesha programu na mazingira maalum ya env. Kwa hivyo, ilikuwa inawezekana kuunda faili ya .zshenv
ndani ya saraka ndani ya sanduku la mchanga na kutumia open
na --env
kuweka mazingira ya HOME
kwa saraka hiyo ikifungua programu ya Terminal
, ambayo itatekeleza faili ya .zshenv
(kwa sababu fulani pia ilikuwa ni lazima kuweka variable __OSINSTALL_ENVIROMENT
).
Angalia ripoti ya asili hapa.
Kuepuka Sanduku la Mchanga kwa Neno kwa Kutumia Open na stdin
Zana ya open
pia ilisaidia paramu ya --stdin
(na baada ya kuepuka hapo awali haikuwezekana tena kutumia --env
).
Jambo ni kwamba hata ikiwa python
ilisainiwa na Apple, haitatekeleza skripti na sifa ya karantini
. Walakini, ilikuwa inawezekana kuipitisha skripti kutoka kwa stdin ili isichunguze ikiwa ilikuwa imekarantiniwa au la:
Weka faili ya
~$exploit.py
na amri za Python za hiari.Chalua open
–stdin='~$exploit.py' -a Python
, ambayo inatekeleza programu ya Python na faili yetu iliyowekwa kama kuingia kawaida. Python inatekeleza kwa furaha nambari yetu, na kwa kuwa ni mchakato wa mtoto wa launchd, haifungwi na sheria za sanduku la mchanga la Neno.
Last updated