hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md
2024-02-10 13:11:20 +00:00

5.6 KiB

macOS Prljavi NIB

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

Drugi načini podrške HackTricks-u:

Za dalje detalje o tehnici pogledajte originalni post na: https://blog.xpnsec.com/dirtynib/**. Evo sažetka:

NIB fajlovi, deo Apple-ovog razvojnog ekosistema, služe za definisanje UI elemenata i njihovih interakcija u aplikacijama. Obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se pri izvršavanju. Uprkos njihovoj trenutnoj upotrebi, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka.

Bezbednosne brige sa NIB fajlovima

Važno je napomenuti da NIB fajlovi mogu predstavljati bezbednosni rizik. Imaju potencijal da izvršavaju proizvoljne komande, a izmene NIB fajlova unutar aplikacije ne sprečavaju Gatekeeper da izvrši aplikaciju, što predstavlja značajnu pretnju.

Proces zloupotrebe prljavog NIB-a

Kreiranje i podešavanje NIB fajla

  1. Početno podešavanje:
  • Kreirajte novi NIB fajl koristeći XCode.
  • Dodajte objekat na interfejs, postavljajući mu klasu na NSAppleScript.
  • Podesite početno svojstvo source putem User Defined Runtime Attributes.
  1. Kod za izvršavanje:
  • Podešavanje omogućava pokretanje AppleScript-a po potrebi.
  • Integrišite dugme za aktiviranje objekta Apple Script, posebno pokretanje selektora executeAndReturnError:.
  1. Testiranje:
  • Jednostavan AppleScript za testiranje:
set theDialogText to "PWND"
display dialog theDialogText
  • Testirajte pokretanjem u XCode debuggeru i klikom na dugme.

Ciljanje aplikacije (Primer: Pages)

  1. Priprema:
  • Kopirajte ciljanu aplikaciju (npr. Pages) u poseban direktorijum (npr. /tmp/).
  • Pokrenite aplikaciju da zaobiđete probleme sa Gatekeeper-om i keširajte je.
  1. Pisanje preko NIB fajla:
  • Zamenite postojeći NIB fajl (npr. About Panel NIB) sa izrađenim DirtyNIB fajlom.
  1. Izvršavanje:
  • Pokrenite izvršavanje interakcijom sa aplikacijom (npr. izborom stavke menija About).

Dokaz o konceptu: Pristupanje korisničkim podacima

  • Izmenite AppleScript da pristupite i izvučete korisničke podatke, kao što su fotografije, bez pristanka korisnika.

Primer koda: Zlonamerni .xib fajl

Adresiranje ograničenja pokretanja

  • Ograničenja pokretanja sprečavaju izvršavanje aplikacije sa neočekivanih lokacija (npr. /tmp).
  • Moguće je identifikovati aplikacije koje nisu zaštićene ograničenjima pokretanja i ciljati ih za ubacivanje NIB fajla.

Dodatne macOS zaštite

Od macOS Sonoma verzije nadalje, modifikacije unutar App bundle-ova su ograničene. Međutim, ranije metode su uključivale:

  1. Kopiranje aplikacije na drugu lokaciju (npr. /tmp/).
  2. Preimenovanje direktorijuma unutar App bundle-a da bi se zaobišle početne zaštite.
  3. Nakon pokretanja aplikacije da se registruje kod Gatekeeper-a, modifikovanje App bundle-a (npr. zamena MainMenu.nib sa Dirty.nib).
  4. Vraćanje preimenovanih direktorijuma i ponovno pokretanje aplikacije da bi se izvršio ubačeni NIB fajl.

Napomena: Nedavne macOS nadogradnje su umanjile ovu eksploataciju sprečavanjem modifikacija fajlova unutar App bundle-a nakon keširanja od strane Gatekeeper-a, čime je eksploatacija postala neefikasna.

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

Drugi načini podrške HackTricks-u: