macOS Dirty NIB
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kwa maelezo zaidi kuhusu mbinu hii angalia chapisho la asili kutoka: https://blog.xpnsec.com/dirtynib/ na chapisho linalofuata kutoka https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/. Hapa kuna muhtasari:
Nini Nib files
Nib (fupi kwa NeXT Interface Builder) files, sehemu ya mfumo wa maendeleo wa Apple, zinakusudia kufafanua vipengele vya UI na mwingiliano wao katika programu. Zinajumuisha vitu vilivyopangwa kama vile madirisha na vifungo, na hupakiwa wakati wa wakati wa utekelezaji. Licha ya matumizi yao yaendelea, Apple sasa inapendekeza Storyboards kwa ajili ya uonyeshaji wa mtiririko wa UI wa kina zaidi.
Faili kuu ya Nib inarejelewa katika thamani NSMainNibFile
ndani ya faili ya Info.plist
ya programu na hupakiwa na kazi NSApplicationMain
inayotekelezwa katika kazi ya main
ya programu.
Mchakato wa Uingizaji wa Dirty Nib
Kuunda na Kuweka Faili ya NIB
- Mipangilio ya Awali:
- Unda faili mpya ya NIB kwa kutumia XCode.
- Ongeza Kitu kwenye interface, ukipanga darasa lake kuwa
NSAppleScript
. - Sanidi mali ya awali ya
source
kupitia Sifa za Wakati wa Uendeshaji Zilizofanywa na Mtumiaji.
- Gadget ya Utekelezaji wa Kanuni:
- Mipangilio hii inarahisisha kuendesha AppleScript kwa mahitaji.
- Jumuisha kifungo ili kuamsha kitu cha
Apple Script
, hasa kuanzisha mteule waexecuteAndReturnError:
.
- Kujaribu:
- Apple Script rahisi kwa ajili ya majaribio:
set theDialogText to "PWND"
display dialog theDialogText
- Jaribu kwa kuendesha katika debugger ya XCode na kubofya kifungo.
Kulenga Programu (Mfano: Pages)
- Maandalizi:
- Nakili programu lengwa (mfano, Pages) kwenye directory tofauti (mfano,
/tmp/
). - Anzisha programu ili kuepuka matatizo ya Gatekeeper na kuikadiria.
- Kufuta Faili ya NIB:
- Badilisha faili ya NIB iliyopo (mfano, About Panel NIB) na faili ya DirtyNIB iliyoundwa.
- Utekelezaji:
- Amsha utekelezaji kwa kuingiliana na programu (mfano, kuchagua kipengee cha menyu
About
).
Ushahidi wa Dhihirisho: Kupata Takwimu za Mtumiaji
- Badilisha AppleScript ili kufikia na kutoa takwimu za mtumiaji, kama picha, bila idhini ya mtumiaji.
Mfano wa Kanuni: Faili Mbaya ya .xib
- Fikia na kagua mfano wa faili mbaya ya .xib inayodhihirisha utekelezaji wa kanuni zisizo na mipaka.
Mfano Mwingine
Katika chapisho https://sector7.computest.nl/post/2024-04-bringing-process-injection-into-view-exploiting-all-macos-apps-using-nib-files/ unaweza kupata mafunzo juu ya jinsi ya kuunda nib chafu.
Kushughulikia Vikwazo vya Uzinduzi
- Vikwazo vya Uzinduzi vinakwamisha utekelezaji wa programu kutoka maeneo yasiyotarajiwa (mfano,
/tmp
). - Inawezekana kubaini programu ambazo hazijalindwa na Vikwazo vya Uzinduzi na kuzilenga kwa ajili ya uingizaji wa faili ya NIB.
Ulinzi Mwingine wa macOS
Kuanzia macOS Sonoma kuendelea, mabadiliko ndani ya vifurushi vya Programu yanakabiliwa. Hata hivyo, mbinu za awali zilihusisha:
- Nakala ya programu kwenye eneo tofauti (mfano,
/tmp/
). - Kubadilisha majina ya directories ndani ya kifurushi cha programu ili kupita ulinzi wa awali.
- Baada ya kuendesha programu ili kujiandikisha na Gatekeeper, kubadilisha kifurushi cha programu (mfano, kubadilisha MainMenu.nib na Dirty.nib).
- Kubadilisha majina ya directories nyuma na kuendesha tena programu ili kutekeleza faili ya NIB iliyowekwa.
Kumbuka: Sasisho za hivi karibuni za macOS zimepunguza exploit hii kwa kuzuia mabadiliko ya faili ndani ya vifurushi vya programu baada ya caching ya Gatekeeper, na kufanya exploit hiyo isifanye kazi.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.