hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-installers-abuse.md
2024-02-10 13:11:20 +00:00

7.5 KiB

Zloupotreba macOS instalera

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

Drugi načini podrške HackTricks-u:

Osnovne informacije o Pkg-u

macOS instalacioni paket (poznat i kao .pkg fajl) je format fajla koji se koristi na macOS-u za distribuciju softvera. Ovi fajlovi su poput kutije koja sadrži sve što je potrebno da se softver instalira i pokrene ispravno.

Sam paket fajl je arhiva koja sadrži hijerarhiju fajlova i direktorijuma koji će biti instalirani na ciljnom računaru. Takođe može uključivati skripte koje obavljaju zadatke pre i posle instalacije, poput podešavanja konfiguracionih fajlova ili čišćenja starih verzija softvera.

Hijerarhija

https://www.youtube.com/watch?v=iASSG0_zobQ
  • Distribution (xml): Prilagođavanja (naslov, tekst dobrodošlice...) i skripte/provere instalacije
  • PackageInfo (xml): Informacije, zahtevi za instalaciju, lokacija instalacije, putanje do skripti koje se izvršavaju
  • Bill of materials (bom): Lista fajlova za instalaciju, ažuriranje ili uklanjanje sa dozvolama za fajlove
  • Payload (CPIO arhiva gzip kompresovana): Fajlovi za instalaciju na install-location iz PackageInfo
  • Skripte (CPIO arhiva gzip kompresovana): Pre i post instalacione skripte i dodatni resursi izdvojeni u privremeni direktorijum za izvršavanje.

Dekompresija

# Tool to directly get the files inside a package
pkgutil —expand "/path/to/package.pkg" "/path/to/out/dir"

# Get the files ina. more manual way
mkdir -p "/path/to/out/dir"
cd "/path/to/out/dir"
xar -xf "/path/to/package.pkg"

# Decompress also the CPIO gzip compressed ones
cat Scripts | gzip -dc | cpio -i
cpio -i < Scripts

Osnovne informacije o DMG-u

DMG datoteke, ili Apple Disk Images, su format datoteka koji se koristi u Apple-ovom macOS-u za disk slike. DMG datoteka je suštinski montabilna disk slika (sadrži sopstveni fajl sistem) koja sadrži sirove blok podatke obično komprimirane i ponekad šifrovane. Kada otvorite DMG datoteku, macOS je montira kao da je fizički disk, omogućavajući vam pristup njenom sadržaju.

Hijerarhija

Hijerarhija DMG datoteke može biti različita u zavisnosti od sadržaja. Međutim, za DMG datoteke aplikacija, obično prati ovu strukturu:

  • Gornji nivo: Ovo je koren disk slike. Često sadrži aplikaciju i eventualno link ka folderu Aplikacije.
  • Aplikacija (.app): Ovo je stvarna aplikacija. U macOS-u, aplikacija je obično paket koji sadrži mnogo pojedinačnih fajlova i foldera koji čine aplikaciju.
  • Link ka Aplikacijama: Ovo je prečica ka folderu Aplikacije u macOS-u. Svrha ovoga je da olakša instalaciju aplikacije. Možete prevući .app fajl na ovu prečicu da biste instalirali aplikaciju.

Eskalacija privilegija putem zloupotrebe pkg-a

Izvršavanje iz javnih direktorijuma

Ako se skripta za pre ili post instalaciju na primer izvršava iz /var/tmp/Installerutil, napadač može kontrolisati tu skriptu kako bi eskalirao privilegije kada god se izvrši. Ili drugi sličan primer:

https://www.youtube.com/watch?v=iASSG0_zobQ

AuthorizationExecuteWithPrivileges

Ovo je javna funkcija koju nekoliko instalera i ažuriranja poziva da izvrši nešto kao root. Ova funkcija prihvata putanju fajla koji treba izvršiti kao parametar, međutim, ako napadač može izmeniti ovaj fajl, moći će zloupotrebiti njegovo izvršavanje sa privilegijama root-a kako bi eskalirao privilegije.

# Breakpoint in the function to check wich file is loaded
(lldb) b AuthorizationExecuteWithPrivileges
# You could also check FS events to find this missconfig

Za više informacija pogledajte ovaj video: https://www.youtube.com/watch?v=lTOItyjTTkw

Izvršavanje putem montiranja

Ako instalater piše u /tmp/fixedname/bla/bla, moguće je kreirati montiranje preko /tmp/fixedname bez vlasnika, tako da možete izmeniti bilo koji fajl tokom instalacije kako biste zloupotrebili proces instalacije.

Primer za ovo je CVE-2021-26089 koji je uspeo da prepiše periodični skript kako bi se izvršio kao root. Za više informacija pogledajte video: OBTS v4.0: "Mount(ain) of Bugs" - Csaba Fitzl

pkg kao malver

Prazan Payload

Moguće je samo generisati .pkg fajl sa pre i post-install skriptama bez ikakvog payloada.

JS u Distribution xml

Moguće je dodati <script> tagove u distribution xml fajl paketa i taj kod će biti izvršen i može izvršavati komande koristeći system.run:

Reference

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

Drugi načini da podržite HackTricks: