macOS Office Sandbox Bypasses

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Bypass Sandbox-a u Word-u putem Launch Agents

Aplikacija koristi prilagođeni Sandbox koristeći privilegiju com.apple.security.temporary-exception.sbpl i ovaj prilagođeni sandbox omogućava pisanje fajlova bilo gde, sve dok ime fajla počinje sa ~$: (require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))

Stoga, izbegavanje je bilo jednostavno kao pisanje plist LaunchAgent-a u ~/Library/LaunchAgents/~$escape.plist.

Pogledajte originalni izveštaj ovde.

Bypass Sandbox-a u Word-u putem Login stavki i zip-a

Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa ~$, iako nakon zakrpe prethodne ranjivosti nije bilo moguće pisati u /Library/Application Scripts ili u /Library/LaunchAgents.

Otkriveno je da je iz sandbox-a moguće kreirati Login stavku (aplikacije koje će se izvršiti kada se korisnik prijavi). Međutim, ove aplikacije neće se izvršiti osim ako nisu notarizovane i nije moguće dodati argumente (tako da ne možete pokrenuti reverznu ljusku koristeći bash).

Od prethodnog bypass-a Sandbox-a, Microsoft je onemogućio opciju pisanja fajlova u ~/Library/LaunchAgents. Međutim, otkriveno je da ako stavite zip fajl kao Login stavku, Archive Utility će ga samo otpakovati na trenutnoj lokaciji. Dakle, pošto podrazumevano folder LaunchAgents iz ~/Library nije kreiran, bilo je moguće zapakovati plist u LaunchAgents/~$escape.plist i postaviti zip fajl u ~/Library tako da će prilikom dekompresije stići do odredišta trajnosti.

Pogledajte originalni izveštaj ovde.

Bypass Sandbox-a u Word-u putem Login stavki i .zshenv

(Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa ~$).

Međutim, prethodna tehnika je imala ograničenje, ako folder ~/Library/LaunchAgents postoji jer ga je neki drugi softver kreirao, ona bi propala. Zato je otkrivena druga Login stavka za ovo.

Napadač bi mogao kreirati fajlove .bash_profile i .zshenv sa payload-om za izvršavanje, a zatim ih zapakovati i zapisati zip u korisnički folder žrtve: ~/~$escape.zip.

Zatim, dodajte zip fajl u Login stavke, a zatim i aplikaciju Terminal. Kada se korisnik ponovo prijavi, zip fajl će biti dekompresovan u korisnički fajl, prebrisavajući .bash_profile i .zshenv i stoga će terminal izvršiti jedan od ovih fajlova (zavisno od toga da li se koristi bash ili zsh).

Pogledajte originalni izveštaj ovde.

Bypass Sandbox-a u Word-u sa Open i env promenljivama

Iz sandbox procesa i dalje je moguće pozvati druge procese koristeći alatku open. Osim toga, ovi procesi će se izvršavati unutar svog sopstvenog sandbox-a.

Otkriveno je da open alatka ima opciju --env za pokretanje aplikacije sa specifičnim env promenljivama. Stoga je bilo moguće kreirati .zshenv fajl unutar foldera unutar sandbox-a i koristiti open sa --env postavljajući HOME promenljivu na taj folder otvarajući tu Terminal aplikaciju, koja će izvršiti .zshenv fajl (iz nekog razloga bilo je potrebno i postaviti promenljivu __OSINSTALL_ENVIROMENT).

Pogledajte originalni izveštaj ovde.

Bypass Sandbox-a u Word-u sa Open i stdin

Alatka open takođe podržava parametar --stdin (a nakon prethodnog bypass-a više nije bilo moguće koristiti --env).

Stvar je u tome da čak i ako je python potpisan od strane Apple-a, neće izvršiti skriptu sa quarantine atributom. Međutim, bilo je moguće proslediti mu skriptu putem stdin-a tako da neće proveravati da li je karantinirana ili ne:

  1. Ubacite fajl ~$exploit.py sa proizvoljnim Python komandama.

  2. Pokrenite open –stdin='~$exploit.py' -a Python, što pokreće Python aplikaciju sa našim ubačenim fajlom kao standardni ulaz. Python srećno izvršava naš kod i pošto je to podproces launchd-a, nije vezan za Word-ova pravila sandbox-a.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated