macOS Installers Abuse
Taarifa Msingi za Pkg
Kifurushi cha wasakinishaji wa macOS (pia inajulikana kama faili ya .pkg
) ni muundo wa faili unaotumiwa na macOS kusambaza programu. Faili hizi ni kama sanduku linaloleta kila kitu ambacho programu inahitaji kusakinisha na kukimbia kwa usahihi.
Faili ya kifurushi yenyewe ni nyaraka inayoshikilia hiraki ya faili na saraka ambazo zitasakinishwa kwenye kompyuta ya lengo. Inaweza pia kujumuisha maandishi kutekeleza kazi kabla na baada ya usakinishaji, kama vile kuweka faili za usanidi au kusafisha toleo za zamani za programu.
Hiraki
Usambazaji (xml): Kubinafsisha (jina, maandishi ya kukaribisha...) na maandishi/vipimo vya usakinishaji
PackageInfo (xml): Taarifa, mahitaji ya usakinishaji, mahali pa usakinishaji, njia za maandishi za kukimbia
Bili ya vifaa (bom): Orodha ya faili za kusakinisha, kuboresha au kuondoa na ruhusa za faili
Mzigo (CPIO archive gzip compresses): Faili za kusakinisha kwenye
mahali-pa-usakinishaji
kutoka PackageInfoMaandishi (CPIO archive gzip compressed): Maandishi kabla na baada ya usakinishaji na rasilimali zaidi zilizochimbuliwa kwenye saraka ya muda kwa utekelezaji.
Kuchambua
Ili kuona maudhui ya installer bila kudecompress manually unaweza kutumia zana ya bure Suspicious Package.
Taarifa Msingi za DMG
Faili za DMG, au Picha za Apple Disk, ni muundo wa faili unaotumiwa na macOS ya Apple kwa picha za diski. Faili ya DMG ni picha ya diski inayoweza kufungwa (ina filesystem yake) ambayo ina data ya block ya ghafi mara nyingi imepakwa na wakati mwingine imefichwa. Unapofungua faili ya DMG, macOS inaifunga kama vile ingekuwa diski halisi, kuruhusu kupata maudhui yake.
Tambua kwamba wasakinishaji wa .dmg
hushikilia muundo mwingi sana ambao hapo awali baadhi yao wakiwa na mapungufu walitumika kupata utekelezaji wa nambari ya msingi.
Mfumo wa Hierarchy
Mfumo wa faili ya DMG unaweza kutofautiana kulingana na maudhui. Hata hivyo, kwa DMGs za programu, kawaida inafuata muundo huu:
Kiwango cha Juu: Hii ni mzizi wa picha ya diski. Mara nyingi ina programu na labda kiungo kwa folda ya Maombi.
Programu (.app): Hii ni programu halisi. Katika macOS, programu ni kawaida pakiti inayojumuisha faili na folda nyingi binafsi zinazounda programu.
Kiungo cha Maombi: Hii ni mkato kwenda kwa folda ya Maombi katika macOS. Lengo la hili ni kufanya iwe rahisi kwako kusakinisha programu. Unaweza kuburuta faili ya .app kwenye mkato huu kusakinisha programu.
Privesc kupitia unyanyasaji wa pkg
Utekelezaji kutoka kwenye folda za umma
Ikiwa script ya usakinishaji kabla au baada ya kusakinisha inatekelezwa kwa mfano kutoka /var/tmp/Installerutil
, na mshambuliaji anaweza kudhibiti script hiyo ili apande vyeo wakati wowote inapotekelezwa. Au mfano mwingine sawa:
AuthorizationExecuteWithPrivileges
Hii ni kazi ya umma ambayo wasakinishaji na wakusasisha kadhaa watatumia kutekeleza kitu kama mzizi. Kazi hii inakubali njia ya faili ya kutekeleza kama parameter, hata hivyo, ikiwa mshambuliaji anaweza kurekebisha faili hii, ataweza kunyanyasa utekelezaji wake na mzizi ili apande vyeo.
Utekelezaji kwa kufunga
Ikiwa mtunzaji anaandika kwa /tmp/fixedname/bla/bla
, inawezekana kuunda mlima juu ya /tmp/fixedname
bila wamiliki ili uweze kurekebisha faili yoyote wakati wa usakinishaji kwa kudhuru mchakato wa usakinishaji.
Mfano wa hii ni CVE-2021-26089 ambayo ilifanikiwa kubadilisha skripti ya kipindi ili kupata utekelezaji kama mzizi. Kwa maelezo zaidi angalia mazungumzo: OBTS v4.0: "Mlima wa Mende" - Csaba Fitzl
pkg kama zisizo
Mzigo wa Kufuta
Inawezekana tu kuzalisha faili ya .pkg
na skripti za kabla na baada ya usakinishaji bila mzigo wowote.
JS katika usambazaji wa xml
Inawezekana kuongeza vitambulisho vya <script>
katika faili ya usambazaji xml ya pakiti na hiyo nambari itatekelezwa na inaweza kutekeleza amri kutumia system.run
:
Marejeo
Last updated