macOS Dirty NIB
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Vir verdere besonderhede oor die tegniek, kyk na die oorspronklike pos van: https://blog.xpnsec.com/dirtynib/ en die volgende pos deur https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/. Hier is 'n opsomming:
Nib (kort vir NeXT Interface Builder) lêers, deel van Apple se ontwikkelings-ekosisteem, is bedoel om UI-elemente en hul interaksies in toepassings te definieer. Hulle sluit geserialiseerde voorwerpe soos vensters en knoppies in, en word tydens uitvoering gelaai. Ten spyte van hul voortgesette gebruik, beveel Apple nou Storyboards aan vir 'n meer omvattende UI-stroomvisualisering.
Die hoof Nib-lêer word verwys in die waarde NSMainNibFile
binne die Info.plist
lêer van die toepassing en word gelaai deur die funksie NSApplicationMain
wat in die main
funksie van die toepassing uitgevoer word.
Beginopstelling:
Skep 'n nuwe NIB-lêer met XCode.
Voeg 'n objek by die koppelvlak, stel sy klas op NSAppleScript
.
Konfigureer die aanvanklike source
eienskap via Gebruiker Gedefinieerde Runtime Attribuut.
Kode-uitvoeringsgadget:
Die opstelling fasiliteer die uitvoering van AppleScript op aanvraag.
Integreer 'n knoppie om die Apple Script
objek te aktiveer, spesifiek die executeAndReturnError:
selektor te aktiveer.
Toetsing:
'n Eenvoudige Apple Script vir toetsdoeleindes:
Toets deur in die XCode-debugger te loop en op die knoppie te klik.
Voorbereiding:
Kopieer die teiken-app (bv. Pages) na 'n aparte gids (bv. /tmp/
).
Begin die app om Gatekeeper-probleme te omseil en dit te kas.
Oorskrywing van NIB-lêer:
Vervang 'n bestaande NIB-lêer (bv. About Panel NIB) met die vervaardigde DirtyNIB-lêer.
Uitvoering:
Activeer die uitvoering deur met die app te interaksie (bv. die About
menu-item te kies).
Wysig die AppleScript om toegang te verkry tot en gebruikersdata, soos foto's, te onttrek, sonder gebruikers toestemming.
Toegang tot en hersien 'n voorbeeld van 'n kwaadwillige .xib-lêer wat die uitvoering van arbitrêre kode demonstreer.
In die pos https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/ kan jy 'n tutoriaal vind oor hoe om 'n dirty nib te skep.
Beginbeperkings hinder app-uitvoering vanaf onverwagte plekke (bv. /tmp
).
Dit is moontlik om apps te identifiseer wat nie deur Beginbeperkings beskerm word nie en hulle te teiken vir NIB-lêerinspuiting.
Vanaf macOS Sonoma is wysigings binne App-pakkette beperk. Eerder metodes het behels:
Kopieer die app na 'n ander plek (bv. /tmp/
).
Hernoem gidse binne die app-pakket om aanvanklike beskermings te omseil.
Na die uitvoering van die app om by Gatekeeper te registreer, wysig die app-pakket (bv. vervang MainMenu.nib met Dirty.nib).
Hernoem gidse terug en herloop die app om die ingespuite NIB-lêer uit te voer.
Let wel: Onlangs macOS-opdaterings het hierdie uitbuiting verminder deur lêerwysigings binne app-pakkette na Gatekeeper-kas te voorkom, wat die uitbuiting ondoeltreffend maak.
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)