macOS Sensitive Locations & Interesting Daemons
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nywila za kivuli huhifadhiwa pamoja na usanidi wa mtumiaji katika plists zilizoko katika /var/db/dslocal/nodes/Default/users/
.
Mstari ufuatao unaweza kutumika kutoa habari zote kuhusu watumiaji (ikiwemo habari za hash):
Scripts kama hii au hii zinaweza kutumika kubadilisha hash kuwa hashcat format.
Mstari mbadala ambao utaondoa creds za akaunti zote zisizo za huduma katika format ya hashcat -m 7100
(macOS PBKDF2-SHA512):
Njia nyingine ya kupata ShadowHashData
ya mtumiaji ni kwa kutumia dscl
: sudo dscl . -read /Users/`whoami` ShadowHashData
Faili hii inatumika tu wakati mfumo unakimbia katika mode ya mtumiaji mmoja (hivyo si mara nyingi sana).
Kumbuka kwamba unapokuwa unatumia binary ya usalama kudondosha nywila zilizotafsiriwa, maelekezo kadhaa yatauliza mtumiaji kuruhusu operesheni hii.
Kulingana na maoni haya juuso/keychaindump#10 (comment) inaonekana kwamba zana hizi hazifanyi kazi tena katika Big Sur.
Zana inayoitwa keychaindump imeandaliwa kutoa nywila kutoka kwa funguo za macOS, lakini inakabiliwa na vizuizi katika toleo jipya la macOS kama Big Sur, kama ilivyoelezwa katika majadiliano. Matumizi ya keychaindump yanahitaji mshambuliaji kupata ufikiaji na kuongeza mamlaka hadi root. Zana hii inatumia ukweli kwamba funguo za macOS zimefunguliwa kwa default wakati wa kuingia kwa mtumiaji kwa urahisi, ikiruhusu programu kufikia bila kuhitaji nywila ya mtumiaji mara kwa mara. Hata hivyo, ikiwa mtumiaji atachagua kufunga funguo zao baada ya kila matumizi, keychaindump inakuwa isiyo na ufanisi.
Keychaindump inafanya kazi kwa kulenga mchakato maalum unaoitwa securityd, ambao Apple inaelezea kama daemon wa mamlaka na operesheni za kificho, muhimu kwa kufikia funguo. Mchakato wa kutoa nywila unajumuisha kutambua Master Key inayotokana na nywila ya kuingia ya mtumiaji. Funguo hii ni muhimu kwa kusoma faili ya funguo. Ili kupata Master Key, keychaindump inachanganua kumbukumbu ya securityd kwa kutumia amri ya vmmap
, ikitafuta funguo zinazoweza kuwa ndani ya maeneo yaliyoashiriwa kama MALLOC_TINY
. Amri ifuatayo inatumika kukagua maeneo haya ya kumbukumbu:
Baada ya kubaini funguo kuu zinazoweza kuwa, keychaindump inatafuta kupitia makundi kwa mfano maalum (0x0000000000000018
) unaoashiria mgombea wa funguo kuu. Hatua zaidi, ikiwa ni pamoja na kuondoa ufichaji, zinahitajika ili kutumia funguo hii, kama ilivyoainishwa katika msimbo wa chanzo wa keychaindump. Wachambuzi wanaolenga eneo hili wanapaswa kuzingatia kwamba data muhimu ya kufichua funguo za keychain inahifadhiwa ndani ya kumbukumbu ya mchakato wa securityd. Mfano wa amri ya kuendesha keychaindump ni:
Chainbreaker inaweza kutumika kutoa aina zifuatazo za taarifa kutoka kwa keychain ya OSX kwa njia ya forensically sound:
Nenosiri la Keychain lililohashwa, linalofaa kwa ajili ya kuvunja kwa kutumia hashcat au John the Ripper
Nenosiri za Mtandao
Nenosiri za Kawaida
Funguo Binafsi
Funguo za Umma
Vyeti vya X509
Maelezo Salama
Nenosiri za Appleshare
Ikiwa kuna nenosiri la kufungua keychain, funguo kuu iliyopatikana kwa kutumia volafox au volatility, au faili ya kufungua kama SystemKey, Chainbreaker pia itatoa nenosiri za maandiko.
Bila moja ya hizi mbinu za kufungua Keychain, Chainbreaker itaonyesha taarifa nyingine zote zinazopatikana.
Fuata hatua hizi ili kufanya memory dump
Ikiwa unajua nywila ya mtumiaji unaweza kuitumia dondoa na kufichua keychains zinazomilikiwa na mtumiaji.
Faili la kcpassword ni faili linaloshikilia nenosiri la kuingia la mtumiaji, lakini tu ikiwa mmiliki wa mfumo ame wezeshwa kuingia kiotomatiki. Hivyo, mtumiaji ataingia kiotomatiki bila kuulizwa nenosiri (ambayo si salama sana).
Nenosiri linahifadhiwa katika faili /etc/kcpassword
xored na ufunguo 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F
. Ikiwa nenosiri la mtumiaji ni refu zaidi ya ufunguo, ufunguo utarudiwa.
Hii inafanya nenosiri kuwa rahisi kurejesha, kwa mfano kwa kutumia scripts kama hii moja.
Unaweza kupata data za Notifications katika $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
Mengi ya habari za kuvutia yatakuwa katika blob. Hivyo utahitaji kutoa yaliyomo hayo na kubadilisha kuwa yanayosomwa na binadamu au tumia strings
. Ili kuyafikia unaweza kufanya:
Maelezo ya watumiaji notes yanaweza kupatikana katika ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite
Katika programu za macOS, mapendeleo yanapatikana katika $HOME/Library/Preferences
na katika iOS yanapatikana katika /var/mobile/Containers/Data/Application/<UUID>/Library/Preferences
.
Katika macOS, zana ya cli defaults
inaweza kutumika kubadilisha faili za Mapendeleo.
/usr/sbin/cfprefsd
inadai huduma za XPC com.apple.cfprefsd.daemon
na com.apple.cfprefsd.agent
na inaweza kuitwa kufanya vitendo kama kubadilisha mapendeleo.
Faili /System/Library/OpenDirectory/permissions.plist
ina ruhusa zinazotumika kwenye sifa za node na inalindwa na SIP.
Faili hii inatoa ruhusa kwa watumiaji maalum kwa UUID (na si uid) ili waweze kufikia taarifa nyeti maalum kama ShadowHashData
, HeimdalSRPKey
na KerberosKeys
miongoni mwa zingine:
Daemoni kuu wa arifa ni /usr/sbin/notifyd
. Ili kupokea arifa, wateja lazima wajisajili kupitia bandari ya Mach com.apple.system.notification_center
(angalia kwa sudo lsmp -p <pid notifyd>
). Daemoni inaweza kusanidiwa kwa faili /etc/notify.conf
.
Majina yanayotumika kwa arifa ni alama za kipekee za DNS za kinyume na wakati arifa inatumwa kwa moja yao, mteja(wateja) ambao wameonyesha wanaweza kushughulikia hiyo watapokea.
Inawezekana kutupa hali ya sasa (na kuona majina yote) kwa kutuma ishara SIGUSR2 kwa mchakato wa notifyd na kusoma faili lililotengenezwa: /var/run/notifyd_<pid>.status
:
The Distributed Notification Center whose main binary is /usr/sbin/distnoted
, ni njia nyingine ya kutuma arifa. Inatoa baadhi ya huduma za XPC na inafanya baadhi ya ukaguzi kujaribu kuthibitisha wateja.
Katika kesi hii, programu zinaweza kujiandikisha kwa topics. Mteja atazalisha token kwa kuwasiliana na seva za Apple kupitia apsd
.
Kisha, watoa huduma, watakuwa pia wamezalisha token na wataweza kuungana na seva za Apple kutuma ujumbe kwa wateja. Ujumbe huu utapokelewa kwa ndani na apsd
ambayo itapeleka arifa kwa programu inayosubiri hiyo.
Mipangilio iko katika /Library/Preferences/com.apple.apsd.plist
.
Kuna hifadhidata ya ndani ya ujumbe iliyoko katika macOS katika /Library/Application\ Support/ApplePushService/aps.db
na katika iOS katika /var/mobile/Library/ApplePushService
. Ina meza 3: incoming_messages
, outgoing_messages
na channel
.
Ni pia inawezekana kupata taarifa kuhusu daemon na muunganisho kwa kutumia:
Hizi ni arifa ambazo mtumiaji anapaswa kuona kwenye skrini:
CFUserNotification
: API hii inatoa njia ya kuonyesha kwenye skrini pop-up yenye ujumbe.
Bodi ya Tangazo: Hii inaonyesha kwenye iOS bendera inayotoweka na itahifadhiwa kwenye Kituo cha Arifa.
NSUserNotificationCenter
: Hii ni bodi ya tangazo ya iOS kwenye MacOS. Hifadhidata ya arifa iko katika /var/folders/<user temp>/0/com.apple.notificationcenter/db2/db
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)