PowerShell Empire dành cho Pentester : Mimikatz

Bài viết này sẽ giới thiệu các cuộc tấn công và tác vụ khác nhau có thể được thực hiện trên Máy Windows bị xâm nhập, là một phần của Bộ điều khiển miền thông qua Mô-đun Mimikatz có sẵn của PowerShell Empire.

Mục lục

  • Giới thiệu
  • Tấn công đồng bộ hóa DC
  • DC Sync Hash Dump
  • Vé vàng
  • Trích xuất vé
  • Bộ nhớ đệm tên miền
  • Lệnh Mimikatz
  • Trích xuất chứng chỉ
  • Mimitokens
  • Chìa khóa tiền điện tử
  • Thanh toán vé
  • Cơ quan an ninh địa phương (LSA | LSASS.EXE)
  • SAM
  • Phần kết luận

Giới thiệu

PowerShell Empire là một trong những công cụ tiếp tục được cung cấp cho Cộng đồng thâm nhập miễn là nó được giới thiệu lần đầu tiên. Bất kỳ công cụ nào khác mà chúng tôi có thể nhớ rằng có nhiều tiện ích hơn bất kỳ thứ gì là Mimikatz. Đã nhiều năm kể từ khi phát hành cả hai công cụ này nhưng khả năng tấn công Windows Machine của chúng liên tục là vô song. Chúng tôi biết rằng cả PowerShell Empire và Mimikatz hiện không được sử dụng rộng rãi vì chữ ký của họ đã được thêm vào hầu hết tất cả Phần mềm chống vi-rút và trên Toàn bộ vi-rút. Điều này mặc dù làm cho chúng kém hữu ích hơn so với Cobalt Strike và các lựa chọn thay thế khác nhưng khi hiểu cơ bản về Hệ thống xác thực Windows như SAM và LSASS, tấn công chúng và trích xuất thông tin xác thực thì không có công cụ nào có thể hoạt động hiệu quả như Mimikatz.

Tấn công đồng bộ hóa DC

Chức năng Mimikatz DCSYNC cho phép kẻ tấn công sao chép hành vi của Bộ điều khiển miền (DC). Thường mạo danh là bộ điều khiển miền và yêu cầu DC khác cung cấp dữ liệu thông tin xác thực của người dùng thông qua GetNCChanges. Tuy nhiên, tài khoản bị xâm nhập phải là thành viên của quản trị viên, Quản trị viên miền hoặc Quản trị viên doanh nghiệp để truy xuất hàm băm mật khẩu tài khoản từ bộ điều khiển miền khác. Do đó, kẻ xâm nhập sẽ xây dựng các vé giả mạo Kerberos bằng cách sử dụng hàm băm được truy xuất để lấy bất kỳ tài nguyên nào của Active Directory. Chúng tôi đã xâm phạm máy và người dùng là thành viên của tài khoản đặc quyền (Quản trị viên, Quản trị viên miền hoặc Quản trị viên doanh nghiệp).

1
2
3
usemodule credentials/mimikatz/dcsync
set user krbtgt
execute

Việc tải mô-đun dcsync sẽ gọi tập lệnh mimikatz PowerShell để thực hiện cuộc tấn công dcsync để lấy thông tin xác thực bằng cách yêu cầu từ một bộ điều khiển miền khác trong miền. Ở đây, chúng tôi đang yêu cầu HASH tài khoản KRBTGT và sẽ truy xuất KRBTGT NTLM HASH.

DC Sync Hash Dump

Tương tự như cuộc tấn công DC Sync mà chúng tôi vừa thực hiện trên một người dùng cụ thể, vì vậy hàm băm NTLM trả về cũng là của người dùng cụ thể đó. Nhưng trong trường hợp kẻ tấn công muốn trích xuất toàn bộ hàm băm của tất cả người dùng được tạo trên Domain Controller. Đây là khi mô-đun băm bắt đầu hoạt động. Nó sẽ thực hiện cuộc tấn công DC Sync cho mỗi người dùng và sau đó cung cấp hàm băm cho tất cả họ trong một chế độ xem tổng hợp như thể hiện trong hình ảnh bên dưới.

1
2
usemodule credentials/mimikatz/dcsync_hashdump
execute

Vé vàng Golden Ticket

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.

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à 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 bao gồm: Quản trị viên, Khách (Guest) và KRBTGT. 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é tới Kerberos. Đối với vé Kerberos, AD sử dụng tài khoản KRBTGT trong miền AD. Người dùng hợp pháp bắt đầu giao tiếp cho một yêu cầu dịch vụ tới Máy chủ ứng dụng. 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é có tên là 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. Sau đó, Người dùng yêu cầu TGS từ KDC sẽ được sử dụng để truy cập dịch vụ của máy chủ ứng dụng.

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. Golden Tickets là Ticket-Granting Tickets giả mạo (TGT), còn được gọi là vé xác thực, Kẻ tấn công thoát khỏi xác thực và khởi tạo giao tiếp với KCD. Vì Vé vàng là một TGT giả mạo, nên 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ệ.

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 là thứ mà anh ta / anh ta tạo ra một vé do Kerberos tạo ra 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. Như chúng ta đã biết, có một số yêu cầu cơ bản để tạo TGT giả mạo, tức là 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 băm mật khẩu của tài khoản KRBTGT có thể được trích xuất bằng Mimikatz.

Khi chúng tôi đã xâm nhập máy nạn nhân là thành viên của AD, thì chúng tôi có thể sử dụng trực tiếp mô-đun sau mà không cần phiên đặc quyền quản trị viên.

1
2
3
4
5
6
7
8
9
10
11
usemodule credentials/mimikatz/golden_ticket
set domain <Domain_name>
set sid <SID>
set group 500
set user pavan
set krbtgt_hash <ntlm_hash>
set id 500
execute
kerberos::golden /user:pavan /domain:ignite.local /sid: SIDback
shell dir \\DC1.ignite.local\c$

Đây là một cách động để tạo vé vì mô-đun này có thể chạy mà không cần có 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ủ.

Trích xuất vé

Các bạn đã thấy cách giả mạo vé. Vé tồn tại lâu hơn so với thời gian tồn tại bình thường. Vé Vàng có thể kéo dài đến 10 năm. Do đó, chúng ta sẽ có khả năng trích xuất những vé đó để tái sử dụng (có lẽ là để qua các trạm BOT các bạn nhĩ).

1
2
usemodule credentials/mimikatz/extract_tickets
execute

Bộ nhớ đệm tên miền

Microsoft Windows lưu trữ cục bộ thông tin đăng nhập của người dùng trước để họ có thể đăng nhập nếu không thể truy cập được máy chủ đăng nhập trong những lần đăng nhập sau. Đây được gọi là thông tin xác thực Bộ nhớ đệm miền (DCC) nhưng trên thực tế nó còn được gọi là MSCACHE hoặc MSCASH băm. Nó đã sắp xếp hàm băm mật khẩu của người dùng mà bạn không thể thực hiện các cuộc tấn công chuyển mã với loại băm này. Nó sử dụng thuật toán MSCACHE để tạo băm mật khẩu và được lưu trữ cục bộ trong sổ đăng ký Windows của hệ điều hành Windows. Các băm này được lưu trữ trong sổ đăng ký Windows, theo mặc định là 10 băm cuối cùng.

Có hai phiên bản MSCASH / MSCACHE hoặc DCC

  • MSCACHEV1 hoặc DCC1 được sử dụng trước Vista Server 2003
  • MSCACHEV2 hoặc DCC2 được sử dụng sau Vista & Server 2003

PowerShell Empire có một mô-đun trích xuất mã băm MSCACHEV2 từ sổ đăng ký bên trong của máy bị xâm phạm.

1
2
usemodule credentails/mimikatz/cache
execute

