Golden Ticket
Last updated
Last updated
Cuộc tấn công Golden Ticket bao gồm việc tạo ra một Ticket Granting Ticket (TGT) hợp pháp mạo danh bất kỳ người dùng nào thông qua việc sử dụng hàm băm NTLM của tài khoản krbtgt Active Directory (AD) . Kỹ thuật này đặc biệt có lợi vì nó cho phép truy cập vào bất kỳ dịch vụ hoặc máy nào trong miền với tư cách là người dùng mạo danh. Điều quan trọng cần nhớ là thông tin đăng nhập của tài khoản krbtgt không bao giờ được tự động cập nhật .
Để có được mã băm NTLM của tài khoản krbtgt, có thể sử dụng nhiều phương pháp khác nhau. Có thể trích xuất mã băm từ quy trình Local Security Authority Subsystem Service (LSASS) hoặc tệp NT Directory Services (NTDS.dit) nằm trên bất kỳ DC nào trong miền. Hơn nữa, thực hiện một cuộc tấn công DCsync là một chiến lược khác để có được mã băm NTLM này, có thể thực hiện bằng các công cụ như mô- đun lsadump::dcsync trong Mimikatz hoặc tập lệnh secretsdump.py của Impacket. Điều quan trọng cần nhấn mạnh là để thực hiện các hoạt động này, thường cần có đặc quyền domain admin hoặc cấp độ truy cập tương đương .
Mặc dù hàm băm NTLM đóng vai trò là phương pháp khả thi cho mục đích này, nhưng đặc biệt khuyến nghị nên làm giả vé bằng khóa Kerberos theo AES (AES128 và AES256) vì lý do bảo mật hoạt động.
Từ Linux
Từ Windows
Một khi golden Ticket injected, bạn có thể truy cập các tệp được chia sẻ (C$) và thực thi các dịch vụ và WMI, do đó bạn có thể sử dụng psexec hoặc wmiexec để lấy shell (có vẻ như không thể lấy shell qua winrm).
Các cách phổ biến nhất để phát hiện một "golden ticket" là bằng cách kiểm tra lưu lượng Kerberos trên mạng. Mặc định, Mimikatz ký TGT (Ticket Granting Ticket) trong 10 năm, điều này sẽ nổi bật như một sự bất thường trong các yêu cầu TGS (Ticket Granting Service) tiếp theo được thực hiện với nó.
Lifetime : 3/11/2021 12:39:57 PM ; 3/9/2031 12:39:57 PM ; 3/9/2031 12:39:57 PM
Sử dụng các tham số /startoffset
, /endin
và /renewmax
để kiểm soát thời gian bắt đầu, thời lượng và số lần gia hạn tối đa (tất cả tính bằng phút).
Tuy thời gian tồn tại của TGT không được ghi lại trong 4769, nhưng có thể nhận ra bất thường nếu thấy 4769 mà không có 4768 trước đó . Không thể yêu cầu TGS mà không có TGT và nếu không có bản ghi nào về việc TGT được cấp, chúng ta có thể suy ra rằng nó đã bị làm giả ngoại tuyến.
Để vượt qua sự phát hiện này, Sử dụng Diamond ticket.
Giống như vé vàng , vé kim cương là TGT có thể được sử dụng để truy cập bất kỳ dịch vụ nào với tư cách là bất kỳ người dùng nào. Vé kim cương được tạo ra bằng cách sửa đổi các trường của TGT hợp lệ do DC phát hành . Điều này đạt được bằng cách yêu cầu TGT , giải mã nó bằng hàm băm krbtgt của miền, sửa đổi các trường mong muốn của vé, sau đó mã hóa lại nó . Điều này khắc phục được nhược điểm của vé vàng vì:
TGS-REQ sẽ có AS-REQ trước đó
Các TGT không có các giá trị ngớ ngấn như là Mimikatz's default 10-year lifetime.
TGT được cấp bởi một DC, nghĩa là nó sẽ có tất cả các chi tiết chính xác từ chính sách Kerberos của miền. Mặc dù những thông tin này có thể được làm giả chính xác trong một vé vàng, nhưng nó phức tạp hơn và dễ mắc lỗi hơn.
Để phát hiện việc sử dụng vé vàng, cần phải phân tích các vé Kerberos để tìm ra những đấu hiệu thao túng tinh vi, chẳng hạn như
Tên người dùng không tồn tài trong AD
Thành viên nhóm đã sửa đổi (thêm hoặc xóa)
Tên người dùng và RID không khớp
Sử dụng các mã hóa yếu như RC4 thay vì AES-256
Tuổi thọ vé vượt quá thời hạn tối đa của tên miền (tuổi thọ tên miền mặc định là 10 giờ nhưng thời hạn mặc định được chỉ định mimikatz
là 10 năm)
Các Windows event sau đây có thể được thu thập và phân tích để phát hiện khả năng sử dụng vé vàng:
Event
Source
Information Provided
Domain controllers
Ticket encryption type
Username
Domain controllers, member computers
User’s security identifier (SID)
Group memberships
Domain controllers, member computers
User’s security identifier (SID)
Username source IP (indicating potentially compromised host)
Tập trung vào việc khiến attacker khó có được quyền truy cập đặc quyền cần thiết để lấy được giá trị băm mật khẩu của người dùngKRBTGT
và hạn chế tính hữu ích của giá trị băm mật khẩu ấy:
Không cho phép người dùng sở hữu các đặc quyền quản trị qua ranh giới bảo mật. Ví dụ, kẻ tấn công xâm phạm máy trạm không được phép nâng cao đặc quyền của mình để chuyển sang bộ điều khiển miền.
Giảm thiểu các đặc quyền nâng cao. Ví dụ, các tổ chức thường cấp quyền thành viên cho Domain Admins để phục vụ các tài khoản một cách không cần thiết — cung cấp cho kẻ thù nhiều tài khoản hơn để nhắm mục tiêu, giúp chúng có thể trích xuất KRBTGT
băm.
Một kè thù có vé vàng rất khó để phản ứng và phục hồi. Chiến lược cơ bản là:
Kích hoạt quy trình ứng phó sự cố và cảnh báo nhóm ứng phó sự cố.
Tuy nhiên, có thể mất nhiều tuần lập kế hoạch và nỗ lực để đảm bảo không chỉ xóa bỏ hoàn toàn cơ chế hiện diện và tồn tại của kẻ tấn công mà còn thực hiện những thay đổi cần thiết để đảm bảo chúng không thể sử dụng lại đường tấn công trước đó để lấy lại quyền truy cập.
Windows controllers chịu trách nhiệm xử lý các yêu cầu vé Kerberos, được sử dụng để xác thực ngươi dùng và cấp quyền truy cập vào máy tính và người dùng. Mật khẩu tài khoản KRBTGT được sử dụng để mã hóa và giải mã vé Kerberos. Mật khẩu này hiếm khi thay đổi và tên tài khoản giống nahu ỏ mọi miền nên là mục tiêu chung của những kẻ tấn công.
Event ID 4769:
Event ID 4627:
Event ID 4624:
cho tài khoản KRBTGT
theo lịch trình thường xuyên, cũng như ngay khi có bất kỳ thay đổi nào về nhân sự chịu trách nhiệm quản trị Active Directory. Vì cả mật khẩu hiện tại và mật khẩu trước đó của người KRBTGT
dùng đều được KDC sử dụng để xác thực vé Kerberos, nên mật khẩu phải được thay đổi hai lần; các lần thay đổi phải được thực hiện cách nhau 12–24 giờ để tránh gián đoạn dịch vụ.