macOS Sensitive Locations & Interesting Daemons
Wagwoorde
Skadu-wagwoorde
Skadu-wagwoord word saam met die gebruiker se konfigurasie gestoor in pliste wat geleë is in /var/db/dslocal/nodes/Default/users/
.
Die volgende eenlynige kode kan gebruik word om alle inligting oor die gebruikers (insluitend hasinligting) te dump:
Skripte soos hierdie een of hierdie een kan gebruik word om die hash na hashcat-formaat te omskep.
'n Alternatiewe een-liner wat geloofsbriewe van alle nie-diensrekeninge in hashcat-formaat -m 7100
(macOS PBKDF2-SHA512) sal dump:
Sleutelbos Dump
Let daarop dat wanneer die security
binêre lêer gebruik word om die wagwoorde ontsluit te dump, verskeie versoek sal vra dat die gebruiker hierdie operasie toelaat.
Gebaseer op hierdie kommentaar juuso/keychaindump#10 (comment) lyk dit asof hierdie gereedskap nie meer werk in Big Sur nie.
Sleutelkettingdump Oorsig
'n Gereedskap genaamd keychaindump is ontwikkel om wagwoorde uit macOS-sleutelkettings te onttrek, maar dit het beperkings op nuwer macOS-weergawes soos Big Sur, soos aangedui in 'n bespreking. Die gebruik van keychaindump vereis dat die aanvaller toegang verkry en voorregte na root eskaleer. Die gereedskap maak gebruik van die feit dat die sleutelketting standaard oopgemaak word by gebruikersaanmelding vir gerief, wat toepassings in staat stel om dit te benader sonder om die gebruiker se wagwoord herhaaldelik te vereis. As 'n gebruiker egter kies om hul sleutelketting na elke gebruik te sluit, word keychaindump ondoeltreffend.
Keychaindump werk deur 'n spesifieke proses genaamd securityd te teiken, soos deur Apple beskryf as 'n daemon vir magtiging en kriptografiese operasies, wat noodsaaklik is vir die benadering van die sleutelketting. Die onttrekkingsproses behels die identifisering van 'n Meester Sleutel wat afgelei is van die gebruiker se aanmeldingswagwoord. Hierdie sleutel is noodsaaklik vir die lees van die sleutelketting lêer. Om die Meester Sleutel te vind, skandeer keychaindump die geheuehoop van securityd deur die vmmap
bevel te gebruik, op soek na potensiële sleutels binne areas wat as MALLOC_TINY
geïdentifiseer is. Die volgende bevel word gebruik om hierdie geheue-areas te ondersoek:
Na die identifisering van potensiële hoofsluitels, soek keychaindump deur die hoop vir 'n spesifieke patroon (0x0000000000000018
) wat 'n kandidaat vir die hoofslutel aandui. Verdere stappe, insluitend deobfuscation, is nodig om hierdie sleutel te gebruik, soos uiteengesit in die bronkode van keychaindump. Analiste wat op hierdie gebied fokus, moet daarop let dat die noodsaaklike data vir die dekriptering van die sleutelketting binne die geheue van die securityd-proses gestoor word. 'n Voorbeeldopdrag om keychaindump uit te voer is:
kettingbreek
Kettingbreek kan gebruik word om die volgende tipes inligting op 'n OSX-sleutelbord op 'n forensies-klank manier te onttrek:
Gehashde Sleutelbord wagwoord, geskik vir kraak met hashcat of John the Ripper
Internetwagwoorde
Generiese Wagwoorde
Privaatsleutels
Openbare Sleutels
X509-sertifikate
Veilige Notas
Appleshare Wagwoorde
Met die sleutelbordontgrendelwagwoord, 'n meestersleutel verkry deur volafox of volatility, of 'n ontgrendelingslêer soos SystemKey, sal Kettingbreek ook platte teks wagwoorde voorsien.
Sonner een van hierdie metodes om die Sleutelbord te ontsluit, sal Kettingbreek alle ander beskikbare inligting vertoon.
Stort sleutelbord sleutels
Stort sleutelbundel sleutels (met wagwoorde) met SystemKey
Stort sleutelhanger sleutels (met wagwoorde) deur die has te kraak
Stort sleutelhanger sleutels (met wagwoorde) met geheue storting
Volg hierdie stappe om 'n geheue storting uit te voer
Dump sleutelbos sleutels (met wagwoorde) deur die gebruikers wagwoord te gebruik
As jy die gebruikers wagwoord ken, kan jy dit gebruik om sleutelbose wat aan die gebruiker behoort te dump en te dekripteer.
kcpassword
Die kcpassword lêer is 'n lêer wat die gebruiker se aanmeldingswagwoord bevat, maar slegs as die stelsel eienaar outomatiese aanmelding geaktiveer het. Daarom sal die gebruiker outomaties aangemeld word sonder om vir 'n wagwoord gevra te word (wat nie baie veilig is nie).
Die wagwoord word gestoor in die lêer /etc/kcpassword
xored met die sleutel 0x7D 0x89 0x52 0x23 0xD2 0xBC 0xDD 0xEA 0xA3 0xB9 0x1F
. As die gebruikerswagwoord langer is as die sleutel, sal die sleutel hergebruik word.
Dit maak die wagwoord redelik maklik om te herwin, byvoorbeeld deur skripte soos hierdie een.
Interessante Inligting in Databasisse
Boodskappe
Kennisgewings
Jy kan die Kennisgewingsdata vind in $(getconf DARWIN_USER_DIR)/com.apple.notificationcenter/
Die meeste van die interessante inligting sal in die blob wees. Jy sal dus die inhoud moet ontgin en dit na mensleesbare formaat moet omskep of strings
gebruik. Om toegang daartoe te kry, kan jy doen:
Notas
Die gebruikers se notas kan gevind word in ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite
Voorkeure
In macOS-toepassingsvoorkeure is geleë in $HOME/Library/Preferences
en in iOS is hulle in /var/mobile/Containers/Data/Application/<UUID>/Library/Preferences
.
In macOS kan die opdraggereelwerktuig defaults
gebruik word om die Voorkeure-lêer te wijzig.
/usr/sbin/cfprefsd
eis die XPC-diens com.apple.cfprefsd.daemon
en com.apple.cfprefsd.agent
op en kan geroep word om aksies soos die wysiging van voorkeure uit te voer.
Stelselkennisgewings
Darwin Kennisgewings
Die hoofdaemon vir kennisgewings is /usr/sbin/notifyd
. Om kennisgewings te ontvang, moet kliënte registreer deur die com.apple.system.notification_center
Mach-poort (kontroleer hulle met sudo lsmp -p <pid notifyd>
). Die daemon is konfigureerbaar met die lêer /etc/notify.conf
.
Die name wat vir kennisgewings gebruik word, is unieke omgekeerde DNS-notasies en wanneer 'n kennisgewing na een van hulle gestuur word, sal die kliënt(e) wat aangedui het dat hulle dit kan hanteer, dit ontvang.
Dit is moontlik om die huidige status te dump (en al die name te sien) deur die sein SIGUSR2 na die notifyd-proses te stuur en die gegenereerde lêer te lees: /var/run/notifyd_<pid>.status
:
Verspreide Kennisgewingsentrum
Die Verspreide Kennisgewingsentrum waarvan die hoofbinêre lêer /usr/sbin/distnoted
is, is nog 'n manier om kennisgewings te stuur. Dit stel sommige XPC-diens bloot en doen 'n paar kontroles om te probeer om kliënte te verifieer.
Apple Stuur Kennisgewings (APN)
In hierdie geval kan aansoeke registreer vir onderwerpe. Die kliënt sal 'n token genereer deur Apple se bedieners te kontak deur apsd
.
Dan sal verskaffers ook 'n token gegenereer het en in staat wees om met Apple se bedieners te verbind om boodskappe na die kliënte te stuur. Hierdie boodskappe sal plaaslik ontvang word deur apsd
wat die kennisgewing na die wagtende aansoek sal deurgee.
Die voorkeure is geleë in /Library/Preferences/com.apple.apsd.plist
.
Daar is 'n plaaslike databasis van boodskappe geleë in macOS in /Library/Application\ Support/ApplePushService/aps.db
en in iOS in /var/mobile/Library/ApplePushService
. Dit het 3 tabelle: incoming_messages
, outgoing_messages
en channel
.
Dit is ook moontlik om inligting oor die duiwel en verbindings te kry deur die volgende te gebruik:
Gebruikerskennisgewings
Dit is kennisgewings wat die gebruiker op die skerm moet sien:
CFUserNotification
: Hierdie API bied 'n manier om 'n pop-up met 'n boodskap op die skerm te wys.Die Bulletinbord: Dit wys in iOS 'n banier wat verdwyn en in die Kennisgewingsentrum gestoor sal word.
NSUserNotificationCenter
: Dit is die iOS-bulletinbord in MacOS. Die databasis met die kennisgewings is geleë in/var/folders/<user temp>/0/com.apple.notificationcenter/db2/db
Last updated