macOS Installers Abuse
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
macOS instalacioni paket (poznat i kao .pkg
datoteka) je format datoteke koji koristi macOS za distribuciju softvera. Ove datoteke su poput kutije koja sadrži sve što je komadu softvera potrebno da se ispravno instalira i pokrene.
Datoteka paketa je arhiva koja sadrži hijerarhiju datoteka i direktorijuma koji će biti instalirani na ciljni računar. Takođe može uključivati skripte za obavljanje zadataka pre i posle instalacije, kao što su postavljanje konfiguracionih datoteka ili čišćenje starih verzija softvera.
Distribucija (xml): Prilagođavanja (naslov, tekst dobrodošlice…) i provere skripti/instalacije
PackageInfo (xml): Informacije, zahtevi za instalaciju, lokacija instalacije, putevi do skripti koje treba pokrenuti
Bill of materials (bom): Lista datoteka za instalaciju, ažuriranje ili uklanjanje sa dozvolama datoteka
Payload (CPIO arhiva gzip kompresovana): Datoteke za instalaciju u install-location
iz PackageInfo
Skripte (CPIO arhiva gzip kompresovana): Pre i post instalacione skripte i drugi resursi ekstraktovani u privremeni direktorijum za izvršavanje.
Da biste vizualizovali sadržaj instalatera bez ručnog dekompresovanja, možete koristiti besplatan alat Suspicious Package.
DMG datoteke, ili Apple Disk Images, su format datoteka koji koristi Apple-ov macOS za disk slike. DMG datoteka je u suštini montabilna disk slika (sadrži sopstveni fajl sistem) koja sadrži sirove blok podatke obično kompresovane i ponekad enkriptovane. Kada otvorite DMG datoteku, macOS montira je kao da je fizički disk, omogućavajući vam pristup njenom sadržaju.
Napomena da .dmg
instalateri podržavaju toliko formata da su u prošlosti neki od njih koji su sadržavali ranjivosti zloupotrebljavani za dobijanje izvršavanja kernel koda.
Hijerarhija DMG datoteke može biti različita u zavisnosti od sadržaja. Međutim, za aplikacione DMG-ove, obično prati ovu strukturu:
Gornji nivo: Ovo je koren disk slike. Često sadrži aplikaciju i moguće link ka folderu Aplikacije.
Aplikacija (.app): Ovo je stvarna aplikacija. U macOS-u, aplikacija je obično paket koji sadrži mnoge pojedinačne datoteke i foldere koji čine aplikaciju.
Link do Aplikacija: Ovo je prečica do foldera Aplikacije u macOS-u. Svrha ovoga je da vam olakša instalaciju aplikacije. Možete prevući .app datoteku na ovu prečicu da instalirate aplikaciju.
Ako pre ili post instalacioni skript, na primer, izvršava iz /var/tmp/Installerutil
, napadač može kontrolisati taj skript kako bi eskalirao privilegije svaki put kada se izvrši. Ili drugi sličan primer:
Ovo je javna funkcija koju će nekoliko instalatera i ažuriranja pozvati da izvrši nešto kao root. Ova funkcija prihvata putanju do datoteke koju treba izvršiti kao parametar, međutim, ako napadač može modifikovati ovu datoteku, biće u mogućnosti da zloupotrebi njeno izvršavanje sa root-om da eskalira privilegije.
Za više informacija pogledajte ovaj govor: https://www.youtube.com/watch?v=lTOItyjTTkw
Ako instalater piše u /tmp/fixedname/bla/bla
, moguće je napraviti montiranje preko /tmp/fixedname
bez vlasnika, tako da možete modifikovati bilo koju datoteku tokom instalacije da biste zloupotrebili proces instalacije.
Primer za to je CVE-2021-26089 koji je uspeo da prepiše periodični skript kako bi dobio izvršenje kao root. Za više informacija pogledajte govor: OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl
Moguće je samo generisati .pkg
datoteku sa pre i post-instalacionim skriptama bez bilo kakvog pravog payload-a osim malware-a unutar skripti.
Moguće je dodati <script>
tagove u distribution xml datoteku paketa i taj kod će se izvršiti i može izvršiti komande koristeći system.run
:
Zlonameran instalater koristi skriptu i JS kod unutar dist.xml
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)