Và một lần nữa, bạn sẽ nhận được mã băm MSCACHEv2 trên màn hình của mình.

Lệnh Mimikatz

Như chúng ta đã thấy rằng không thiếu mô-đun mimikatz trên “Đế chế” PowerShell nhưng Mimikatz vẫn là một công cụ lớn với nhiều phương pháp tấn công hơn mà nhóm Empire có thể bắt kịp. Vì vậy, nếu bạn không nhớ bất kỳ mô-đun nào nhưng bạn biết lệnh mimikatz để chạy, thì Empire sẽ giúp bạn. Sử dụng mô-đun lệnh mimikatz / để chạy các lệnh thủ công trực tiếp trên mục tiêu bị xâm phạm. Để chứng minh, chúng tôi sẽ chạy lsadump :: lsa / patch trên máy mục tiêu. Khi chạy, Mimikatz sẽ vá lỗi samrv.dll đang chạy bên trong quy trình lsass.exe để kết xuất các băm NTLM.

1
2
3
usemodule credentials/mimikatz/command
set Command lsadump::lsa /patch
execute

Trích xuất chứng chỉ

Chứng chỉ SSL gốc là chứng chỉ được cấp bởi tổ chức phát hành chứng chỉ đáng tin cậy (CA). Trong hệ sinh thái SSL, bất kỳ ai cũng có thể tạo khóa ký và sử dụng khóa đó để ký chứng chỉ mới. Tuy nhiên, chứng chỉ đó không được coi là hợp lệ trừ khi được CA đáng tin cậy ký trực tiếp hoặc gián tiếp. Các chứng chỉ đã ký có thể được sử dụng để gắn kết các cuộc tấn công Man in the Middle hoặc Phishing vào mục tiêu hoặc mạng của mục tiêu. Để trích xuất chứng chỉ, từ một máy bị xâm nhập, hãy sử dụng mô-đun này.

1
2
usemodule credentials/mimikatz/certs
execute

Danh sách này tiếp tục theo ước tính sơ bộ, bất kỳ hệ thống nào đang được sử dụng có thể chứa khoảng 400 chứng chỉ và con số này tăng lên dựa trên hoạt động của người dùng trên hệ thống. Các chi tiết do Mimikatz trích xuất có giá trị sau này.

Mimitokens

Kỹ thuật mạo danh mã thông báo có thể được sử dụng với tư cách là quản trị viên cục bộ để đóng giả một người dùng khác đã đăng nhập vào hệ thống. Trong trường hợp chúng tôi xâm phạm một quản trị viên cục bộ trên máy mục tiêu thì chúng tôi có thể sử dụng nó để mạo danh một người dùng khác đã đăng nhập, ví dụ: bộ điều khiển miền sử dụng Mimitokens.

1
2
usemodule credentials/mimikatz/Mimitokens
execute

Chìa khóa tiền điện tử

Mô-đun keys của PowerShell Empire hoạt động trên mặt sau của mô-đun tiền điện tử của Mimikatz, Đây là một trong những mô-đun lâu đời nhất vẫn còn hoạt động trong môi trường hoang dã. Nó chỉ đạo các chức năng CryptoAPI của mục tiêu. Theo nghĩa chung, khả năng sử dụng giống như nhị phân certutil có trong Windows Machine theo mặc định. Nó sử dụng việc mạo danh mã thông báo để làm lợi thế của nó và sau đó vá các chức năng CryptoAPI kế thừa để vá dịch vụ cách ly khóa CNG giúp các khóa có thể xuất được. Sau đó, nó chỉ xuất các khóa đó trong một tệp PVK.

1
2
usemodule credentials/mimikatz/keys
execute

Thanh toán vé

Trong khi làm việc với mã thông báo và vé, sẽ có lúc số lượng vé quá lớn để làm việc với. Kịch bản này sớm hay muộn sẽ phát sinh và đó là lúc mô-đun thanh lọc sẽ giúp bạn. Nó sẽ xóa tất cả các vé trong phiên hiện tại.

