mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/mobile-pentesting/ios-pentesting/ios-universal-links.md
This commit is contained in:
parent
3f678f47cc
commit
9ac46cef3c
@ -4,11 +4,11 @@
|
||||
|
||||
## Εισαγωγή
|
||||
|
||||
Universal links προσφέρουν μια **αδιάκοπη εμπειρία ανακατεύθυνσης** στους χρήστες, ανοίγοντας απευθείας το περιεχόμενο στην εφαρμογή, παρακάμπτοντας την ανάγκη για ανακατεύθυνση μέσω Safari. Αυτοί οι σύνδεσμοι είναι **μοναδικοί** και ασφαλείς, καθώς δεν μπορούν να διεκδικηθούν από άλλες εφαρμογές. Αυτό διασφαλίζεται με τη φιλοξενία ενός αρχείου JSON `apple-app-site-association` στον ριζικό κατάλογο της ιστοσελίδας, καθορίζοντας έναν επαληθεύσιμο σύνδεσμο μεταξύ της ιστοσελίδας και της εφαρμογής. Σε περιπτώσεις όπου η εφαρμογή δεν είναι εγκατεστημένη, το Safari θα αναλάβει και θα κατευθύνει τον χρήστη στη σελίδα, διατηρώντας την παρουσία της εφαρμογής.
|
||||
Universal links προσφέρουν μια **αδιάκοπη εμπειρία ανακατεύθυνσης** στους χρήστες, ανοίγοντας απευθείας το περιεχόμενο στην εφαρμογή, παρακάμπτοντας την ανάγκη για ανακατεύθυνση μέσω Safari. Αυτοί οι σύνδεσμοι είναι **μοναδικοί** και ασφαλείς, καθώς δεν μπορούν να διεκδικηθούν από άλλες εφαρμογές. Αυτό διασφαλίζεται με την φιλοξενία ενός αρχείου JSON `apple-app-site-association` στον ριζικό κατάλογο της ιστοσελίδας, καθορίζοντας έναν επαληθεύσιμο σύνδεσμο μεταξύ της ιστοσελίδας και της εφαρμογής. Σε περιπτώσεις όπου η εφαρμογή δεν είναι εγκατεστημένη, το Safari θα αναλάβει και θα κατευθύνει τον χρήστη στη σελίδα, διατηρώντας την παρουσία της εφαρμογής.
|
||||
|
||||
Για τους penetration testers, το αρχείο `apple-app-site-association` είναι ιδιαίτερα ενδιαφέρον καθώς μπορεί να αποκαλύψει **ευαίσθητους δρόμους**, πιθανώς περιλαμβάνοντας αυτούς που σχετίζονται με μη δημοσιευμένα χαρακτηριστικά.
|
||||
|
||||
### **Ανάλυση του Δικαιώματος Σχετικών Τομέων**
|
||||
### **Ανάλυση της Εξουσιοδότησης Σχετικών Τομέων**
|
||||
|
||||
Οι προγραμματιστές ενεργοποιούν τους Universal Links ρυθμίζοντας τους **Σχετικούς Τομείς** στην καρτέλα Δυνατοτήτων του Xcode ή ελέγχοντας το αρχείο `.entitlements`. Κάθε τομέας προτάσσεται με `applinks:`. Για παράδειγμα, η ρύθμιση του Telegram μπορεί να εμφανίζεται ως εξής:
|
||||
```xml
|
||||
@ -22,7 +22,7 @@ Universal links προσφέρουν μια **αδιάκοπη εμπειρία
|
||||
|
||||
Εάν εργάζεστε με μια μεταγλωττισμένη εφαρμογή, τα δικαιώματα μπορούν να εξαχθούν όπως περιγράφεται σε [αυτήν την οδηγία](extracting-entitlements-from-compiled-application.md).
|
||||
|
||||
### **Ανάκτηση του Αρχείου Συσχέτισης Ιστοσελίδας της Apple App**
|
||||
### **Ανάκτηση του Αρχείου Συσχέτισης Ιστοσελίδας της Apple**
|
||||
|
||||
Το αρχείο `apple-app-site-association` θα πρέπει να ανακτηθεί από τον διακομιστή χρησιμοποιώντας τα domains που καθορίζονται στα δικαιώματα. Βεβαιωθείτε ότι το αρχείο είναι προσβάσιμο μέσω HTTPS απευθείας στο `https://<domain>/apple-app-site-association` (ή `/.well-known/apple-app-site-association`). Εργαλεία όπως ο [Επαληθευτής Αρχείου Συσχέτισης Ιστοσελίδας της Apple (AASA)](https://branch.io/resources/aasa-validator/) μπορούν να βοηθήσουν σε αυτή τη διαδικασία.
|
||||
|
||||
@ -38,13 +38,13 @@ Universal links προσφέρουν μια **αδιάκοπη εμπειρία
|
||||
> done
|
||||
> ```
|
||||
|
||||
### **Διαχείριση των Universal Links στην Εφαρμογή**
|
||||
### **Διαχείριση Καθολικών Συνδέσμων στην Εφαρμογή**
|
||||
|
||||
Η εφαρμογή πρέπει να υλοποιήσει συγκεκριμένες μεθόδους για να διαχειριστεί σωστά τους universal links. Η κύρια μέθοδος που πρέπει να αναζητηθεί είναι η [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Είναι κρίσιμο ότι το σχήμα των URLs που διαχειρίζεται είναι HTTP ή HTTPS, καθώς άλλα δεν θα υποστηρίζονται.
|
||||
Η εφαρμογή πρέπει να υλοποιεί συγκεκριμένες μεθόδους για να διαχειρίζεται σωστά τους καθολικούς συνδέσμους. Η κύρια μέθοδος που πρέπει να αναζητηθεί είναι η [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Είναι κρίσιμο το σχήμα των URLs που διαχειρίζεται να είναι HTTP ή HTTPS, καθώς άλλα δεν θα υποστηρίζονται.
|
||||
|
||||
#### **Επικύρωση της Μεθόδου Διαχείρισης Δεδομένων**
|
||||
|
||||
Όταν ένας universal link ανοίγει μια εφαρμογή, ένα αντικείμενο `NSUserActivity` μεταφέρεται στην εφαρμογή με το URL. Πριν από την επεξεργασία αυτού του URL, είναι απαραίτητο να το επικυρώσετε και να το καθαρίσετε για να αποφευχθούν κίνδυνοι ασφαλείας. Ακολουθεί ένα παράδειγμα σε Swift που δείχνει τη διαδικασία:
|
||||
Όταν ένας καθολικός σύνδεσμος ανοίγει μια εφαρμογή, ένα αντικείμενο `NSUserActivity` μεταφέρεται στην εφαρμογή με το URL. Πριν από την επεξεργασία αυτού του URL, είναι απαραίτητο να το επικυρώσετε και να το καθαρίσετε για να αποφευχθούν κίνδυνοι ασφαλείας. Ακολουθεί ένα παράδειγμα σε Swift που δείχνει τη διαδικασία:
|
||||
```swift
|
||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
|
||||
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
||||
@ -56,7 +56,7 @@ application.open(url, options: [:], completionHandler: nil)
|
||||
return true
|
||||
}
|
||||
```
|
||||
Οι διευθύνσεις URL θα πρέπει να αναλύονται και να επικυρώνονται προσεκτικά, ειδικά αν περιλαμβάνουν παραμέτρους, για να προστατευτούν από πιθανή παραχάραξη ή κακώς διαμορφωμένα δεδομένα. Η API `NSURLComponents` είναι χρήσιμη για αυτόν τον σκοπό, όπως αποδεικνύεται παρακάτω:
|
||||
Οι διευθύνσεις URL θα πρέπει να αναλύονται και να επικυρώνονται προσεκτικά, ειδικά αν περιλαμβάνουν παραμέτρους, για να προστατευτούν από πιθανή παραχάραξη ή κακώς διαμορφωμένα δεδομένα. Η API `NSURLComponents` είναι χρήσιμη για αυτόν τον σκοπό, όπως φαίνεται παρακάτω:
|
||||
```swift
|
||||
func application(_ application: UIApplication,
|
||||
continue userActivity: NSUserActivity,
|
||||
@ -91,21 +91,21 @@ return false
|
||||
| 1 | **Πολύ ευρείες `paths` / `components`** στο αρχείο AASA (π.χ. `"/": "*"` ή χαρακτήρες μπαλαντέρ όπως `"/a/*"`). | • Εξετάστε το κατεβασμένο AASA και αναζητήστε `*`, τελικούς χαρακτήρες `/`, ή κανόνες `{"?": …}`.<br>• Δοκιμάστε να ζητήσετε άγνωστες πηγές που εξακολουθούν να ταιριάζουν με τον κανόνα (`https://domain.com/a/evil?_p_dp=1`). | Hijacking καθολικών συνδέσμων: μια κακόβουλη εφαρμογή iOS που καταχωρεί τον ίδιο τομέα θα μπορούσε να διεκδικήσει όλους αυτούς τους συνδέσμους και να παρουσιάσει phishing UI. Ένα πραγματικό παράδειγμα είναι η αναφορά bug-bounty του Temu.com τον Μάιο του 2025 όπου ένας επιτιθέμενος μπορούσε να ανακατευθύνει οποιοδήποτε `/a/*` μονοπάτι στην εφαρμογή του. |
|
||||
| 2 | **Απουσία επικύρωσης από τον διακομιστή** των μονοπατιών deep-link. | Αφού προσδιορίσετε τα επιτρεπόμενα μονοπάτια, εκδώστε αιτήματα `curl`/Burp σε μη υπάρχουσες πηγές και παρακολουθήστε τους κωδικούς κατάστασης HTTP. Οτιδήποτε άλλο εκτός από `404` (π.χ. 200/302) είναι ύποπτο. | Ένας επιτιθέμενος μπορεί να φιλοξενήσει αυθαίρετο περιεχόμενο πίσω από ένα επιτρεπόμενο μονοπάτι και να το σερβίρει μέσω του νόμιμου τομέα, αυξάνοντας το ποσοστό επιτυχίας του phishing ή της κλοπής session-token. |
|
||||
| 3 | **Διαχείριση URL από την εφαρμογή χωρίς λευκή λίστα scheme/host** (CVE-2024-10474 – Mozilla Focus < 132). | Αναζητήστε άμεσες κλήσεις `openURL:`/`open(_:options:)` ή JavaScript bridges που προωθούν αυθαίρετα URLs. | Εσωτερικές σελίδες μπορούν να μεταφέρουν URLs `myapp://` ή `https://` που παρακάμπτουν τους ελέγχους ασφαλείας της γραμμής διευθύνσεων του προγράμματος περιήγησης, οδηγώντας σε spoofing ή μη προγραμματισμένες προνομιακές ενέργειες. |
|
||||
| 4 | **Χρήση υποτομέων μπαλαντέρ** (`*.example.com`) στην εξουσιοδότηση. | `grep` για `*.` στις εξουσιοδοτήσεις. | Εάν οποιοσδήποτε υποτομέας καταληφθεί (π.χ. μέσω ενός ανενεργού S3 bucket), ο επιτιθέμενος αποκτά αυτόματα τη σύνδεση Καθολικού Συνδέσμου. |
|
||||
| 4 | **Χρήση υποτομέων wildcard** (`*.example.com`) στην εξουσιοδότηση. | `grep` για `*.` στις εξουσιοδοτήσεις. | Εάν οποιοσδήποτε υποτομέας καταληφθεί (π.χ. μέσω ενός ανενεργού S3 bucket), ο επιτιθέμενος αποκτά αυτόματα τη σύνδεση Universal Link. |
|
||||
|
||||
### Γρήγορη Λίστα Ελέγχου
|
||||
|
||||
* [ ] Εξαγάγετε τις εξουσιοδοτήσεις και απαριθμήστε κάθε `applinks:` είσοδο.
|
||||
* [ ] Κατεβάστε το AASA για κάθε είσοδο και ελέγξτε για μπαλαντέρ.
|
||||
* [ ] Κατεβάστε το AASA για κάθε είσοδο και ελέγξτε για χαρακτήρες μπαλαντέρ.
|
||||
* [ ] Επαληθεύστε ότι ο διακομιστής ιστού επιστρέφει **404** για μη καθορισμένα μονοπάτια.
|
||||
* [ ] Στο δυαδικό αρχείο, επιβεβαιώστε ότι **μόνο** οι αξιόπιστοι τομείς/schemes διαχειρίζονται.
|
||||
* [ ] Στο δυαδικό, επιβεβαιώστε ότι **μόνο** οι αξιόπιστοι τομείς/schemes διαχειρίζονται.
|
||||
* [ ] Εάν η εφαρμογή χρησιμοποιεί τη νεότερη σύνταξη `components` (iOS 11+), δοκιμάστε κανόνες παραμέτρων ερωτήματος (`{"?":{…}}`).
|
||||
|
||||
## Εργαλεία
|
||||
|
||||
- [GetUniversal.link](https://getuniversal.link/): Βοηθά στην απλοποίηση της δοκιμής και διαχείρισης των Καθολικών Συνδέσμων και του αρχείου AASA της εφαρμογής σας. Απλά εισάγετε τον τομέα σας για να επαληθεύσετε την ακεραιότητα του αρχείου AASA ή χρησιμοποιήστε τον προσαρμοσμένο πίνακα ελέγχου για να δοκιμάσετε εύκολα τη συμπεριφορά των συνδέσμων. Αυτό το εργαλείο σας βοηθά επίσης να προσδιορίσετε πότε η Apple θα καταχωρήσει ξανά το αρχείο AASA σας.
|
||||
- [Knil](https://github.com/ethanhuang13/knil): Ανοιχτού κώδικα βοηθητικό πρόγραμμα iOS που ανακτά, αναλύει και σας επιτρέπει να **δοκιμάσετε** κάθε Καθολικό Σύνδεσμο που δηλώνεται από έναν τομέα απευθείας στη συσκευή.
|
||||
- [universal-link-validator](https://github.com/urbangems/universal-link-validator): CLI / web validator που εκτελεί αυστηρούς ελέγχους συμμόρφωσης AASA και επισημαίνει επικίνδυνους μπαλαντέρ.
|
||||
- [universal-link-validator](https://github.com/urbangems/universal-link-validator): CLI / web validator που εκτελεί αυστηρούς ελέγχους συμμόρφωσης AASA και επισημαίνει επικίνδυνους χαρακτήρες μπαλαντέρ.
|
||||
|
||||
## Αναφορές
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
## **Αναγνώριση Εκτεθειμένων Υπηρεσιών RPC**
|
||||
|
||||
Η έκθεση υπηρεσιών RPC μέσω TCP, UDP, HTTP και SMB μπορεί να προσδιοριστεί με την ερώτηση της υπηρεσίας εντοπισμού RPC και των ατομικών τελών. Εργαλεία όπως το rpcdump διευκολύνουν την αναγνώριση μοναδικών υπηρεσιών RPC, που υποδεικνύονται από τις τιμές **IFID**, αποκαλύπτοντας λεπτομέρειες υπηρεσίας και δεσμεύσεις επικοινωνίας:
|
||||
Η έκθεση υπηρεσιών RPC μέσω TCP, UDP, HTTP και SMB μπορεί να προσδιοριστεί με την αναζήτηση της υπηρεσίας εντοπισμού RPC και των μεμονωμένων σημείων. Εργαλεία όπως το rpcdump διευκολύνουν την αναγνώριση μοναδικών υπηρεσιών RPC, που υποδεικνύονται από τις τιμές **IFID**, αποκαλύπτοντας λεπτομέρειες υπηρεσίας και δεσμεύσεις επικοινωνίας:
|
||||
```
|
||||
D:\rpctools> rpcdump [-p port] <IP>
|
||||
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
|
||||
@ -26,7 +26,7 @@ Annotation: Messenger Service
|
||||
UUID: 00000000-0000-0000-0000-000000000000
|
||||
Binding: ncadg_ip_udp:<IP>[1028]
|
||||
```
|
||||
Η πρόσβαση στην υπηρεσία εντοπισμού RPC είναι ενεργοποιημένη μέσω συγκεκριμένων πρωτοκόλλων: ncacn_ip_tcp και ncadg_ip_udp για πρόσβαση μέσω της θύρας 135, ncacn_np για συνδέσεις SMB και ncacn_http για επικοινωνία RPC μέσω διαδικτύου. Οι παρακάτω εντολές παραδείγουν τη χρήση των μονάδων Metasploit για την επιθεώρηση και την αλληλεπίδραση με τις υπηρεσίες MSRPC, εστιάζοντας κυρίως στη θύρα 135:
|
||||
Η πρόσβαση στην υπηρεσία εντοπισμού RPC ενεργοποιείται μέσω συγκεκριμένων πρωτοκόλλων: ncacn_ip_tcp και ncadg_ip_udp για πρόσβαση μέσω της θύρας 135, ncacn_np για συνδέσεις SMB και ncacn_http για επικοινωνία RPC μέσω διαδικτύου. Οι παρακάτω εντολές παραδείγουν τη χρήση των μονάδων Metasploit για την επιθεώρηση και την αλληλεπίδραση με τις υπηρεσίες MSRPC, εστιάζοντας κυρίως στη θύρα 135:
|
||||
```bash
|
||||
use auxiliary/scanner/dcerpc/endpoint_mapper
|
||||
use auxiliary/scanner/dcerpc/hidden
|
||||
@ -46,7 +46,7 @@ rpcdump.py <IP> -p 135
|
||||
- **Περιγραφή**: Διεπαφή Υπηρεσιών Καταλόγου LSA (DS), χρησιμοποιείται για την καταμέτρηση τομέων και σχέσεων εμπιστοσύνης.
|
||||
- **IFID**: 12345778-1234-abcd-ef00-0123456789ac
|
||||
- **Named Pipe**: `\pipe\samr`
|
||||
- **Περιγραφή**: Διεπαφή LSA SAMR, χρησιμοποιείται για την πρόσβαση σε δημόσια στοιχεία της βάσης δεδομένων SAM (π.χ. ονόματα χρηστών) και για την παραβίαση κωδικών πρόσβασης χρηστών ανεξαρτήτως πολιτικής κλειδώματος λογαριασμού.
|
||||
- **Περιγραφή**: Διεπαφή LSA SAMR, χρησιμοποιείται για την πρόσβαση σε δημόσια στοιχεία βάσης δεδομένων SAM (π.χ. ονόματα χρηστών) και για την παραβίαση κωδικών πρόσβασης χρηστών ανεξαρτήτως πολιτικής κλειδώματος λογαριασμού.
|
||||
- **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b
|
||||
- **Named Pipe**: `\pipe\atsvc`
|
||||
- **Περιγραφή**: Προγραμματιστής εργασιών, χρησιμοποιείται για την απομακρυσμένη εκτέλεση εντολών.
|
||||
@ -65,7 +65,7 @@ rpcdump.py <IP> -p 135
|
||||
|
||||
### Αναγνώριση διευθύνσεων IP
|
||||
|
||||
Χρησιμοποιώντας [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), που προέρχεται από [Airbus research](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/), είναι δυνατή η κατάχρηση της μεθόδου _**ServerAlive2**_ μέσα στη διεπαφή _**IOXIDResolver**_.
|
||||
Χρησιμοποιώντας [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), προέρχεται από [Airbus research](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/) είναι δυνατή η κατάχρηση της μεθόδου _**ServerAlive2**_ μέσα στη διεπαφή _**IOXIDResolver**_.
|
||||
|
||||
Αυτή η μέθοδος έχει χρησιμοποιηθεί για να αποκτήσει πληροφορίες διεπαφής ως **IPv6** διεύθυνση από το κουτί HTB _APT_. Δείτε [εδώ](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) για την αναφορά του 0xdf APT, περιλαμβάνει μια εναλλακτική μέθοδο χρησιμοποιώντας rpcmap.py από [Impacket](https://github.com/SecureAuthCorp/impacket/) με _stringbinding_ (βλ. παραπάνω).
|
||||
|
||||
@ -85,7 +85,7 @@ rpcdump.py <IP> -p 135
|
||||
|
||||
## Αυτοματοποιημένο Fuzzing Διεπαφών MSRPC
|
||||
|
||||
Οι διεπαφές MS-RPC εκθέτουν μια μεγάλη και συχνά μη τεκμηριωμένη επιφάνεια επίθεσης. Το ανοιχτού κώδικα [MS-RPC-Fuzzer](https://github.com/warpnet/MS-RPC-Fuzzer) PowerShell module βασίζεται στο `NtObjectManager` του James Forshaw για να *δημιουργεί δυναμικά* RPC client stubs από τα μεταδεδομένα διεπαφής που είναι ήδη παρόντα στα Windows binaries. Μόλις υπάρχει ένα stub, το module μπορεί να βομβαρδίσει κάθε διαδικασία με μεταλλαγμένα εισροές και να καταγράψει το αποτέλεσμα, καθιστώντας **επαναλαμβανόμενο, μεγάλης κλίμακας fuzzing των RPC endpoints δυνατό χωρίς να γράψετε ούτε μία γραμμή IDL**.
|
||||
Οι διεπαφές MS-RPC εκθέτουν μια μεγάλη και συχνά μη τεκμηριωμένη επιφάνεια επίθεσης. Το ανοιχτού κώδικα [MS-RPC-Fuzzer](https://github.com/warpnet/MS-RPC-Fuzzer) PowerShell module βασίζεται στο `NtObjectManager` του James Forshaw για να *δημιουργεί δυναμικά* stub πελάτη RPC από τα μεταδεδομένα διεπαφής που είναι ήδη παρόντα σε εκτελέσιμα Windows. Μόλις υπάρχει ένα stub, το module μπορεί να βομβαρδίσει κάθε διαδικασία με παραλλαγμένα εισροές και να καταγράψει το αποτέλεσμα, καθιστώντας **επαναλαμβανόμενο, μεγάλης κλίμακας fuzzing των τελικών σημείων RPC δυνατό χωρίς να γράψει ούτε μία γραμμή IDL**.
|
||||
|
||||
### 1. Καταγραφή των διεπαφών
|
||||
```powershell
|
||||
@ -109,13 +109,13 @@ Invoke-RpcFuzzer -OutPath .\output `
|
||||
```
|
||||
Σχετικές επιλογές:
|
||||
|
||||
* `-MinStrLen` / `-MaxStrLen` – εύρος μεγέθους για παραγόμενες συμβολοσειρές
|
||||
* `-MinIntSize` / `-MaxIntSize` – εύρος τιμών για μεταλλαγμένους ακέραιους (χρήσιμο για δοκιμές υπερχείλισης)
|
||||
* `-MinStrLen` / `-MaxStrLen` – εύρος μεγέθους για τις παραγόμενες συμβολοσειρές
|
||||
* `-MinIntSize` / `-MaxIntSize` – εύρος τιμών για τους μεταλλαγμένους ακέραιους (χρήσιμο για δοκιμές υπερχείλισης)
|
||||
* `-Sorted` – εκτέλεση διαδικασιών με σειρά που σέβεται τις **εξαρτήσεις παραμέτρων** ώστε οι έξοδοι μιας κλήσης να μπορούν να χρησιμεύσουν ως είσοδοι της επόμενης (αυξάνει δραματικά τους προσβάσιμους δρόμους)
|
||||
|
||||
Ο fuzzer υλοποιεί 2 στρατηγικές:
|
||||
|
||||
1. **Default fuzzer** – τυχαίες πρωτότυπες τιμές + προεπιλεγμένες περιπτώσεις για σύνθετους τύπους
|
||||
1. **Default fuzzer** – τυχαίες πρωτότυπες τιμές + προεπιλεγμένα παραδείγματα για σύνθετους τύπους
|
||||
2. **Sorted fuzzer** – παραγόμενη σειρά με γνώση εξαρτήσεων (βλ. `docs/Procedure dependency design.md`)
|
||||
|
||||
Κάθε κλήση καταγράφεται ατομικά στο `log.txt`; μετά από μια κατάρρευση, η **τελευταία γραμμή σας λέει αμέσως ποια διαδικασία προκάλεσε το πρόβλημα**. Το αποτέλεσμα κάθε κλήσης κατηγοριοποιείται επίσης σε τρία αρχεία JSON:
|
||||
@ -134,7 +134,7 @@ Import-DataToNeo4j -Neo4jHost 192.168.56.10:7474 -Neo4jUsername neo4j
|
||||
* Οι διακομιστές RPC, οι διεπαφές και οι διαδικασίες είναι **κόμβοι**
|
||||
* Οι αλληλεπιδράσεις (`ALLOWED`, `DENIED`, `ERROR`) είναι **σχέσεις**
|
||||
|
||||
Οι ερωτήσεις Cypher μπορούν στη συνέχεια να χρησιμοποιηθούν για να εντοπίσουν γρήγορα επικίνδυνες διαδικασίες ή να επαναλάβουν την ακριβή αλυσίδα κλήσεων που προηγήθηκε μιας κατάρρευσης.
|
||||
Οι ερωτήσεις Cypher μπορούν στη συνέχεια να χρησιμοποιηθούν για να εντοπίσουν γρήγορα επικίνδυνες διαδικασίες ή να επαναλάβουν την ακριβή αλυσίδα κλήσεων που προηγήθηκαν μιας κατάρρευσης.
|
||||
|
||||
⚠️ Ο fuzzer είναι *καταστροφικός*: αναμένετε καταρρεύσεις υπηρεσιών και ακόμη και BSODs – πάντα εκτελέστε το σε ένα απομονωμένο στιγμιότυπο VM.
|
||||
|
||||
@ -153,9 +153,9 @@ $rpcinterfaces | Format-Table Name,Uuid,Version,Procedures
|
||||
# Inspect a single procedure (opnum 0)
|
||||
$rpcinterfaces[0].Procedures[0] | Format-List *
|
||||
```
|
||||
Η τυπική έξοδος εκθέτει τους τύπους παραμέτρων ακριβώς όπως εμφανίζονται στο **MIDL** (π.χ. `FC_C_WSTRING`, `FC_LONG`, `FC_BIND_CONTEXT`).
|
||||
Τυπική έξοδος εκθέτει τους τύπους παραμέτρων ακριβώς όπως εμφανίζονται στο **MIDL** (π.χ. `FC_C_WSTRING`, `FC_LONG`, `FC_BIND_CONTEXT`).
|
||||
|
||||
Μόλις γνωρίζετε τη διεπαφή, μπορείτε να **δημιουργήσετε έναν έτοιμο προς μεταγλώττιση πελάτη C#**:
|
||||
Μόλις γνωρίζετε τη διεπαφή μπορείτε να **δημιουργήσετε έναν έτοιμο προς μεταγλώττιση πελάτη C#**:
|
||||
```powershell
|
||||
# Reverse the MS-EFSR (EfsRpc*) interface into C#
|
||||
Format-RpcClient $rpcinterfaces[0] -Namespace MS_EFSR -OutputPath .\MS_EFSR.cs
|
||||
@ -177,27 +177,27 @@ Connect-RpcClient $client -stringbinding 'ncacn_np:127.0.0.1[\\pipe\\efsrpc]' `
|
||||
$ctx = New-Object Marshal.NdrContextHandle
|
||||
$client.EfsRpcOpenFileRaw([ref]$ctx, "\\\127.0.0.1\test", 0)
|
||||
```
|
||||
Authentication (Kerberos / NTLM) και επίπεδα κρυπτογράφησης (`PacketIntegrity`, `PacketPrivacy`, …) μπορούν να παρέχονται απευθείας μέσω του `Connect-RpcClient` cmdlet – ιδανικό για **παράκαμψη των Security Descriptors** που προστατεύουν τις ονομασμένες σωλήνες υψηλών δικαιωμάτων.
|
||||
Authentication (Kerberos / NTLM) και επίπεδα κρυπτογράφησης (`PacketIntegrity`, `PacketPrivacy`, …) μπορούν να παρέχονται απευθείας μέσω του `Connect-RpcClient` cmdlet – ιδανικό για **παράκαμψη των Security Descriptors** που προστατεύουν τις ονομασμένες σωλήνες υψηλών προνομίων.
|
||||
|
||||
### Context-Aware RPC Fuzzing (MS-RPC-Fuzzer)
|
||||
|
||||
Η στατική γνώση διεπαφής είναι καλή, αλλά αυτό που πραγματικά θέλετε είναι **fuzzing καθοδηγούμενο από κάλυψη** που κατανοεί *context handles* και σύνθετες αλυσίδες παραμέτρων. Το έργο ανοιχτού κώδικα **MS-RPC-Fuzzer** αυτοματοποιεί ακριβώς αυτή τη ροή εργασίας:
|
||||
Η στατική γνώση διεπαφής είναι καλή, αλλά αυτό που πραγματικά θέλετε είναι **fuzzing με καθοδήγηση κάλυψης** που κατανοεί *context handles* και σύνθετες αλυσίδες παραμέτρων. Το ανοιχτού κώδικα **MS-RPC-Fuzzer** έργο αυτοματοποιεί ακριβώς αυτή τη ροή εργασίας:
|
||||
|
||||
1. Καταγράψτε κάθε διεπαφή/διαδικασία που εξάγεται από το στοχοθετημένο δυαδικό (`Get-RpcServer`).
|
||||
2. Δημιουργήστε δυναμικούς πελάτες για κάθε διεπαφή (`Format-RpcClient`).
|
||||
3. Τυχαία παραμετροποιήστε τις εισόδους (μήκος ευρέων συμβολοσειρών, εύρη ακέραιων, enums) ενώ σέβεστε τον αρχικό **τύπο NDR**.
|
||||
3. Τυχαία παραμετροποιήστε τις εισόδους (μήκος ευρέων συμβολοσειρών, εύρη ακεραίων, enums) ενώ σέβεστε τον αρχικό **τύπο NDR**.
|
||||
4. Παρακολουθήστε τα *context handles* που επιστρέφονται από μία κλήση για να τροφοδοτήσετε αυτόματα τις επόμενες διαδικασίες.
|
||||
5. Εκτελέστε κλήσεις υψηλού όγκου κατά της επιλεγμένης μεταφοράς (ALPC, TCP, HTTP ή ονομασμένη σωλήνα).
|
||||
6. Καταγράψτε τις καταστάσεις εξόδου / σφαλμάτων / χρονικών ορίων και εξάγετε ένα αρχείο εισαγωγής **Neo4j** για να οπτικοποιήσετε τις σχέσεις *διεπαφή → διαδικασία → παράμετρος* και τις ομάδες κρασάρισμα.
|
||||
6. Καταγράψτε τις καταστάσεις εξόδου / σφαλμάτων / χρονικών ορίων και εξάγετε ένα αρχείο εισαγωγής **Neo4j** για να οπτικοποιήσετε τις σχέσεις *διεπαφή → διαδικασία → παράμετρος* και τις ομάδες κρασάρισμα.
|
||||
|
||||
Example run (named–pipe target):
|
||||
Παράδειγμα εκτέλεσης (στόχος ονομασμένης σωλήνας):
|
||||
```powershell
|
||||
Invoke-MSRPCFuzzer -Pipe "\\.\pipe\efsrpc" -Auth NTLM `
|
||||
-MinLen 1 -MaxLen 0x400 `
|
||||
-Iterations 100000 `
|
||||
-OutDir .\results
|
||||
```
|
||||
Μια μοναδική εγγραφή εκτός ορίων ή απροσδόκητη εξαίρεση θα εμφανιστεί άμεσα με το ακριβές opnum + το fuzzed payload που την προκάλεσε – τέλειο σημείο εκκίνησης για μια σταθερή απόδειξη έννοιας εκμετάλλευσης.
|
||||
Μια μοναδική εγγραφή εκτός ορίων ή απροσδόκητη εξαίρεση θα εμφανιστεί αμέσως με το ακριβές opnum + το fuzzed payload που την προκάλεσε – τέλεια αφετηρία για μια σταθερή απόδειξη έννοιας εκμετάλλευσης.
|
||||
|
||||
> ⚠️ Πολλές υπηρεσίες RPC εκτελούνται σε διαδικασίες που τρέχουν ως **NT AUTHORITY\SYSTEM**. Οποιοδήποτε πρόβλημα ασφάλειας μνήμης εδώ συνήθως μεταφράζεται σε τοπική κλιμάκωση προνομίων ή (όταν εκτίθεται μέσω SMB/135) *εκτέλεση απομακρυσμένου κώδικα*.
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
**Active Directory** λειτουργεί ως θεμελιώδης τεχνολογία, επιτρέποντας στους **διαχειριστές δικτύου** να δημιουργούν και να διαχειρίζονται αποτελεσματικά **τομείς**, **χρήστες** και **αντικείμενα** εντός ενός δικτύου. Είναι σχεδιασμένο να κλιμακώνεται, διευκολύνοντας την οργάνωση ενός εκτενούς αριθμού χρηστών σε διαχειρίσιμες **ομάδες** και **υποομάδες**, ενώ ελέγχει τα **δικαιώματα πρόσβασης** σε διάφορα επίπεδα.
|
||||
|
||||
Η δομή του **Active Directory** αποτελείται από τρία κύρια επίπεδα: **τομείς**, **δέντρα** και **δάση**. Ένας **τομέας** περιλαμβάνει μια συλλογή αντικειμένων, όπως **χρήστες** ή **συσκευές**, που μοιράζονται μια κοινή βάση δεδομένων. Τα **δέντρα** είναι ομάδες αυτών των τομέων που συνδέονται μέσω μιας κοινής δομής, και ένα **δάσος** αντιπροσωπεύει τη συλλογή πολλών δέντρων, διασυνδεδεμένων μέσω **σχέσεων εμπιστοσύνης**, σχηματίζοντας το ανώτατο επίπεδο της οργανωτικής δομής. Συγκεκριμένα **δικαιώματα πρόσβασης** και **δικαιώματα επικοινωνίας** μπορούν να καθοριστούν σε καθένα από αυτά τα επίπεδα.
|
||||
Η δομή του **Active Directory** αποτελείται από τρία κύρια επίπεδα: **τομείς**, **δέντρα** και **δάση**. Ένας **τομέας** περιλαμβάνει μια συλλογή αντικειμένων, όπως **χρήστες** ή **συσκευές**, που μοιράζονται μια κοινή βάση δεδομένων. Τα **δέντρα** είναι ομάδες αυτών των τομέων που συνδέονται μέσω μιας κοινής δομής, και ένα **δάσος** αντιπροσωπεύει τη συλλογή πολλών δέντρων, διασυνδεδεμένων μέσω **σχέσεων εμπιστοσύνης**, σχηματίζοντας το ανώτατο επίπεδο της οργανωτικής δομής. Συγκεκριμένα **δικαιώματα πρόσβασης** και **επικοινωνίας** μπορούν να καθοριστούν σε καθένα από αυτά τα επίπεδα.
|
||||
|
||||
Βασικές έννοιες εντός του **Active Directory** περιλαμβάνουν:
|
||||
|
||||
@ -19,17 +19,17 @@
|
||||
**Υπηρεσίες Τομέα Active Directory (AD DS)** περιλαμβάνουν μια σειρά υπηρεσιών κρίσιμων για την κεντρική διαχείριση και επικοινωνία εντός ενός δικτύου. Αυτές οι υπηρεσίες περιλαμβάνουν:
|
||||
|
||||
1. **Υπηρεσίες Τομέα** – Κεντρικοποιεί την αποθήκευση δεδομένων και διαχειρίζεται τις αλληλεπιδράσεις μεταξύ **χρηστών** και **τομέων**, συμπεριλαμβανομένων των λειτουργιών **αυθεντικοποίησης** και **αναζήτησης**.
|
||||
2. **Υπηρεσίες Πιστοποιητικών** – Εποπτεύει τη δημιουργία, διανομή και διαχείριση ασφαλών **ψηφιακών πιστοποιητικών**.
|
||||
2. **Υπηρεσίες Πιστοποίησης** – Εποπτεύει τη δημιουργία, διανομή και διαχείριση ασφαλών **ψηφιακών πιστοποιητικών**.
|
||||
3. **Ελαφριές Υπηρεσίες Καταλόγου** – Υποστηρίζει εφαρμογές που ενεργοποιούνται από τον κατάλογο μέσω του **πρωτοκόλλου LDAP**.
|
||||
4. **Υπηρεσίες Ομοσπονδίας Καταλόγου** – Παρέχει δυνατότητες **ενιαίας σύνδεσης** για την αυθεντικοποίηση χρηστών σε πολλές διαδικτυακές εφαρμογές σε μία μόνο συνεδρία.
|
||||
5. **Διαχείριση Δικαιωμάτων** – Βοηθά στην προστασία υλικού πνευματικών δικαιωμάτων ρυθμίζοντας τη μη εξουσιοδοτημένη διανομή και χρήση του.
|
||||
6. **Υπηρεσία DNS** – Κρίσιμη για την επίλυση **ονόματων τομέων**.
|
||||
|
||||
Για μια πιο λεπτομερή εξήγηση, ελέγξτε: [**TechTerms - Ορισμός Active Directory**](https://techterms.com/definition/active_directory)
|
||||
Για μια πιο λεπτομερή εξήγηση, δείτε: [**TechTerms - Ορισμός Active Directory**](https://techterms.com/definition/active_directory)
|
||||
|
||||
### **Kerberos Authentication**
|
||||
|
||||
Για να μάθετε πώς να **επιτίθεστε σε ένα AD**, πρέπει να **κατανοήσετε** πολύ καλά τη **διαδικασία αυθεντικοποίησης Kerberos**.\
|
||||
Για να μάθετε πώς να **επιτεθείτε σε ένα AD**, πρέπει να **κατανοήσετε** πολύ καλά τη **διαδικασία αυθεντικοποίησης Kerberos**.\
|
||||
[**Διαβάστε αυτή τη σελίδα αν δεν ξέρετε πώς λειτουργεί.**](kerberos-authentication.md)
|
||||
|
||||
## Cheat Sheet
|
||||
@ -138,7 +138,7 @@ password-spraying.md
|
||||
|
||||
### Κλοπή NTLM Creds
|
||||
|
||||
Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινόχρηστους φακέλους** με τον **null ή guest user** μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο αποκτηθούν θα **ενεργοποιήσουν μια NTLM αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε:
|
||||
Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινόχρηστα** με τον **null ή guest user** μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο αποκτηθούν θα **ενεργοποιήσουν μια NTLM αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε:
|
||||
|
||||
{{#ref}}
|
||||
../ntlm/places-to-steal-ntlm-creds.md
|
||||
@ -162,7 +162,7 @@ kerberos-double-hop-problem.md
|
||||
|
||||
- Μπορείτε να χρησιμοποιήσετε το [**CMD για να εκτελέσετε μια βασική αναγνώριση**](../basic-cmd-for-pentesters.md#domain-info)
|
||||
- Μπορείτε επίσης να χρησιμοποιήσετε [**powershell για αναγνώριση**](../basic-powershell-for-pentesters/index.html) που θα είναι πιο διακριτικό
|
||||
- Μπορείτε επίσης να [**χρησιμοποιήσετε το powerview**](../basic-powershell-for-pentesters/powerview.md) για να εξαγάγετε πιο λεπτομερείς πληροφορίες
|
||||
- Μπορείτε επίσης να [**χρησιμοποιήσετε το powerview**](../basic-powershell-for-pentesters/powerview.md) για να εξάγετε πιο λεπτομερείς πληροφορίες
|
||||
- Ένα άλλο καταπληκτικό εργαλείο για αναγνώριση σε ένα active directory είναι το [**BloodHound**](bloodhound.md). Δεν είναι **πολύ διακριτικό** (ανάλογα με τις μεθόδους συλλογής που χρησιμοποιείτε), αλλά **αν δεν σας νοιάζει** γι' αυτό, θα πρέπει σίγουρα να το δοκιμάσετε. Βρείτε πού μπορούν οι χρήστες να RDP, βρείτε διαδρομές σε άλλες ομάδες, κ.λπ.
|
||||
- **Άλλα αυτοματοποιημένα εργαλεία καταγραφής AD είναι:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.**
|
||||
- [**DNS records του AD**](ad-dns-records.md) καθώς μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες.
|
||||
@ -176,7 +176,7 @@ kerberos-double-hop-problem.md
|
||||
|
||||
Είναι πολύ εύκολο να αποκτήσετε όλα τα ονόματα χρηστών του τομέα από τα Windows (`net user /domain`, `Get-DomainUser` ή `wmic useraccount get name,sid`). Στο Linux, μπορείτε να χρησιμοποιήσετε: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` ή `enum4linux -a -u "user" -p "password" <DC IP>`
|
||||
|
||||
> Ακόμα και αν αυτή η ενότητα καταγραφής φαίνεται μικρή, αυτό είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα.
|
||||
> Ακόμα και αν αυτή η ενότητα καταγραφής φαίνεται μικρή, είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα.
|
||||
|
||||
### Kerberoast
|
||||
|
||||
@ -194,13 +194,13 @@ kerberoast.md
|
||||
|
||||
### Τοπική Κλιμάκωση Προνομίων
|
||||
|
||||
Αν έχετε συμβιβαστεί πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dumpάρετε hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM).
|
||||
Αν έχετε συμβιβαστεί πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dump hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM).
|
||||
|
||||
Υπάρχει μια ολοκληρωμένη σελίδα σε αυτό το βιβλίο σχετικά με [**την τοπική κλιμάκωση προνομίων στα Windows**](../windows-local-privilege-escalation/index.html) και μια [**λίστα ελέγχου**](../checklist-windows-privilege-escalation.md). Επίσης, μην ξεχάσετε να χρησιμοποιήσετε [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
|
||||
|
||||
### Τρέχοντα Εισιτήρια Συνεδρίας
|
||||
|
||||
Είναι πολύ **απίθανο** να βρείτε **εισιτήρια** στον τρέχοντα χρήστη **που σας δίνουν άδεια πρόσβασης** σε απροσδόκητους πόρους, αλλά μπορείτε να ελέγξετε:
|
||||
Είναι πολύ **απίθανο** να βρείτε **εισιτήρια** στον τρέχοντα χρήστη **που να σας δίνουν άδεια πρόσβασης** σε απροσδόκητους πόρους, αλλά μπορείτε να ελέγξετε:
|
||||
```bash
|
||||
## List all tickets (if not admin, only current user tickets)
|
||||
.\Rubeus.exe triage
|
||||
@ -210,17 +210,17 @@ kerberoast.md
|
||||
```
|
||||
### NTLM Relay
|
||||
|
||||
Αν έχετε καταφέρει να καταγράψετε το active directory, θα έχετε **περισσότερα emails και καλύτερη κατανόηση του δικτύου**. Μπορείτε να αναγκάσετε NTLM [**relay attacks**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.**
|
||||
Αν έχετε καταφέρει να καταγράψετε το active directory θα έχετε **περισσότερα emails και καλύτερη κατανόηση του δικτύου**. Μπορεί να είστε σε θέση να αναγκάσετε NTLM [**relay attacks**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)**.**
|
||||
|
||||
### Looks for Creds in Computer Shares | SMB Shares
|
||||
|
||||
Τώρα που έχετε κάποιες βασικές διαπιστεύσεις, θα πρέπει να ελέγξετε αν μπορείτε να **βρείτε** οποιαδήποτε **ενδιαφέροντα αρχεία που μοιράζονται μέσα στο AD**. Μπορείτε να το κάνετε αυτό χειροκίνητα, αλλά είναι μια πολύ βαρετή επαναλαμβανόμενη εργασία (και περισσότερο αν βρείτε εκατοντάδες έγγραφα που πρέπει να ελέγξετε).
|
||||
Τώρα που έχετε κάποιες βασικές διαπιστεύσεις θα πρέπει να ελέγξετε αν μπορείτε να **βρείτε** οποιαδήποτε **ενδιαφέροντα αρχεία που μοιράζονται μέσα στο AD**. Μπορείτε να το κάνετε αυτό χειροκίνητα αλλά είναι μια πολύ βαρετή επαναλαμβανόμενη εργασία (και περισσότερο αν βρείτε εκατοντάδες έγγραφα που πρέπει να ελέγξετε).
|
||||
|
||||
[**Follow this link to learn about tools you could use.**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search)
|
||||
|
||||
### Steal NTLM Creds
|
||||
|
||||
Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινόχρηστους φακέλους**, μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα SCF αρχείο) που αν με κάποιο τρόπο προσπελαστούν θα **ενεργοποιήσουν μια NTLM αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε:
|
||||
Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινές χρήσεις** μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο προσπελαστούν θα **προκαλέσουν μια NTLM αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε:
|
||||
|
||||
{{#ref}}
|
||||
../ntlm/places-to-steal-ntlm-creds.md
|
||||
@ -236,23 +236,23 @@ printnightmare.md
|
||||
|
||||
## Privilege escalation on Active Directory WITH privileged credentials/session
|
||||
|
||||
**Για τις παρακάτω τεχνικές, ένας κανονικός χρήστης τομέα δεν είναι αρκετός, χρειάζεστε κάποιες ειδικές προνόμια/διαπιστεύσεις για να εκτελέσετε αυτές τις επιθέσεις.**
|
||||
**Για τις παρακάτω τεχνικές ένας κανονικός χρήστης τομέα δεν είναι αρκετός, χρειάζεστε κάποιες ειδικές προνόμια/διαπιστεύσεις για να εκτελέσετε αυτές τις επιθέσεις.**
|
||||
|
||||
### Hash extraction
|
||||
|
||||
Ελπίζω να έχετε καταφέρει να **συμβιβάσετε κάποιο τοπικό λογαριασμό διαχειριστή** χρησιμοποιώντας [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) συμπεριλαμβανομένων των relaying, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [escalating privileges locally](../windows-local-privilege-escalation/index.html).\
|
||||
Τότε, είναι ώρα να εξάγετε όλους τους hash στη μνήμη και τοπικά.\
|
||||
Ελπίζω να έχετε καταφέρει να **συμβιβάσετε κάποιο τοπικό διαχειριστή** χρησιμοποιώντας [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) συμπεριλαμβανομένων των relaying, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [escalating privileges locally](../windows-local-privilege-escalation/index.html).\
|
||||
Τότε, είναι ώρα να εξάγετε όλους τους κατακερματισμούς από τη μνήμη και τοπικά.\
|
||||
[**Read this page about different ways to obtain the hashes.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
|
||||
|
||||
### Pass the Hash
|
||||
|
||||
**Μόλις έχετε τον hash ενός χρήστη**, μπορείτε να τον χρησιμοποιήσετε για να **παριστάνετε** αυτόν.\
|
||||
Πρέπει να χρησιμοποιήσετε κάποιο **εργαλείο** που θα **εκτελέσει** την **NTLM αυθεντικοποίηση χρησιμοποιώντας** αυτόν τον **hash**, **ή** μπορείτε να δημιουργήσετε μια νέα **sessionlogon** και να **εισάγετε** αυτόν τον **hash** μέσα στο **LSASS**, έτσι ώστε όταν οποιαδήποτε **NTLM αυθεντικοποίηση εκτελείται**, αυτός ο **hash θα χρησιμοποιηθεί.** Η τελευταία επιλογή είναι αυτό που κάνει το mimikatz.\
|
||||
**Μόλις έχετε τον κατακερματισμό ενός χρήστη**, μπορείτε να τον χρησιμοποιήσετε για να **παριστάνετε** αυτόν.\
|
||||
Πρέπει να χρησιμοποιήσετε κάποιο **εργαλείο** που θα **εκτελέσει** την **NTLM αυθεντικοποίηση χρησιμοποιώντας** αυτόν τον **κατακερματισμό**, **ή** μπορείτε να δημιουργήσετε μια νέα **sessionlogon** και να **εισάγετε** αυτόν τον **κατακερματισμό** μέσα στο **LSASS**, έτσι ώστε όταν οποιαδήποτε **NTLM αυθεντικοποίηση εκτελείται**, αυτός ο **κατακερματισμός θα χρησιμοποιηθεί.** Η τελευταία επιλογή είναι αυτό που κάνει το mimikatz.\
|
||||
[**Read this page for more information.**](../ntlm/index.html#pass-the-hash)
|
||||
|
||||
### Over Pass the Hash/Pass the Key
|
||||
|
||||
Αυτή η επίθεση στοχεύει να **χρησιμοποιήσει τον NTLM hash του χρήστη για να ζητήσει Kerberos tickets**, ως εναλλακτική στην κοινή Pass The Hash μέσω του πρωτοκόλλου NTLM. Επομένως, αυτό θα μπορούσε να είναι ιδιαίτερα **χρήσιμο σε δίκτυα όπου το πρωτόκολλο NTLM είναι απενεργοποιημένο** και μόνο **Kerberos επιτρέπεται** ως πρωτόκολλο αυθεντικοποίησης.
|
||||
Αυτή η επίθεση στοχεύει να **χρησιμοποιήσει τον κατακερματισμό NTLM του χρήστη για να ζητήσει εισιτήρια Kerberos**, ως εναλλακτική στην κοινή Pass The Hash μέσω του πρωτοκόλλου NTLM. Επομένως, αυτό θα μπορούσε να είναι ιδιαίτερα **χρήσιμο σε δίκτυα όπου το πρωτόκολλο NTLM είναι απενεργοποιημένο** και μόνο **Kerberos επιτρέπεται** ως πρωτόκολλο αυθεντικοποίησης.
|
||||
|
||||
{{#ref}}
|
||||
over-pass-the-hash-pass-the-key.md
|
||||
@ -260,7 +260,7 @@ over-pass-the-hash-pass-the-key.md
|
||||
|
||||
### Pass the Ticket
|
||||
|
||||
Στη μέθοδο επίθεσης **Pass The Ticket (PTT)**, οι επιτιθέμενοι **κλέβουν ένα εισιτήριο αυθεντικοποίησης χρήστη** αντί για τον κωδικό πρόσβασης ή τις τιμές hash τους. Αυτό το κλεμμένο εισιτήριο χρησιμοποιείται στη συνέχεια για να **παριστάνει τον χρήστη**, αποκτώντας μη εξουσιοδοτημένη πρόσβαση σε πόρους και υπηρεσίες εντός ενός δικτύου.
|
||||
Στη μέθοδο επίθεσης **Pass The Ticket (PTT)**, οι επιτιθέμενοι **κλέβουν ένα εισιτήριο αυθεντικοποίησης χρήστη** αντί για τον κωδικό πρόσβασης ή τις τιμές κατακερματισμού τους. Αυτό το κλεμμένο εισιτήριο χρησιμοποιείται στη συνέχεια για να **παριστάνει τον χρήστη**, αποκτώντας μη εξουσιοδοτημένη πρόσβαση σε πόρους και υπηρεσίες εντός ενός δικτύου.
|
||||
|
||||
{{#ref}}
|
||||
pass-the-ticket.md
|
||||
@ -268,7 +268,7 @@ pass-the-ticket.md
|
||||
|
||||
### Credentials Reuse
|
||||
|
||||
Αν έχετε τον **hash** ή τον **κωδικό πρόσβασης** ενός **τοπικού διαχειριστή**, θα πρέπει να προσπαθήσετε να **συνδεθείτε τοπικά** σε άλλους **υπολογιστές** με αυτόν.
|
||||
Αν έχετε τον **κατακερματισμό** ή τον **κωδικό πρόσβασης** ενός **τοπικού διαχειριστή** θα πρέπει να προσπαθήσετε να **συνδεθείτε τοπικά** σε άλλους **υπολογιστές** με αυτόν.
|
||||
```bash
|
||||
# Local Auth Spray (once you found some local admin pass or hash)
|
||||
## --local-auth flag indicate to only try 1 time per machine
|
||||
@ -291,7 +291,7 @@ abusing-ad-mssql.md
|
||||
|
||||
Εάν βρείτε οποιοδήποτε αντικείμενο Υπολογιστή με το χαρακτηριστικό [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) και έχετε δικαιώματα τομέα στον υπολογιστή, θα είστε σε θέση να εξάγετε TGTs από τη μνήμη κάθε χρήστη που συνδέεται στον υπολογιστή.\
|
||||
Έτσι, αν ένας **Domain Admin συνδεθεί στον υπολογιστή**, θα είστε σε θέση να εξάγετε το TGT του και να τον προσποιηθείτε χρησιμοποιώντας [Pass the Ticket](pass-the-ticket.md).\
|
||||
Χάρη στην περιορισμένη αντιπροσώπευση, θα μπορούσατε ακόμη και να **συμβιβάσετε αυτόματα έναν εκτυπωτή** (ελπίζουμε να είναι ένας DC).
|
||||
Χάρη στην περιορισμένη αντιπροσώπευση, θα μπορούσατε ακόμη και να **συμβιβάσετε αυτόματα έναν Εκτυπωτή** (ελπίζουμε να είναι ένας DC).
|
||||
|
||||
{{#ref}}
|
||||
unconstrained-delegation.md
|
||||
@ -300,13 +300,13 @@ unconstrained-delegation.md
|
||||
### Περιορισμένη Αντιπροσώπευση
|
||||
|
||||
Εάν ένας χρήστης ή υπολογιστής επιτρέπεται για "Περιορισμένη Αντιπροσώπευση", θα είναι σε θέση να **προσποιηθεί οποιονδήποτε χρήστη για να αποκτήσει πρόσβαση σε ορισμένες υπηρεσίες σε έναν υπολογιστή**.\
|
||||
Έτσι, αν **συμβιβάσετε το hash** αυτού του χρήστη/υπολογιστή, θα είστε σε θέση να **προσποιηθείτε οποιονδήποτε χρήστη** (ακόμα και τους διαχειριστές τομέα) για να αποκτήσετε πρόσβαση σε ορισμένες υπηρεσίες.
|
||||
Έτσι, αν **συμβιβάσετε το hash** αυτού του χρήστη/υπολογιστή θα είστε σε θέση να **προσποιηθείτε οποιονδήποτε χρήστη** (ακόμη και τους διαχειριστές τομέα) για να αποκτήσετε πρόσβαση σε ορισμένες υπηρεσίες.
|
||||
|
||||
{{#ref}}
|
||||
constrained-delegation.md
|
||||
{{#endref}}
|
||||
|
||||
### Αντιπροσώπευση με βάση τους πόρους
|
||||
### Αντιπροσώπευση Βασισμένη σε Πόρους
|
||||
|
||||
Έχοντας **WRITE** δικαίωμα σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή επιτρέπει την απόκτηση εκτέλεσης κώδικα με **υψηλά δικαιώματα**:
|
||||
|
||||
@ -316,13 +316,13 @@ resource-based-constrained-delegation.md
|
||||
|
||||
### Κατάχρηση Δικαιωμάτων/ACLs
|
||||
|
||||
Ο συμβιβασμένος χρήστης θα μπορούσε να έχει κάποια **ενδιαφέροντα δικαιώματα πάνω σε ορισμένα αντικείμενα τομέα** που θα μπορούσαν να σας επιτρέψουν να **κινήσετε** πλάγια/**να κλιμακώσετε** δικαιώματα.
|
||||
Ο συμβιβασμένος χρήστης θα μπορούσε να έχει κάποια **ενδιαφέροντα δικαιώματα πάνω σε ορισμένα αντικείμενα τομέα** που θα μπορούσαν να σας επιτρέψουν να **κινηθείτε** πλάγια/**να κλιμακώσετε** δικαιώματα.
|
||||
|
||||
{{#ref}}
|
||||
acl-persistence-abuse/
|
||||
{{#endref}}
|
||||
|
||||
### Κατάχρηση υπηρεσίας Printer Spooler
|
||||
### Κατάχρηση Υπηρεσίας Εκτυπωτή Spooler
|
||||
|
||||
Η ανακάλυψη μιας **υπηρεσίας Spool που ακούει** εντός του τομέα μπορεί να **καταχραστεί** για να **αποκτήσει νέες διαπιστεύσεις** και **να κλιμακώσει δικαιώματα**.
|
||||
|
||||
@ -330,9 +330,9 @@ acl-persistence-abuse/
|
||||
printers-spooler-service-abuse.md
|
||||
{{#endref}}
|
||||
|
||||
### Κατάχρηση συνεδριών τρίτων
|
||||
### Κατάχρηση Συνεδριών Τρίτων
|
||||
|
||||
Εάν **άλλοι χρήστες** **πρόσβαση** στη **συμβιβασμένη** μηχανή, είναι πιθανό να **συγκεντρώσετε διαπιστεύσεις από τη μνήμη** και ακόμη και να **εισάγετε σήματα στις διαδικασίες τους** για να τους προσποιηθείτε.\
|
||||
Εάν **άλλοι χρήστες** **πρόσβαση** στη **συμβιβασμένη** μηχανή, είναι πιθανό να **συγκεντρώσουν διαπιστεύσεις από τη μνήμη** και ακόμη και να **εισάγουν σήματα στις διαδικασίες τους** για να τους προσποιηθούν.\
|
||||
Συνήθως οι χρήστες θα έχουν πρόσβαση στο σύστημα μέσω RDP, οπότε εδώ έχετε πώς να εκτελέσετε μερικές επιθέσεις σε τρίτες συνεδρίες RDP:
|
||||
|
||||
{{#ref}}
|
||||
@ -341,7 +341,7 @@ rdp-sessions-abuse.md
|
||||
|
||||
### LAPS
|
||||
|
||||
Το **LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, γίνεται δυνατή η μεταπήδηση σε άλλους υπολογιστές.
|
||||
Το **LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης Διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, η μετατόπιση σε άλλους υπολογιστές καθίσταται δυνατή.
|
||||
|
||||
{{#ref}}
|
||||
laps.md
|
||||
@ -365,7 +365,7 @@ ad-certificates/domain-escalation.md
|
||||
|
||||
## Μετά την εκμετάλλευση με λογαριασμό υψηλών δικαιωμάτων
|
||||
|
||||
### Εξαγωγή Διαπιστευτηρίων Τομέα
|
||||
### Εξαγωγή Διαπιστεύσεων Τομέα
|
||||
|
||||
Μόλις αποκτήσετε δικαιώματα **Domain Admin** ή ακόμα καλύτερα **Enterprise Admin**, μπορείτε να **εξάγετε** τη **βάση δεδομένων τομέα**: _ntds.dit_.
|
||||
|
||||
@ -398,7 +398,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
|
||||
|
||||
### Silver Ticket
|
||||
|
||||
Η **επίθεση Silver Ticket** δημιουργεί ένα **νόμιμο εισιτήριο Ticket Granting Service (TGS)** για μια συγκεκριμένη υπηρεσία χρησιμοποιώντας το **NTLM hash** (για παράδειγμα, το **hash του λογαριασμού PC**). Αυτή η μέθοδος χρησιμοποιείται για να **αποκτήσει πρόσβαση στα δικαιώματα υπηρεσίας**.
|
||||
Η **επίθεση Silver Ticket** δημιουργεί ένα **νόμιμο εισιτήριο Υπηρεσίας Εισιτηρίων (TGS)** για μια συγκεκριμένη υπηρεσία χρησιμοποιώντας το **NTLM hash** (για παράδειγμα, το **hash του λογαριασμού PC**). Αυτή η μέθοδος χρησιμοποιείται για να **αποκτήσει πρόσβαση στα δικαιώματα υπηρεσίας**.
|
||||
|
||||
{{#ref}}
|
||||
silver-ticket.md
|
||||
@ -406,7 +406,7 @@ silver-ticket.md
|
||||
|
||||
### Golden Ticket
|
||||
|
||||
Μια **επίθεση Golden Ticket** περιλαμβάνει έναν επιτιθέμενο που αποκτά πρόσβαση στο **NTLM hash του λογαριασμού krbtgt** σε ένα περιβάλλον Active Directory (AD). Αυτός ο λογαριασμός είναι ειδικός επειδή χρησιμοποιείται για να υπογράψει όλα τα **Ticket Granting Tickets (TGTs)**, τα οποία είναι απαραίτητα για την αυθεντικοποίηση εντός του δικτύου AD.
|
||||
Μια **επίθεση Golden Ticket** περιλαμβάνει έναν επιτιθέμενο που αποκτά πρόσβαση στο **NTLM hash του λογαριασμού krbtgt** σε ένα περιβάλλον Active Directory (AD). Αυτός ο λογαριασμός είναι ειδικός επειδή χρησιμοποιείται για να υπογράψει όλα τα **Εισιτήρια Υπηρεσίας Εισιτηρίων (TGTs)**, τα οποία είναι απαραίτητα για την αυθεντικοποίηση εντός του δικτύου AD.
|
||||
|
||||
Μόλις ο επιτιθέμενος αποκτήσει αυτό το hash, μπορεί να δημιουργήσει **TGTs** για οποιονδήποτε λογαριασμό επιλέξει (επίθεση Silver ticket).
|
||||
|
||||
@ -422,9 +422,9 @@ golden-ticket.md
|
||||
diamond-ticket.md
|
||||
{{#endref}}
|
||||
|
||||
### **Επιμονή Λογαριασμού Πιστοποιητικών**
|
||||
### **Επιμονή Λογαριασμών Πιστοποιητικών**
|
||||
|
||||
**Έχοντας πιστοποιητικά ενός λογαριασμού ή έχοντας τη δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στο λογαριασμό των χρηστών (ακόμα και αν αλλάξει τον κωδικό πρόσβασης):
|
||||
**Έχοντας πιστοποιητικά ενός λογαριασμού ή έχοντας τη δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στον λογαριασμό των χρηστών (ακόμη και αν αλλάξει τον κωδικό πρόσβασης):
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/account-persistence.md
|
||||
@ -432,7 +432,7 @@ ad-certificates/account-persistence.md
|
||||
|
||||
### **Επιμονή Πιστοποιητικών Τομέα**
|
||||
|
||||
**Η χρήση πιστοποιητικών είναι επίσης δυνατή για να επιμείνετε με υψηλά δικαιώματα μέσα στο τομέα:**
|
||||
**Η χρήση πιστοποιητικών είναι επίσης δυνατή για να επιμείνετε με υψηλά δικαιώματα μέσα στον τομέα:**
|
||||
|
||||
{{#ref}}
|
||||
ad-certificates/domain-persistence.md
|
||||
@ -440,13 +440,13 @@ ad-certificates/domain-persistence.md
|
||||
|
||||
### Ομάδα AdminSDHolder
|
||||
|
||||
Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί; αν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται να προστατεύσει, μπορεί έτσι να έχει αντίκτυπο, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά.
|
||||
Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί· εάν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται να προστατεύσει, μπορεί έτσι να έχει αντίκτυπο, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά.
|
||||
|
||||
[**Περισσότερες πληροφορίες σχετικά με την Ομάδα AdminDSHolder εδώ.**](privileged-groups-and-token-privileges.md#adminsdholder-group)
|
||||
|
||||
### Διαπιστευτήρια DSRM
|
||||
### Διαπιστεύσεις DSRM
|
||||
|
||||
Μέσα σε κάθε **Domain Controller (DC)**, υπάρχει ένας **τοπικός διαχειριστής** λογαριασμός. Αποκτώντας δικαιώματα διαχειριστή σε μια τέτοια μηχανή, το hash του τοπικού διαχειριστή μπορεί να εξαχθεί χρησιμοποιώντας **mimikatz**. Ακολουθώντας αυτό, είναι απαραίτητη μια τροποποίηση μητρώου για να **επιτραπεί η χρήση αυτού του κωδικού πρόσβασης**, επιτρέποντας την απομακρυσμένη πρόσβαση στο λογαριασμό του τοπικού διαχειριστή.
|
||||
Μέσα σε κάθε **Domain Controller (DC)**, υπάρχει ένας **τοπικός διαχειριστής** λογαριασμός. Αποκτώντας δικαιώματα διαχειριστή σε μια τέτοια μηχανή, το hash του τοπικού Διαχειριστή μπορεί να εξαχθεί χρησιμοποιώντας **mimikatz**. Ακολουθώντας αυτό, είναι απαραίτητη μια τροποποίηση μητρώου για να **επιτραπεί η χρήση αυτού του κωδικού πρόσβασης**, επιτρέποντας την απομακρυσμένη πρόσβαση στον τοπικό λογαριασμό Διαχειριστή.
|
||||
|
||||
{{#ref}}
|
||||
dsrm-credentials.md
|
||||
@ -503,7 +503,7 @@ dcshadow.md
|
||||
laps.md
|
||||
{{#endref}}
|
||||
|
||||
## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστευμένοι Τομείς
|
||||
## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστευμένες Σχέσεις Τομέα
|
||||
|
||||
Η Microsoft βλέπει το **Δάσος** ως το όριο ασφαλείας. Αυτό σημαίνει ότι **η κατάχρηση ενός μόνο τομέα θα μπορούσε ενδεχομένως να οδηγήσει σε ολόκληρο το Δάσος να είναι συμβιβασμένο**.
|
||||
|
||||
@ -515,9 +515,9 @@ laps.md
|
||||
|
||||
**Βήματα**:
|
||||
|
||||
1. Ένας **υπολογιστής πελάτης** στον **Τομέα 1** ξεκινά τη διαδικασία χρησιμοποιώντας το **NTLM hash** του για να ζητήσει ένα **Ticket Granting Ticket (TGT)** από τον **Domain Controller (DC1)** του.
|
||||
1. Ένας **υπολογιστής-πελάτης** στον **Τομέα 1** ξεκινά τη διαδικασία χρησιμοποιώντας το **NTLM hash** του για να ζητήσει ένα **Ticket Granting Ticket (TGT)** από τον **Domain Controller (DC1)** του.
|
||||
2. Ο DC1 εκδίδει ένα νέο TGT εάν ο πελάτης αυθεντικοποιηθεί επιτυχώς.
|
||||
3. Ο πελάτης στη συνέχεια ζητά ένα **inter-realm TGT** από τον DC1, το οποίο είναι απαραίτητο για να έχει πρόσβαση σε πόρους στον **Τομέα 2**.
|
||||
3. Ο πελάτης στη συνέχεια ζητά ένα **inter-realm TGT** από τον DC1, το οποίο είναι απαραίτητο για να αποκτήσει πρόσβαση σε πόρους στον **Τομέα 2**.
|
||||
4. Το inter-realm TGT είναι κρυπτογραφημένο με ένα **κλειδί εμπιστοσύνης** που μοιράζονται οι DC1 και DC2 ως μέρος της διπλής εμπιστοσύνης τομέα.
|
||||
5. Ο πελάτης παίρνει το inter-realm TGT στον **Domain Controller του Τομέα 2 (DC2)**.
|
||||
6. Ο DC2 επαληθεύει το inter-realm TGT χρησιμοποιώντας το κοινό κλειδί εμπιστοσύνης του και, εάν είναι έγκυρο, εκδίδει ένα **Ticket Granting Service (TGS)** για τον διακομιστή στον Τομέα 2 που θέλει να έχει πρόσβαση ο πελάτης.
|
||||
@ -525,36 +525,36 @@ laps.md
|
||||
|
||||
### Διάφορες εμπιστοσύνες
|
||||
|
||||
Είναι σημαντικό να παρατηρήσετε ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλον, αλλά στη σχέση εμπιστοσύνης **1 κατεύθυνσης**, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε να έχετε πρόσβαση σε πόρους μόνο μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο**.
|
||||
Είναι σημαντικό να παρατηρήσετε ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλο, αλλά στη **1 κατεύθυνσης** σχέση εμπιστοσύνης, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε να έχετε πρόσβαση σε πόρους μόνο μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο.**
|
||||
|
||||
Εάν ο Τομέας A εμπιστεύεται τον Τομέα B, ο A είναι ο εμπιστευόμενος τομέας και ο B είναι ο εμπιστευμένος. Επιπλέον, στον **Τομέα A**, αυτό θα ήταν μια **Outbound trust**; και στον **Τομέα B**, αυτό θα ήταν μια **Inbound trust**.
|
||||
Εάν ο Τομέας A εμπιστεύεται τον Τομέα B, ο A είναι ο εμπιστευόμενος τομέας και ο B είναι ο εμπιστευμένος. Επιπλέον, στον **Τομέα A**, αυτό θα ήταν μια **Εξωτερική εμπιστοσύνη**; και στον **Τομέα B**, αυτό θα ήταν μια **Εσωτερική εμπιστοσύνη**.
|
||||
|
||||
**Διαφορετικές σχέσεις εμπιστοσύνης**
|
||||
|
||||
- **Εμπιστοσύνες Γονέα-Παιδιού**: Αυτή είναι μια κοινή ρύθμιση εντός του ίδιου δάσους, όπου ένας παιδικός τομέας έχει αυτόματα μια διπλή μεταβατική εμπιστοσύνη με τον γονικό τομέα του. Ουσιαστικά, αυτό σημαίνει ότι οι αιτήσεις αυθεντικοποίησης μπορούν να ρέουν ομαλά μεταξύ του γονέα και του παιδιού.
|
||||
- **Διασυνδεδεμένες Εμπιστοσύνες**: Αναφέρονται ως "συντομευμένες εμπιστοσύνες", αυτές καθιερώνονται μεταξύ παιδικών τομέων για να επιταχύνουν τις διαδικασίες παραπομπής. Σε πολύπλοκα δάση, οι παραπομπές αυθεντικοποίησης συνήθως πρέπει να ταξιδεύουν μέχρι τη ρίζα του δάσους και στη συνέχεια προς τα κάτω στον στόχο τομέα. Δημιουργώντας διασυνδέσεις, το ταξίδι συντομεύεται, κάτι που είναι ιδιαίτερα ευεργετικό σε γεωγραφικά διασκορπισμένα περιβάλλοντα.
|
||||
- **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες.
|
||||
- **Εμπιστοσύνες Γονέα-Παιδιού**: Αυτή είναι μια κοινή ρύθμιση εντός του ίδιου δάσους, όπου ένα παιδικό τομέα έχει αυτόματα μια διπλή μεταβατική εμπιστοσύνη με τον γονικό τομέα του. Ουσιαστικά, αυτό σημαίνει ότι οι αιτήσεις αυθεντικοποίησης μπορούν να ρέουν ομαλά μεταξύ του γονέα και του παιδιού.
|
||||
- **Διασυνδεδεμένες Εμπιστοσύνες**: Αναφέρονται ως "συντομεύσεις εμπιστοσύνης", αυτές καθιερώνονται μεταξύ παιδικών τομέων για να επιταχύνουν τις διαδικασίες παραπομπής. Σε πολύπλοκα δάση, οι παραπομπές αυθεντικοποίησης συνήθως πρέπει να ταξιδεύουν μέχρι τη ρίζα του δάσους και στη συνέχεια προς τα κάτω στον στόχο τομέα. Δημιουργώντας διασυνδέσεις, το ταξίδι συντομεύεται, κάτι που είναι ιδιαίτερα ευεργετικό σε γεωγραφικά διασκορπισμένα περιβάλλοντα.
|
||||
- **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω μιας εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες.
|
||||
- **Εμπιστοσύνες Ρίζας Δέντρου**: Αυτές οι εμπιστοσύνες καθιερώνονται αυτόματα μεταξύ του ριζικού τομέα του δάσους και ενός νέου ριζικού δέντρου που προστίθεται. Αν και δεν συναντώνται συχνά, οι εμπιστοσύνες ρίζας δέντρου είναι σημαντικές για την προσθήκη νέων δέντρων τομέα σε ένα δάσος, επιτρέποντάς τους να διατηρούν ένα μοναδικό όνομα τομέα και διασφαλίζοντας τη διπλή μεταβατικότητα. Περισσότερες πληροφορίες μπορείτε να βρείτε στον [οδηγό της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
|
||||
- **Εμπιστοσύνες Δάσους**: Αυτός ο τύπος εμπιστοσύνης είναι μια διπλή μεταβατική εμπιστοσύνη μεταξύ δύο ριζικών τομέων δάσους, επιβάλλοντας επίσης φιλτράρισμα SID για την ενίσχυση των μέτρων ασφαλείας.
|
||||
- **Εμπιστοσύνες MIT**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [συμβατές με το RFC4120](https://tools.ietf.org/html/rfc4120) Kerberos τομείς. Οι εμπιστοσύνες MIT είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα βασισμένα σε Kerberos εκτός του οικοσυστήματος Windows.
|
||||
- **Εμπιστοσύνες MIT**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [RFC4120-compliant](https://tools.ietf.org/html/rfc4120) Kerberos τομείς. Οι εμπιστοσύνες MIT είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα βασισμένα σε Kerberos εκτός του οικοσυστήματος Windows.
|
||||
|
||||
#### Άλλες διαφορές στις **σχέσεις εμπιστοσύνης**
|
||||
|
||||
- Μια σχέση εμπιστοσύνης μπορεί επίσης να είναι **μεταβατική** (A εμπιστεύεται B, B εμπιστεύεται C, τότε A εμπιστεύεται C) ή **μη μεταβατική**.
|
||||
- Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **διμερής εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλον) ή ως **μονομερή εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλο).
|
||||
- Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **αμφίδρομη εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλο) ή ως **μονοκατεύθυνση εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλο).
|
||||
|
||||
### Διαδρομή Επίθεσης
|
||||
|
||||
1. **Καταγράψτε** τις σχέσεις εμπιστοσύνης
|
||||
2. Ελέγξτε αν οποιοδήποτε **ασφαλιστικό κύριο** (χρήστης/ομάδα/υπολογιστής) έχει **πρόσβαση** σε πόρους του **άλλου τομέα**, ίσως μέσω καταχωρήσεων ACE ή μέσω συμμετοχής σε ομάδες του άλλου τομέα. Αναζητήστε **σχέσεις μεταξύ τομέων** (η εμπιστοσύνη δημιουργήθηκε γι' αυτό πιθανώς).
|
||||
2. Ελέγξτε αν οποιοδήποτε **ασφαλιστικό κύριο** (χρήστης/ομάδα/υπολογιστής) έχει **πρόσβαση** σε πόρους του **άλλου τομέα**, ίσως μέσω εγγραφών ACE ή μέσω συμμετοχής σε ομάδες του άλλου τομέα. Αναζητήστε **σχέσεις μεταξύ τομέων** (η εμπιστοσύνη δημιουργήθηκε πιθανώς για αυτό).
|
||||
1. Το kerberoast σε αυτή την περίπτωση θα μπορούσε να είναι μια άλλη επιλογή.
|
||||
3. **Συμβιβάστε** τους **λογαριασμούς** που μπορούν να **μεταπηδήσουν** μέσω τομέων.
|
||||
3. **Συμβιβάστε** τους **λογαριασμούς** που μπορούν να **μετατοπιστούν** μέσω τομέων.
|
||||
|
||||
Οι επιτιθέμενοι θα μπορούσαν να έχουν πρόσβαση σε πόρους σε άλλο τομέα μέσω τριών κύριων μηχανισμών:
|
||||
|
||||
- **Τοπική Συμμετοχή Ομάδας**: Οι κύριοι μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή.
|
||||
- **Συμμετοχή Ομάδας Ξένου Τομέα**: Οι κύριοι μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας.
|
||||
- **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι κύριοι μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για εκείνους που θέλουν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι ένας ανεκτίμητος πόρος.
|
||||
- **Μέλος Τοπικής Ομάδας**: Οι κύριοι μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή.
|
||||
- **Μέλος Ομάδας Ξένου Τομέα**: Οι κύριοι μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας.
|
||||
- **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι κύριοι μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους επιθυμούν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι ένας ανεκτίμητος πόρος.
|
||||
|
||||
### Βρείτε εξωτερικούς χρήστες/ομάδες με δικαιώματα
|
||||
|
||||
@ -568,7 +568,7 @@ Get-DomainForeignUser
|
||||
# Get groups inside a domain with users our
|
||||
Get-DomainForeignGroupMember
|
||||
```
|
||||
### Ανάβαση προνομίων δάσους Child-to-Parent
|
||||
### Ανάβαση προνομίων δάσους από Παιδί σε Γονέα
|
||||
```bash
|
||||
# Fro powerview
|
||||
Get-DomainTrust
|
||||
@ -616,15 +616,15 @@ sid-history-injection.md
|
||||
|
||||
**Link GPO to root DC site**
|
||||
|
||||
Το Sites container της Configuration NC περιλαμβάνει πληροφορίες σχετικά με όλους τους υπολογιστές που είναι συνδεδεμένοι στο domain εντός του δάσους AD. Λειτουργώντας με SYSTEM privileges σε οποιοδήποτε DC, οι επιτιθέμενοι μπορούν να συνδέσουν GPOs στους root DC sites. Αυτή η ενέργεια ενδέχεται να θέσει σε κίνδυνο το root domain, χειραγωγώντας τις πολιτικές που εφαρμόζονται σε αυτούς τους ιστότοπους.
|
||||
Το container Sites της Configuration NC περιλαμβάνει πληροφορίες σχετικά με όλους τους υπολογιστές που είναι συνδεδεμένοι στο domain εντός του δάσους AD. Λειτουργώντας με SYSTEM privileges σε οποιοδήποτε DC, οι επιτιθέμενοι μπορούν να συνδέσουν GPOs στους root DC sites. Αυτή η ενέργεια ενδέχεται να θέσει σε κίνδυνο το root domain, χειραγωγώντας τις πολιτικές που εφαρμόζονται σε αυτούς τους ιστότοπους.
|
||||
|
||||
Για λεπτομερείς πληροφορίες, μπορείτε να εξερευνήσετε έρευνες σχετικά με [Bypassing SID Filtering](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research).
|
||||
|
||||
**Compromise any gMSA in the forest**
|
||||
|
||||
Ένας επιθετικός παράγοντας περιλαμβάνει την στόχευση προνομιακών gMSAs εντός του domain. Το KDS Root key, που είναι απαραίτητο για τον υπολογισμό των κωδικών πρόσβασης των gMSAs, αποθηκεύεται εντός της Configuration NC. Με SYSTEM privileges σε οποιοδήποτε DC, είναι δυνατή η πρόσβαση στο KDS Root key και ο υπολογισμός των κωδικών πρόσβασης για οποιοδήποτε gMSA σε όλο το δάσος.
|
||||
Ένας επιθετικός παράγοντας περιλαμβάνει την στόχευση προνομιακών gMSAs εντός του domain. Το κλειδί KDS Root, που είναι απαραίτητο για τον υπολογισμό των κωδικών πρόσβασης των gMSAs, αποθηκεύεται στην Configuration NC. Με SYSTEM privileges σε οποιοδήποτε DC, είναι δυνατή η πρόσβαση στο κλειδί KDS Root και ο υπολογισμός των κωδικών πρόσβασης για οποιοδήποτε gMSA σε όλο το δάσος.
|
||||
|
||||
Λεπτομερής ανάλυση και καθοδήγηση βήμα προς βήμα μπορούν να βρεθούν στο:
|
||||
Λεπτομερής ανάλυση και καθοδήγηση βήμα προς βήμα μπορούν να βρεθούν σε:
|
||||
|
||||
{{#ref}}
|
||||
golden-dmsa-gmsa.md
|
||||
@ -699,7 +699,7 @@ rdp-sessions-abuse.md
|
||||
|
||||
### **Selective Authentication:**
|
||||
|
||||
- Για τις διασυνδέσεις μεταξύ δασών, η χρήση Selective Authentication διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες να έχουν πρόσβαση σε domains και servers εντός του εμπιστευμένου domain ή δάσους.
|
||||
- Για τις διασυνδέσεις μεταξύ δασών, η χρήση Selective Authentication διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες να έχουν πρόσβαση σε domains και servers εντός του εμπιστευόμενου domain ή δάσους.
|
||||
- Είναι σημαντικό να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του writable Configuration Naming Context (NC) ή επιθέσεις στον λογαριασμό εμπιστοσύνης.
|
||||
|
||||
[**Περισσότερες πληροφορίες σχετικά με τις εμπιστοσύνες domain στο ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
|
||||
@ -722,21 +722,21 @@ https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-move
|
||||
|
||||
### **Εφαρμογή Τεχνικών Απάτης**
|
||||
|
||||
- Η εφαρμογή απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως χρήστες ή υπολογιστές δόλωμα, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Trusted for Delegation. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges.
|
||||
- Η εφαρμογή της απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως ψεύτικοι χρήστες ή υπολογιστές, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Trusted for Delegation. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges.
|
||||
- Ένα πρακτικό παράδειγμα περιλαμβάνει τη χρήση εργαλείων όπως: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
|
||||
- Περισσότερα σχετικά με την ανάπτυξη τεχνικών απάτης μπορείτε να βρείτε στο [Deploy-Deception στο GitHub](https://github.com/samratashok/Deploy-Deception).
|
||||
|
||||
### **Αναγνώριση Απάτης**
|
||||
|
||||
- **Για Αντικείμενα Χρηστών**: Ύποπτα σημάδια περιλαμβάνουν ασυνήθιστο ObjectSID, σπάνιες συνδέσεις, ημερομηνίες δημιουργίας και χαμηλούς αριθμούς κακών κωδικών.
|
||||
- **Γενικά Σημάδια**: Η σύγκριση χαρακτηριστικών πιθανών αντικειμένων δόλωμα με αυτά των γνήσιων μπορεί να αποκαλύψει ασυνέπειες. Εργαλεία όπως το [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) μπορούν να βοηθήσουν στην αναγνώριση τέτοιων απατών.
|
||||
- **Για Αντικείμενα Χρηστών**: Υποψίες περιλαμβάνουν ασυνήθιστα ObjectSID, σπάνιες συνδέσεις, ημερομηνίες δημιουργίας και χαμηλούς αριθμούς κακών κωδικών.
|
||||
- **Γενικοί Δείκτες**: Η σύγκριση χαρακτηριστικών πιθανών αντικειμένων απάτης με αυτά των γνήσιων μπορεί να αποκαλύψει ασυνέπειες. Εργαλεία όπως το [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) μπορούν να βοηθήσουν στην αναγνώριση τέτοιων απατών.
|
||||
|
||||
### **Παράκαμψη Συστήματος Ανίχνευσης**
|
||||
|
||||
- **Παράκαμψη Ανίχνευσης Microsoft ATA**:
|
||||
- **Αναγνώριση Χρηστών**: Αποφυγή αναγνώρισης συνεδριών σε Domain Controllers για να αποφευχθεί η ανίχνευση από το ATA.
|
||||
- **Αναγνώριση Χρηστών**: Αποφυγή αναγνώρισης συνεδριών σε Domain Controllers για την αποφυγή ανίχνευσης από το ATA.
|
||||
- **Εκμετάλλευση Εισιτηρίων**: Η χρήση **aes** κλειδιών για τη δημιουργία εισιτηρίων βοηθά στην αποφυγή ανίχνευσης, αποφεύγοντας την υποβάθμιση σε NTLM.
|
||||
- **DCSync Επιθέσεις**: Συνιστάται η εκτέλεση από μη Domain Controller για να αποφευχθεί η ανίχνευση από το ATA, καθώς η άμεση εκτέλεση από έναν Domain Controller θα ενεργοποιήσει ειδοποιήσεις.
|
||||
- **DCSync Επιθέσεις**: Συνιστάται η εκτέλεση από μη Domain Controller για την αποφυγή ανίχνευσης από το ATA, καθώς η άμεση εκτέλεση από έναν Domain Controller θα ενεργοποιήσει ειδοποιήσεις.
|
||||
|
||||
## Αναφορές
|
||||
|
||||
|
@ -4,36 +4,36 @@
|
||||
|
||||
## Επισκόπηση
|
||||
|
||||
Οι Λογαριασμοί Διαχειριζόμενης Υπηρεσίας Windows (MSA) είναι ειδικοί κύριοι που έχουν σχεδιαστεί για να εκτελούν υπηρεσίες χωρίς την ανάγκη χειροκίνητης διαχείρισης των κωδικών πρόσβασης τους.
|
||||
Τα Windows Managed Service Accounts (MSA) είναι ειδικοί φορείς σχεδιασμένοι να εκτελούν υπηρεσίες χωρίς την ανάγκη χειροκίνητης διαχείρισης των κωδικών τους.
|
||||
Υπάρχουν δύο κύριες παραλλαγές:
|
||||
|
||||
1. **gMSA** – ομαδικός Λογαριασμός Διαχειριζόμενης Υπηρεσίας – μπορεί να χρησιμοποιηθεί σε πολλαπλούς υπολογιστές που είναι εξουσιοδοτημένοι στο χαρακτηριστικό `msDS-GroupMSAMembership` του.
|
||||
2. **dMSA** – εξουσιοδοτημένος Λογαριασμός Διαχειριζόμενης Υπηρεσίας – ο (προεπισκόπηση) διάδοχος του gMSA, που βασίζεται στην ίδια κρυπτογραφία αλλά επιτρέπει πιο λεπτομερείς σενάρια εξουσιοδότησης.
|
||||
1. **gMSA** – group Managed Service Account – μπορεί να χρησιμοποιηθεί σε πολλαπλούς hosts που είναι εξουσιοδοτημένοι στο `msDS-GroupMSAMembership` attribute.
|
||||
2. **dMSA** – delegated Managed Service Account – ο (preview) διάδοχος του gMSA, που βασίζεται στην ίδια κρυπτογραφία αλλά επιτρέπει πιο λεπτομερείς σενάρια αντιπροσώπευσης.
|
||||
|
||||
Για και τις δύο παραλλαγές, ο **κωδικός πρόσβασης δεν αποθηκεύεται** σε κάθε Domain Controller (DC) όπως ένας κανονικός NT-hash. Αντίθετα, κάθε DC μπορεί να **παράγει** τον τρέχοντα κωδικό πρόσβασης εν κινήσει από:
|
||||
Για και τις δύο παραλλαγές, ο **κωδικός δεν αποθηκεύεται** σε κάθε Domain Controller (DC) όπως ένας κανονικός NT-hash. Αντίθετα, κάθε DC μπορεί να **παράγει** τον τρέχοντα κωδικό on-the-fly από:
|
||||
|
||||
* Το δασικό **KDS Root Key** (`KRBTGT\KDS`) – τυχαία παραγόμενο GUID-ονομασμένο μυστικό, αναπαραγόμενο σε κάθε DC κάτω από το δοχείο `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …`.
|
||||
* Το δασικό **KDS Root Key** (`KRBTGT\KDS`) – τυχαία παραγόμενο GUID-ονομασμένο μυστικό, αναπαραγόμενο σε κάθε DC κάτω από το `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` container.
|
||||
* Το **SID** του στόχου λογαριασμού.
|
||||
* Ένα ανά λογαριασμό **ManagedPasswordID** (GUID) που βρίσκεται στο χαρακτηριστικό `msDS-ManagedPasswordId`.
|
||||
* Ένα ανά λογαριασμό **ManagedPasswordID** (GUID) που βρίσκεται στο `msDS-ManagedPasswordId` attribute.
|
||||
|
||||
Η παραγωγή είναι: `AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 240 byte blob τελικά **base64-encoded** και αποθηκευμένο στο χαρακτηριστικό `msDS-ManagedPassword`.
|
||||
Δεν απαιτείται καμία κίνηση Kerberos ή αλληλεπίδραση με το domain κατά τη διάρκεια της κανονικής χρήσης του κωδικού πρόσβασης – ένας μέλος υπολογιστής παράγει τον κωδικό πρόσβασης τοπικά όσο γνωρίζει τις τρεις εισόδους.
|
||||
Η παραγωγή είναι: `AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 240 byte blob τελικά **base64-encoded** και αποθηκευμένο στο `msDS-ManagedPassword` attribute.
|
||||
Δεν απαιτείται καμία κίνηση Kerberos ή αλληλεπίδραση με το domain κατά τη διάρκεια της κανονικής χρήσης του κωδικού – ένας μέλος host παράγει τον κωδικό τοπικά όσο γνωρίζει τις τρεις εισόδους.
|
||||
|
||||
## Χρυσή επίθεση gMSA / Χρυσή dMSA
|
||||
## Χρυσή επίθεση gMSA / Χρυσή dMSA επίθεση
|
||||
|
||||
Εάν ένας επιτιθέμενος μπορεί να αποκτήσει και τις τρεις εισόδους **offline**, μπορεί να υπολογίσει **έγκυρους τρέχοντες και μελλοντικούς κωδικούς πρόσβασης** για **οποιονδήποτε gMSA/dMSA στο δάσος** χωρίς να αγγίξει ξανά το DC, παρακάμπτοντας:
|
||||
Εάν ένας επιτιθέμενος μπορεί να αποκτήσει και τις τρεις εισόδους **offline**, μπορεί να υπολογίσει **έγκυρους τρέχοντες και μελλοντικούς κωδικούς** για **οποιοδήποτε gMSA/dMSA στο δάσος** χωρίς να αγγίξει ξανά το DC, παρακάμπτοντας:
|
||||
|
||||
* Τα αρχεία προ-αυθεντικοποίησης Kerberos / αιτήσεων εισιτηρίων
|
||||
* Την ανάγνωση ελέγχου LDAP
|
||||
* Τα διαστήματα αλλαγής κωδικών πρόσβασης (μπορούν να προϋπολογίσουν)
|
||||
* Kerberos προ-αυθεντικοποίηση / logs αιτημάτων εισιτηρίων
|
||||
* LDAP ανάγνωση ελέγχου
|
||||
* Διαστήματα αλλαγής κωδικών (μπορούν να προϋπολογίσουν)
|
||||
|
||||
Αυτό είναι ανάλογο με ένα *Χρυσό Εισιτήριο* για λογαριασμούς υπηρεσιών.
|
||||
Αυτό είναι ανάλογο με ένα *Golden Ticket* για λογαριασμούς υπηρεσιών.
|
||||
|
||||
### Προαπαιτούμενα
|
||||
|
||||
1. **Συμβιβασμός σε επίπεδο δάσους** ενός **DC** (ή Enterprise Admin). Η πρόσβαση `SYSTEM` είναι αρκετή.
|
||||
2. Δυνατότητα καταμέτρησης λογαριασμών υπηρεσιών (ανάγνωση LDAP / brute-force RID).
|
||||
3. .NET ≥ 4.7.2 x64 workstation για να εκτελέσετε [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) ή ισοδύναμο κώδικα.
|
||||
2. Δυνατότητα καταμέτρησης λογαριασμών υπηρεσιών (LDAP read / RID brute-force).
|
||||
3. .NET ≥ 4.7.2 x64 workstation για να τρέξει [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) ή ισοδύναμο κώδικα.
|
||||
|
||||
### Φάση 1 – Εξαγωγή του KDS Root Key
|
||||
|
||||
@ -67,7 +67,7 @@ GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd
|
||||
### Φάση 3 – Μαντέψτε / Ανακαλύψτε το ManagedPasswordID (όταν λείπει)
|
||||
|
||||
Ορισμένες αναπτύξεις *αφαιρούν* το `msDS-ManagedPasswordId` από τις αναγνώσεις που προστατεύονται από ACL.
|
||||
Δεδομένου ότι το GUID είναι 128-bit, η απλή βίαιη επίθεση είναι μη εφικτή, αλλά:
|
||||
Δεδομένου ότι το GUID είναι 128-bit, η απλή βίαιη δοκιμή είναι μη εφικτή, αλλά:
|
||||
|
||||
1. Τα πρώτα **32 bits = Unix epoch time** της δημιουργίας του λογαριασμού (ανάλυση λεπτών).
|
||||
2. Ακολουθούν 96 τυχαία bits.
|
||||
@ -76,7 +76,7 @@ GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd
|
||||
```powershell
|
||||
GoldendMSA.exe wordlist -s <SID> -d example.local -f example.local -k <KDSKeyGUID>
|
||||
```
|
||||
Το εργαλείο υπολογίζει υποψήφιες κωδικούς πρόσβασης και συγκρίνει το base64 blob τους με το πραγματικό `msDS-ManagedPassword` χαρακτηριστικό – η αντιστοιχία αποκαλύπτει το σωστό GUID.
|
||||
Το εργαλείο υπολογίζει υποψήφιες κωδικούς πρόσβασης και συγκρίνει το base64 blob τους με το πραγματικό `msDS-ManagedPassword` attribute – η αντιστοιχία αποκαλύπτει το σωστό GUID.
|
||||
|
||||
### Φάση 4 – Υπολογισμός & Μετατροπή Κωδικού Πρόσβασης Εκτός Σύνδεσης
|
||||
|
||||
@ -96,7 +96,7 @@ GoldendMSA.exe convert -d example.local -u svc_web$ -p <Base64Pwd>
|
||||
* Παρακολουθήστε τη δημιουργία **Λειτουργίας Επαναφοράς Υπηρεσιών Καταλόγου (DSRM)** ή **Αντιγράφου Σκιάς Όγκου** σε DCs.
|
||||
* Ελέγξτε τις αναγνώσεις / αλλαγές στα `CN=Master Root Keys,…` και τις σημαίες `userAccountControl` των λογαριασμών υπηρεσιών.
|
||||
* Ανιχνεύστε ασυνήθιστες **εγγραφές κωδικών πρόσβασης base64** ή ξαφνική επαναχρησιμοποίηση κωδικών πρόσβασης υπηρεσιών σε διάφορους υπολογιστές.
|
||||
* Σκεφτείτε να μετατρέψετε τις gMSAs υψηλής προνομιακής πρόσβασης σε **κλασικούς λογαριασμούς υπηρεσιών** με κανονικές τυχαίες περιστροφές όπου η απομόνωση Tier-0 δεν είναι δυνατή.
|
||||
* Σκεφτείτε να μετατρέψετε τις υψηλής προνομιακής gMSAs σε **κλασικούς λογαριασμούς υπηρεσιών** με κανονικές τυχαίες περιστροφές όπου η απομόνωση Tier-0 δεν είναι δυνατή.
|
||||
|
||||
## Εργαλεία
|
||||
|
||||
@ -108,6 +108,6 @@ GoldendMSA.exe convert -d example.local -u svc_web$ -p <Base64Pwd>
|
||||
|
||||
- [Golden dMSA – παράκαμψη αυθεντικοποίησης για εξουσιοδοτημένους Διαχειριζόμενους Λογαριασμούς Υπηρεσιών](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/)
|
||||
- [Αποθετήριο GitHub Semperis/GoldenDMSA](https://github.com/Semperis/GoldenDMSA)
|
||||
- [Improsec – επίθεση εμπιστοσύνης Golden gMSA](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)
|
||||
- [Improsec – Χρυσή επίθεση εμπιστοσύνης gMSA](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user