macOS Dirty NIB

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

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

Για περισσότερες λεπτομέρειες σχετικά με την τεχνική, ελέγξτε την αρχική ανάρτηση από: https://blog.xpnsec.com/dirtynib/**. Εδώ υπάρχει ένα σύνοψη:

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

Ανησυχίες ασφαλείας με τα αρχεία NIB

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

Διαδικασία Dirty NIB Injection

Δημιουργία και Ρύθμιση ενός αρχείου NIB

  1. Αρχική ρύθμιση:

  • Δημιουργήστε ένα νέο αρχείο NIB χρησιμοποιώντας το XCode.

  • Προσθέστε ένα αντικείμενο στη διεπαφή, ορίζοντας την κλάση του σε NSAppleScript.

  • Διαμορφώστε την αρχική ιδιότητα source μέσω των Ορισμένων Χρονικών Χαρακτηριστικών Εκτέλεσης του Χρήστη.

  1. Κωδικός εκτέλεσης:

  • Η ρύθμιση διευκολύνει την εκτέλεση του AppleScript κατά παραγγελία.

  • Ενσωματώστε ένα κουμπί για να ενεργοποιήσετε το αντικείμενο Apple Script, ενεργοποιώντας ειδικά τον επιλογέα executeAndReturnError:.

  1. Δοκιμή:

  • Ένα απλό Apple Script για δοκιμαστικούς σκοπούς:

set theDialogText to "PWND"
display dialog theDialogText
  • Δοκιμάστε το τρέχοντα στον αποσφαλματωτή του XCode και κάντε κλικ στο κουμπί.

Στόχευση μιας εφαρμογής (παράδειγμα: Pages)

  1. Προετοιμασία:

  • Αντιγράψτε την επιθυμητή εφαρμογή (π.χ., Pages) σε έναν ξεχωριστό κατάλογο (π.χ., /tmp/).

  • Εκκινήστε την εφαρμογή για να αποφύγετε προβλήματα με τον Gatekeeper και να την κρατήσετε στην προσωρινή μνήμη.

  1. Αντικατάσταση αρχείου NIB:

  • Αντικαταστήστε ένα υπάρχον αρχείο NIB (π.χ., About Panel NIB) με το δημιουργημένο αρχείο DirtyNIB.

  1. Εκτέλεση:

  • Ενεργοποιήστε την εκτέλεση αλληλεπίδρασης με την εφαρμογή (π.χ., επιλέγοντας το στοιχείο μενού About).

Απόδειξη Έννοιας: Πρόσβαση σε Δεδομένα Χρήστη

  • Τροποποιήστε το AppleScript για να αποκτήσετε πρόσβαση και να εξαγάγετε δεδομένα χρήστη, όπ

Last updated