Mật khẩu đăng nhập

Mimikatz có khả năng lấy lại mật khẩu văn bản rõ ràng cũng như hàm băm. Điều này được thực hiện bằng cách khai thác Dịch vụ Cơ quan Bảo mật Cục bộ trên Windows. Sau khi máy bị xâm nhập, kẻ tấn công có thể sử dụng PowerShell Empire để tải mô-đun mật khẩu đăng nhập nhằm trích xuất mật khẩu văn bản rõ ràng. Những mật khẩu này có thể được sử dụng để tạo Vé vàng, Tiếp quản tài khoản hoặc chỉ là một bước sơ bộ cho một cuộc tấn công khác. Như chúng ta có thể thấy hình ảnh cho thấy rằng chúng tôi đã trích xuất thành công mật khẩu cho Người dùng Yashika và Aarti.

1
2
usemodule credentials/mimikatz/logonpasswords
execute

Cơ quan an ninh địa phương (LSA | LSASS.EXE)

LSA và LSASS lần lượt là viết tắt của “Cơ quan bảo mật cục bộ” và “Dịch vụ hệ thống con (máy chủ) của Cơ quan an ninh cục bộ”. LSA là một quy trình hệ thống được bảo vệ để xác thực và đăng nhập người dùng vào máy tính cục bộ. Thông tin đăng nhập miền được sử dụng bởi hệ điều hành và được xác thực bởi LSA. LSA có thể xác thực thông tin người dùng bằng cách kiểm tra cơ sở dữ liệu SAM nằm trên cùng một máy tính. LSASS quản lý chính sách hệ thống cục bộ, xác thực người dùng và kiểm tra trong khi xử lý dữ liệu bảo mật nhạy cảm như băm mật khẩu và khóa Kerberos. Mật khẩu được bảo vệ bởi hệ điều hành. Chỉ mã chạy trong quy trình với LSA mới có thể đọc và ghi thông tin xác thực tên miền. LSASS có thể lưu trữ thông tin đăng nhập ở nhiều dạng, bao gồm bản rõ được mã hóa có thể đảo ngược, vé Kerberos (vé cấp vé (TGT), vé dịch vụ), hàm băm NT,

Sau khi thỏa hiệp mục tiêu, chúng ta có thể sử dụng PowerShell Empire để trích xuất hàm băm của người dùng từ máy với sự trợ giúp của mô-đun lsadump như trong hình.

1
2
usemodule credentials/mimikatz/lsadump
execute

SAM

SAM là viết tắt của Security Account Manager quản lý tất cả các tài khoản người dùng và mật khẩu của họ. Nó hoạt động như một cơ sở dữ liệu. Tất cả các mật khẩu được băm và sau đó được lưu trữ SAM. LSA (Cơ quan bảo mật địa phương) có trách nhiệm xác minh thông tin đăng nhập của người dùng bằng cách khớp mật khẩu với cơ sở dữ liệu được duy trì trong SAM. SAM bắt đầu chạy trong nền ngay khi Windows khởi động. Mô-đun sam của PowerShell Empire có thể được sử dụng để giải nén tệp SAM và băm mật khẩu liên quan.

1
2
usemodule credentials/mimikatz/sam
execute

Sau khi mục tiêu bị xâm phạm bằng các phương pháp khác, kẻ tấn công có thể sử dụng mô-đun sam PowerShell Empire để nhắm mục tiêu tệp SAM và đọc các băm mật khẩu như thể hiện trong hình dưới đây.

Phần kết luận

Đây là loạt bài rất hay và tương đối khó chơi, các bạn học viên cần dựng mô hình lab để pentest cẩn thận, kỹ càng nhằm hiểu được ý nghĩa của nó, từ đó mới nghĩ đến các giải pháp giảm thiểu.

Cần có kiến thức MCSA 2016 để nuốt trọn “giáo án” phần Mimikatz của H.A này.

Bài bổ sung cho lớp CEH v11 và PreOSCP

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