<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
*Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να**κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **/Library**: Μπορείτε να βρείτε πολλούς υποφακέλους και αρχεία που σχετίζονται με προτιμήσεις, caches και logs εδώ. Υπάρχει ένας φάκελος Library στο ριζικό φάκελο και σε κάθε φάκελο χρήστη.
* **/private**: Ανεπισήμως, αλλά πολλοί από τους αναφερθέντες φακέλους είναι συμβολικοί σύνδεσμοι στον ιδιωτικό φάκελο.
* **/sbin**: Βασικά δυαδικά αρχεία συστήματος (σχετικά με τη διαχείριση)
* **/System**: Αρχείο για τη λειτουργία του OS X. Θα πρέπει να βρείτε κυρίως μόνο αρχεία που αφορούν την Apple εδώ (όχι τρίτων).
* **/.vol**: Εκτελώντας `stat a.txt` λαμβάνετε κάτι σαν`16777223 7545753 -rw-r--r-- 1 username wheel ...` όπου το πρώτο νούμερο είναι ο αριθμός id του όγκου όπου υπάρχει το αρχείο και το δεύτερο είναι ο αριθμός inode. Μπορείτε να έχετε πρόσβαση στο περιεχόμενο αυτού του αρχείου μέσω /.vol/ με αυτές τις πληροφορίες εκτελώντας `cat /.vol/16777223/7545753`
* **Δεδομένα εφαρμογής** μπορούν να βρεθούν στο `/Library/Application Support`για εφαρμογές που τρέχουν ως ρίζα και στο `~/Library/Application Support`για εφαρμογές που τρέχουν ως χρήστης.
* **Εφαρμογές με αμμοθάλασσα** αντιστοιχίζονται στον φάκελο `~/Library/Containers`. Κάθε εφαρμογή έχει ένα φάκελο με το όνομα του αναλόγως με το ID δέματος της εφαρμογής (`com.apple.Safari`).
* **`.pkg`**: Είναι ίδια με τα xar (eXtensible Archive format). Η εντολή installer μπορεί να χρησιμοποιηθεί γιανα εγκαταστήσει τα περιεχόμενα αυτών των αρχείων.
Στο macOS (και iOS) όλες οι κοινές βιβλιοθήκες συστήματος, όπως πλαίσια και dylibs, **συνδυάζονται σε ένα μόνο αρχείο**, που ονομάζεται **dyld shared cache**. Αυτό βελτιώνει την απόδοση, αφού ο κώδικας μπορεί να φορτωθεί πιο γρήγορα.
Σημειώστε ότι ακόμα κι αν το εργαλείο `dyld_shared_cache_util` δεν λειτουργεί, μπορείτε να περάσετε το **shared dyld binary στο Hopper** και το Hopper θα είναι σε θέση να αναγνωρίσει όλες τις βιβλιοθήκες και να σας επιτρέψει να**επιλέξετε ποια θέλετε**να ερευνήσετε:
Κάποιοι εξαγωγείς δεν λειτουργούν καθώς οι dylibs είναι προ-συνδεδεμένες με σκληρούς κωδικούς διευθύνσεων και επομένως ενδέχεται να πηδούν σε άγνωστες διευθύνσεις
Είναι επίσης δυνατό να κατεβάσετε την Κοινόχρηστη Βιβλιοθήκη Cache άλλων συσκευών \*OS στο macos χρησιμοποιώντας έναν εξομοιωτή στο Xcode. Θα κατεβούν μέσα στο: ls `$HOME/Library/Developer/Xcode/<*>OS\ DeviceSupport/<version>/Symbols/System/Library/Caches/com.apple.dyld/`, όπως:`$HOME/Library/Developer/Xcode/iOS\ DeviceSupport/14.1\ (18A8395)/Symbols/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64`
Το**`dyld`** χρησιμοποιεί την κλήση συστήματος **`shared_region_check_np`** γιανα γνωρίζει αν έχει γίνει χαρτογράφηση του SLC (η οποία επιστρέφει τη διεύθυνση) και **`shared_region_map_and_slide_np`** γιανα χαρτογραφήσει το SLC.
Σημειώστε ότι ακόμα κι αν το SLC έχει γίνει μετακινηθεί στην πρώτη χρήση, όλες οι**διεργασίες** χρησιμοποιούν το **ίδιο αντίγραφο**, το οποίο **αποκλείει την προστασία ASLR** εάν ο επιτιθέμενος μπορούσε να εκτελέσει διεργασίες στο σύστημα. Αυτό πράγματι εκμεταλλεύτηκε στο παρελθόν και διορθώθηκε με τον κοινόχρηστο περιοχή pager.
Οι ομάδες κλαδιών είναι μικρές Mach-O dylibs που δημιουργούν μικρούς χώρους μεταξύ των αντιστοιχίσεων εικόνων καθιστώντας αδύνατη την ενδιάμεση εισαγωγή των λειτουργιών.
* **`DYLD_DHARED_REGION=private DYLD_SHARED_CACHE_DIR=</path/dir> DYLD_SHARED_CACHE_DONT_VALIDATE=1`** -> Αυτό θα επιτρέψει τη φόρτωση μιας νέας κοινόχρηστης βιβλιοθήκης cache
* **`DYLD_SHARED_CACHE_DIR=avoid`** και αντικαταστήστε χειροκίνητα τις βιβλιοθήκες με συμβολικούς συνδέσμους στην κοινόχρηστη μνήμη cache με τις πραγματικές (θα πρέπει να τις εξάγετε)
Σε ένα **φάκελο**, το **read** επιτρέπει να**καταλογογραφηθεί**, το **write** επιτρέπει να**διαγραφεί** και να**γραφτούν** αρχεία σε αυτό, και το **execute** επιτρέπει να**διασχίσει** τον κατάλογο. Έτσι, για παράδειγμα, ένας χρήστης με **άδεια ανάγνωσης πάνω σε ένα αρχείο** μέσα σε έναν κατάλογο όπου δεν έχει **άδεια εκτέλεσης****δεν θα μπορεί να διαβάσει** το αρχείο.
### Τροποποιητές σημαιών
Υπάρχουν μερικές σημαίες που μπορούν να οριστούν στα αρχεία που θα κάνουν το αρχείο να συμπεριφέρεται διαφορετικά. Μπορείτε να**ελέγξετε τις σημαίες** των αρχείων μέσα σε έναν κατάλογο με `ls -lO /path/directory`
* **`uchg`**: Γνωστή ως **σημαία uchange** θα **εμποδίσει οποιαδήποτε ενέργεια** αλλάζει ή διαγράφει το **αρχείο**. Για να το ορίσετε: `chflags uchg file.txt`
*Ο ριζικός χρήστης μπορεί να**αφαιρέσει τη σημαία** και να τροποποιήσει το αρχείο
* **`restricted`**: Αυτή η σημαία κάνει το αρχείο να**προστατεύεται από το SIP** (δεν μπορείτε να προσθέσετε αυτή τη σημαία σε ένα αρχείο).
* **`Sticky bit`**: Εάν ένας κατάλογος έχει sticky bit, **μόνο**ο**ιδιοκτήτης του καταλόγου ή ο ριζικός μπορεί να μετονομάσει ή να διαγράψει** αρχεία. Συνήθως αυτό ορίζεται στον κατάλογο /tmp γιανα αποτρέψει τους κανονικούς χρήστες από το διαγραφή ή τη μετακίνηση αρχείων άλλων χρηστών.
Όλες οι σημαίες μπορούν να βρεθούν στο αρχείο `sys/stat.h` (βρείτε το χρησιμοποιώντας `mdfind stat.h | grep stat.h`) και είναι:
*`UF_SETTABLE` 0x0000ffff: Μάσκα από σημαίες που μπορούν να αλλάξουν οι ιδιοκτήτες.
*`UF_NODUMP` 0x00000001: Να μην γίνει αντιγραφή αρχείου.
Τα επεκτεινόμενα χαρακτηριστικά έχουν ένα όνομα και μια επιθυμητή τιμή και μπορούν να βρεθούν χρησιμοποιώντας την εντολή `ls -@` και να τροποποιηθούν χρησιμοποιώντας την εντολή `xattr`. Μερικά κοινά επεκτεινόμενα χαρακτηριστικά είναι:
*`com.apple.resourceFork`: Συμβατότητα με το resource fork. Επίσης ορατό ως `filename/..namedfork/rsrc`
Αυτή είναι μια μέθοδος γιανα αποκτήσετε **Εναλλακτικά Ροέν Δεδομένα στα μηχανήματα MacOS**. Μπορείτε να αποθηκεύσετε περιεχόμενο μέσα σε ένα επεκτεινόμενο χαρακτηριστικό που ονομάζεται **com.apple.ResourceFork** μέσα σε ένα αρχείο αποθηκεύοντάς το στο **file/..namedfork/rsrc**.
Το επεκτεταμένο χαρακτηριστικό `com.apple.decmpfs` υποδηλώνει ότι το αρχείο είναι αποθηκευμένο κρυπτογραφημένο, το `ls -l` θα αναφέρει **μέγεθος 0** και τα συμπιεσμένα δεδομένα βρίσκονται μέσα σε αυτό το χαρακτηριστικό. Κάθε φορά που ανατίθεται το αρχείο, θα αποκρυπτογραφείται στη μνήμη.
Αυτό το χαρακτηριστικό μπορεί να εμφανιστεί με την εντολή `ls -lO` ως συμπιεσμένο επειδή τα συμπιεσμένα αρχεία επισημαίνονται επίσης με τη σημαία `UF_COMPRESSED`. Αν ένα συμπιεσμένο αρχείο αφαιρεθεί αυτή η σημαία με `chflags nocompressed </path/to/file>`, το σύστημα δεν θα γνωρίζει ότι το αρχείο ήταν συμπιεσμένο και συνεπώς δεν θα μπορεί να αποσυμπιέσει και να έχει πρόσβαση στα δεδομένα (θα νομίζει ότι είναι πραγματικά κενό).
Τα δυαδικά του Mac OS συνήθως μεταγλωττίζονται ως **παγκόσμια δυαδικά**. Ένα **παγκόσμιο δυαδικό** μπορεί **να υποστηρίζει πολλές αρχιτεκτονικές στο ίδιο αρχείο**.
Ο κατάλογος `/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/System` είναι όπου αποθηκεύονται πληροφορίες σχετικά με το **κίνδυνο που συσχετίζεται με διαφορετικές επεκτάσεις αρχείων**. Αυτός ο κατάλογος κατηγοριοποιεί τα αρχεία σε διάφορα επίπεδα κινδύνου, επηρεάζοντας τον τρόπο με τον οποίο το Safari χειρίζεται αυτά τα αρχεία κατά τη λήψη. Οι κατηγορίες είναι οι εξής:
* **LSRiskCategorySafe**: Τα αρχεία σε αυτήν την κατηγορία θεωρούνται **εντελώς ασφαλή**. Το Safari θα ανοίγει αυτά τα αρχεία αυτόματα μετά τη λήψη τους.
* **LSRiskCategoryUnsafeExecutable**: Τα αρχεία σε αυτήν την κατηγορία **ενεργοποιούν μια προειδοποίηση** που υποδεικνύει ότι το αρχείο είναι μια εφαρμογή. Αυτό λειτουργεί ως μέτρο ασφαλείας γιανα ειδοποιήσει τον χρήστη.
* **LSRiskCategoryMayContainUnsafeExecutable**: Αυτή η κατηγορία είναι για αρχεία, όπως αρχεία αρχειοθέτησης, που ενδέχεται να περιέχουν μια εκτελέσιμη εντολή. Το Safari θα **ενεργοποιήσει μια προειδοποίηση** εκτός εάν μπορεί να επαληθεύσει ότι όλο το περιεχόμενο είναι ασφαλές ή ουδέτερο.
* **`$HOME/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2`**: Περιέχει πληροφορίες σχετικά με τα ληφθέντα αρχεία, όπως η διεύθυνση URL από όπου λήφθηκαν.
* **`/var/log/system.log`**: Κύρια καταγραφή των συστημάτων OSX. Το com.apple.syslogd.plist είναι υπεύθυνο για την εκτέλεση της καταγραφής συστήματος (μπορείτε να ελέγξετε αν είναι απενεργοποιημένο αναζητώντας "com.apple.syslogd" στο `launchctl list`.
* **`$HOME/Library/Logs/DiskUtility.log`**: Αρχείο καταγραφής για την εφαρμογή DiskUtility (πληροφορίες σχετικά με τους δίσκους, συμπεριλαμβανομένων των USB)