Domain Trusts Primer
Domain Trust
Trust trong Active Directory là cơ chế cho phép authentication và truy cập resource giữa hai domain hoặc hai forest khác nhau.
Trust được thiết lập giữa (một hoặc hai chiều):
Domain <=> domain
Forest <=> forest
User từ domain A có thể truy cập tài nguyên ở domain B, Admin từ domain A có thể quản trị domain B (tùy cấu hình).

Các loại Trust trong AD:
Parent-Child Trust: mặc định khi tạo child domain trong cùng forest, là hai chiều. Ví dụ:
member.corp.localvớicorp.localCross-link Trust: trust được tạo giữa hai child domain, để speed up authenticate, giảm phụ thuộc vào root domain
External Trust: trust giữa hai domain khác forest (không có forest trust), thường bị giới hạn bởi SID Filtering. Chỉ cho phép SID thuộc domain được trust, ngăn domain "fake" SID của domain khác, dùng khi domain legacy cũ cần truy cập domain mới
Tree-root Trust: Xuất hiện khi tạo một tree domain mới trong forest, là hai chiều.
Forest Trust: trust giữa hai forest root domains, cho phép user forest A được truy cập resource của forest B và ngược lại, ngoài ra còn cho phép Admin delegation giữa hai forest.
ESAE (Enhanced Security Admin Environment) / Bastion Forest: là protected forest riêng dùng để quản lý AD.

Transitive vs Non-Transitive Trust:
Transitive Trust:
Trust được mở rộng tự động cho các domain khác trong cùng chuỗi.
Ví dụ:
Domain A <=> Domain B (transitive)
Domain B <=> Domain C (transitive)
⇒ Domain A tự động trust Domain C.
Các trust sau là transitive:
Parent-child
Forest
Tree-root
Non-Transitive Trust:
Chỉ đúng cho hai domain trực tiếp liên kết.
Domain A ↔ Domain B (non-transitive)
⇒ Domain A không trust Domain C, ngay cả khi C trust B.
External Trust là Non-Transitive Trust.

Enumerating Trust Relationships
Sử dụng Get-ADTrust để enumerate domain trust relationships.
Sử dụng Get-DomainTrust của PowerView.
Get-DomainTrustMapping
Sử dụng netdom trong built-in cmdlet để query domain trust:
Trust Relationships trong BloodHound

Last updated