Attacking Domain Trusts - Child to Parent Trusts
Overview
sidHistory là một thuộc tính trong Active Directory, được thiết kế cho mục đích migration giữa các domain hoặc forest.
Ví dụ: User ở domain A có SID: S-1-5-21-AAA-111, được migrate sang domain B bằng cách tạo account mới, tại domain B gán lại sidHistory là S-1-5-21-AAA-111 thì user mới vẫn có quyền truy cập và resource cũ.
SID history có thể được hoạt động trên cùng một domain. Sử dụng mimikatz, attacker có thể chèn SID history vào thêm administrator account vào SID History attribute và account đang nắm giữ.
ExtraSids Attack - Mimikatz
ExtraSids là kỹ thuật lợi dụng việc thiếu SID Filtering trong cùng một forest để leo quyền từ child domain lên parent domain.
Cách thức thực hiện:
Tạo golden ticket trong child domain.
Với enterprise admin SID (của root domain) gắn vào
sidHistoryhoặcExtraSids.KDC trong child domain vẫn kí ticket ⇒ parent domain vẫn tin tưởng.
Kết quả: Child domain compomise lên parent domain compomise.
KRBTGT chính là "root key" của Kerberos trong domain. Vai trò của TGT là rất quan trọng, khi user đăng nhập DC sẽ cấp cho user một TGT và TGT đó dùng để xin các TGS sau này. Nếu TGT hợp lệ, user có thể truy cập mọi dịch vụ được phép trong domain.
DC không kiểm tra user có thật hay không, chi kiểm tra vé có hợp lệ và kí đúng bởi KRBTGT không.
Golden ticket là vé Kerberos TGT giả, tạo ra bằng cách ký bằng NT hash của KRBTGT. Golden ticket có thể mạo danh bất kì user nào, gán bất kì SID/group SID nào (Domain Admin,...) ngoài ra còn xin TGS cho mọi dịch vụ, mọi máy trong domain
Chỉ có một cách duy nhất là vô hiệu hóa Golden ticket đó là đổi mật khẩu KRBTGT và phải đổi 2 lần liên tiếp để vô hiệu hóa toàn bộ vé Kerberos.
Obtaining the KRBTGT Account's NT Hash using Mimikatz
Sử dụng Get-DomainGroup từ PowerView để lấy SID cho Enterprise Admins group trong parent domain.
Các bước attack:
Check không có quyền kiểm tra DC. Sau đó sử dụng Mimikatz để tạo Golden ticket.
Xác nhận đã có Kerberos ticket trong memory.
ExtraSids Attack - Rubeus
Thực hiện DCSync attack với parent domain, nhắm tới domain admin user.
Performing DCSync with secretsdump.py
DCSync giả mạo Domain Controller và yêu cầu DC gửi dữ liệu từ NTDS.DIT. KRBTGT là account luôn tồn tại.
Sử dụng lookupsid.py để brute force tìm SID của child domain. Bắt đầu từ RID 500 trở lên. Liệt kê ra User, Group, Alias và trả về Domain SID, RID của từng object, quan trọng nhất vẫn là Domain SID.
Lấy SID của parent domain:
Mục tiêu là lấy được Domain SID và RID của Enterprise Admins group.
Đã thu được các điều kiện để tạo Golden ticket:
KRBTGT hash của child domain:
9d765b482771505cbe97411065964d5fSID của child domain:
S-1-5-21-2806153819-209893948-922872689Target user trong child domain (không cần thiết phải tồn tại):
hackerFQDN của child domain:
LOGISTICS.INLANEFREIGHT.LOCALSID của Enterprise Admins group trong root domain:
S-1-5-21-3842939050-3880317879-2865463114-519
Golden ticket này sẽ thuộc child domain nhưng mang quyền Enterprise Admin của root domain
Ticket sẽ được save ngay tại local credential cache (ccache)
Hệ thống sẽ dùng ticket này cho mọi Kerberos authentication.
Getting a SYSTEM shell using Impacket's psexec.py
Last updated