macOS Dirty NIB
Za više detalja o tehnici pogledajte originalni post sa: https://blog.xpnsec.com/dirtynib/ i sledeći post od https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/. Evo sažetak:
Šta su Nib datoteke
Nib (skraćeno od NeXT Interface Builder) datoteke, deo Apple-ovog razvojnog ekosistema, namenjene su definisanju UI elemenata i njihovih interakcija u aplikacijama. One obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se u vreme izvođenja. I pored njihove stalne upotrebe, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka.
Glavna Nib datoteka se poziva u vrednosti NSMainNibFile
unutar Info.plist
datoteke aplikacije i učitava je funkcija NSApplicationMain
koja se izvršava u main
funkciji aplikacije.
Proces Injekcije Prljavog Niba
Kreiranje i Postavljanje NIB Datoteke
Početna Konfiguracija:
Kreirajte novu NIB datoteku koristeći XCode.
Dodajte objekat u interfejs, postavljajući njegovu klasu na
NSAppleScript
.Konfigurišite početnu
source
osobinu putem User Defined Runtime Attributes.
Gadget za Izvršavanje Koda:
Konfiguracija omogućava pokretanje AppleScript-a na zahtev.
Integrisati dugme za aktiviranje
Apple Script
objekta, posebno pokrećućiexecuteAndReturnError:
selektor.
Testiranje:
Jednostavan Apple Script za testiranje:
Testirajte pokretanjem u XCode debageru i klikom na dugme.
Ciljanje Aplikacije (Primer: Pages)
Priprema:
Kopirajte ciljan app (npr., Pages) u poseban direktorijum (npr.,
/tmp/
).Pokrenite aplikaciju da biste izbegli probleme sa Gatekeeper-om i keširali je.
Prepisivanje NIB Datoteke:
Zamenite postojeću NIB datoteku (npr., About Panel NIB) sa kreiranom DirtyNIB datotekom.
Izvršavanje:
Pokrenite izvršavanje interakcijom sa aplikacijom (npr., odabirom
About
menija).
Dokaz Koncepta: Pristupanje Korisničkim Podacima
Izmenite AppleScript da pristupi i izvuče korisničke podatke, kao što su fotografije, bez pristanka korisnika.
Uzorak Koda: Maliciozna .xib Datoteka
Pristupite i pregledajte uzorak maliciozne .xib datoteke koja demonstrira izvršavanje proizvoljnog koda.
Drugi Primer
U postu https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/ možete pronaći tutorijal o tome kako kreirati prljavi nib.
Rešavanje Ograničenja Pokretanja
Ograničenja pokretanja sprečavaju izvršavanje aplikacija iz neočekivanih lokacija (npr.,
/tmp
).Moguće je identifikovati aplikacije koje nisu zaštićene Ograničenjima pokretanja i ciljati ih za injekciju NIB datoteka.
Dodatne macOS Zaštite
Od macOS Sonoma nadalje, modifikacije unutar App bundle-a su ograničene. Međutim, ranije metode su uključivale:
Kopiranje aplikacije na drugo mesto (npr.,
/tmp/
).Preimenovanje direktorijuma unutar app bundle-a da bi se zaobišle početne zaštite.
Nakon pokretanja aplikacije da se registruje sa Gatekeeper-om, modifikovanje app bundle-a (npr., zamenjivanje MainMenu.nib sa Dirty.nib).
Ponovno preimenovanje direktorijuma i ponovo pokretanje aplikacije da se izvrši injektovana NIB datoteka.
Napomena: Nedavne macOS nadogradnje su ublažile ovu eksploataciju sprečavanjem modifikacija datoteka unutar app bundle-a nakon keširanja Gatekeeper-a, čime je eksploatacija postala neefikasna.
Last updated