Metasploit cho Pentester: Mimikatz

CEH v11 Plus – Bài học bổ sung cho iClass CEH v11

Bài hướng dẫn này sẽ giới thiệu các kiểu tấn công và những tác vụ có thể thực hiện trên Máy victim Windows bị xâm nhập, máy này là một thành viên của Bộ điều khiển miền Domain Controller thông qua Mô-đun Mimikatz có sẵn của Metasploit, còn được gọi là kiwi.

Trước khi bắt đầu các bạn cần hiểu một số thuật ngữ tiếng Anh khi chuyển sang tiếng Việt như ticket là vé, dump là kết xuất , DC là Domain COntroller hay máy quản trị miền, máy quản trị vùng…

Mục lục

  • Giới thiệu
  • SAM
  • Các bí mật của LSA
  • Thay đổi mật khẩu của người dùng
  • Tấn công đồng bộ hóa DC
  • Vé vàng
  • Thanh toán vé
  • Trích xuất thông tin đăng nhập từ các gói bảo mật
    • MSV
    • Kerberos
    • SSP
    • WDigest
    • Tất cả
  • Lệnh Mimikatz
  • Trích xuất thông tin đăng nhập Wi-Fi
  • Phần kết luận

Giới thiệu

Để bắt đầu với phần trình diễn, trước tiên chúng ta cần thỏa hiệp một máy Windows là một phần của Mạng được quản lý bởi Bộ điều khiển miền. Sự lựa chọn thỏa hiệp là của riêng bạn. Sau thỏa hiệp ban đầu thông qua Metasploit, các bạn sẽ nhận được một trình bao meterpreter nếu cuộc tấn công bước đầu thành công, giai đoạn này là Gaining Access. Có một loạt các lệnh có sẵn được tải bên trong trình bao meterpreter shell và nếu một số lệnh hoặc một tập hợp các lệnh không được tải thì chúng có thể được tải dưới dạng một mô-đun. Mimikatz cũng là một mô-đun cần được nạp bên trong meterpreter shell. Sau khi tải mô-đun, bạn có thể nhấn lệnh trợ giúp để xem danh sách các tùy chọn và các cuộc tấn công khác nhau có thể được thực hiện trên máy mục tiêu thông qua trình bao này như hình minh họa.

Như vậy, bài tấn công này các bạn có thể thử nghiệm online qua Security365 Practice Lab tại khu vực nào mọi người hãy cho biết ý kiến, nếu dựng offline lab thì ta cần tìm hiểu cách cài Advance AD Pentest Lab, còn trong môi trường PLAB các bạn đã có sẵn domain controller và các thành viên trên miền là Windows 10, Windows Server 2019, và có thể khai thác cả Zero Logon ?

1
2
load kiwi
help kiwi

SAM

Mô-đun lsa_dump_sam sẽ lấy SysKey để giải mã các mục trong SAM (từ sổ đăng ký registr hoặc hive). Module này sẽ kết nối với cơ sở dữ liệu Trình quản lý tài khoản bảo mật (SAM) cục bộ (Security Account Manager)  và kết xuất (dump) thông tin đăng nhập cho các tài khoản cục bộ. Như chúng ta đã biết, LSA là một quy trình xác thực của hệ thống và ghi nhật ký người dùng trên hệ thống. LSA xác thực Thông tin đăng nhập miền được Hệ điều hành sử dụng. Thông tin người dùng được LSA xác nhận bằng cách truy cập dữ liệu SAM của mỗi máy tính.  LSA có thể lưu trữ bản rõ được mã hóa đảo ngược, vé Kerberos (TGT), vé dịch vụ), băm NT, LAN Manager (LM) . Ở đây chúng ta có thể thấy rằng hàm băm NTLM được trích xuất từ ​​người dùng raj.

1lsa_dump_sam

Bí mật LSA

Trước đây LSA được thiết kế để lưu trữ các bản ghi miền được lưu trong bộ nhớ cache. Sau một thời gian, Microsoft đã mở rộng việc sử dụng để lưu trữ mật khẩu, mật khẩu IE, mật khẩu SQL, mật khẩu RAS và mật khẩu CISCO, v.v. Một phần của những bí mật có thể được nhìn thấy trong ảnh chụp màn hình bên dưới. Lưu ý đây là mô hình lab cục bộ còn bộ điều khiển miền làm việc thực có nhiều dữ liệu hơn.

1lsa_dump_secrets

Thay đổi mật khẩu của người dùng

Mô-đun password_change có thể giúp bạn thay đổi mật khẩu cho người dùng. Có một tùy chọn để thay đổi mật khẩu nếu biết mật khẩu cũ ta sẽ tạo và lưu trữ một mã băm NTLM cho người dùng mới. Tùy chọn khác là nếu bạn có thể trích xuất mã băm NTLM của một người dùng, giả sử bằng cách sử dụng lsadump thì bạn có khả năng thay đổi mật khẩu cho người dùng đó như hình minh họa :

1
2
password_change -u raj -p 123 -P 9876
password_change -u raj -n <NTLM-hash> -P 1234

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

Cuộc tấn công DC Sync cho phép kẻ tấn công sao chép hành vi của Bộ điều khiển miền (DC). Nói một cách đơn giản, chúng mạo danh như một bộ điều khiển miền và yêu cầu các 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. Rào cản duy nhất là bạn cần một máy bị xâm nhập và người dùng của máy là thành viên của nhóm 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). Các bạn có thể tiến hành như sau :

1
2
dcsync_ntlm krbtgt
dcsync krbtgt

Vé vàng Golden Tickets

Golden Tickets là một cuộc tấn công giả mạo Kerberos Ticket Granting Tickets (TGT), từ đó được sử dụng để xác thực người dùng với sự trợ giúp của Kerberos. Dịch vụ cấp vé (TGS) phụ thuộc vào TGT để xác minh tính xác thực của vé. Điều này có nghĩa là vé giả mạo có thể được sử dụng để xác thực trực tiếp kẻ tấn công. Những tấm vé này có thể có tuổi thọ lên đến một thập kỷ. Điều đó làm cho chúng có giá trị gần như vàng. Kiểu tấn công này phần nào giống session hijacking trong môi trường Active Directory vậy, cho dù sự so sánh hơi khập khiễng nhưng cho dễ hiểu.

1
2
3
4
golden_ticket_create -d ignite.local -u pavan -s <SID> -k
kerberos_ticket_use /root/ticket.kirbi
shell
dir\\DC1.ignite.local\c$

Thanh Trừng : Purging Tickets

Trong khi làm việc với token và ticket , sẽ có lúc số lượng vé hay ticket quá lớn để có thể làm việc. Kịch bản này sớm muộn gì cũng sẽ nảy sinh và đó là lúc lệnh thanh trừng sẽ giúp bạn. Nó sẽ xóa tất cả các vé trong phiên hiện tại. Hãy xem hình minh họa sau đây :

1
2
3
kerberos _ticket_list
kerberos_ticket_purge
kerberos_ticket_list

Trích xuất thông tin đăng nhập (credential) từ các gói bảo mật (security package)

MSV

Microsoft cung cấp gói xác thực MSV1_0 cho nhật ký máy cục bộ không yêu cầu xác thực tùy chỉnh. Cơ quan bảo mật cục bộ (LSA) gọi gói xác thực MSV1_0 để xử lý dữ liệu đăng nhập được GINA thu thập cho quy trình đăng nhập Winlogon. Gói MSV1_0 kiểm tra cơ sở dữ liệu trình quản lý tài khoản bảo mật cục bộ (SAM) để xác định xem dữ liệu đăng nhập có thuộc nguyên tắc bảo mật hợp lệ hay không và sau đó trả về kết quả của nỗ lực đăng nhập cho LSA. MSV1_0 cũng hỗ trợ đăng nhập miền. MSV1_0 xử lý nhật ký miền bằng xác thực chuyển qua . Các bạn có thể trích xuất hàm băm bằng lệnh creds_msv trên meterpreter như trong hình.

1creds_msv

Kerberos

Tương tự, nếu chúng ta muốn trích xuất thông tin xác thực từ Dịch vụ Kerberos, các bạn có thể chạy creds_kerberos để tấn công Kerberos. Tuy nhiên, điều này có khả năng trích xuất mật khẩu văn bản rõ cho người dùng.

1creds_kerberos

SSP

SSP hoặc Nhà cung cấp hỗ trợ bảo mật là một thư viện liên kết động (DLL) triển khai SSPI bằng cách cung cấp một hoặc nhiều gói bảo mật cho các ứng dụng. Mỗi gói bảo mật cung cấp ánh xạ giữa các lệnh gọi hàm SSPI của ứng dụng và chức năng của mô hình bảo mật thực tế. Gói bảo mật hỗ trợ các giao thức bảo mật như xác thực Kerberos và Microsoft LAN Manager. Do kết nối của SSP với Kerberos, chúng có thể trích xuất thông tin xác thực ở dạng văn bản rõ như thể hiện trong hình ảnh bên dưới.

1creds_ssp

WDigest

WDigest.dll được giới thiệu trong hệ điều hành Windows XP. Giao thức Xác thực Thông báo được thiết kế để sử dụng với các trao đổi Giao thức Truyền Siêu văn bản (HTTP) và Lớp Bảo mật Xác thực Đơn giản (SASL). Các giao dịch này yêu cầu các bên muốn xác thực phải chứng minh khóa bí mật của chúng. Quá trình này được cải thiện dựa trên các phiên bản xác thực HTTP trước đó, trong đó người dùng cung cấp mật khẩu không được mã hóa khi chúng được gửi đến máy chủ, khiến chúng dễ bị kẻ tấn công bắt bằng cách sử dụng creds_wdigest.

1creds_wdigest

Tất cả

Trong trường hợp, bạn muốn trích xuất tất cả các hàm băm hoặc thông tin xác thực có thể có từ tất cả các gói bảo mật trên máy đích, thì hãy sử dụng lệnh creds_all trên máy đó. Lệnh này sẽ hiển thị tất cả thông tin đăng nhập từ các gói mà chúng ta vừa thảo luận phần trên.

1creds_all

Lệnh Mimikatz

Có những mô-đun bên trong Mimikatz không có quyền truy cập trực tiếp dưới dạng lệnh trong kiwi. Đây là nơi có khả năng chạy các lệnh Mimikatz để xử lý. Nó hoạt động như một normal shell với khả năng chạy các lệnh Mimikatz và thực hiện hầu hết các cuộc tấn công có thể có trong kịch bản.

1kiwi_cmd hostname

Trích xuất thông tin đăng nhập Wi-Fi

Trong số các cuộc tấn công sao chép vé đó để cung cấp khả năng chạy các lệnh như một bộ điều khiển miền, khả năng đọc thông tin đăng nhập Wi-Fi có vẻ hơi mờ nhạt nhưng đôi khi sẽ hữu ích. Mật khẩu Wi-Fi không phải là mật khẩu cần quan tâm nhiều nhất nhưng vẫn quan trọng trong đời thực. Bởi vì chúng thường là những thứ đầu tiên xuất hiện trong tâm trí người dùng. Điều này cung cấp thông tin chi tiết về cách người dùng cụ thể tạo mật khẩu. Có nhiều khả năng là tài khoản của người dùng đó sẽ có cùng mật khẩu (resue). Ngay cả khi xảy ra trường hợp đó, bạn vẫn có thể truy cập Wi-Fi miễn phí và nhiều hệ lụy khác …

1wifi_list

Kết luận

Sau Chuỗi bán phá giá chứng chỉ chứa các công cụ khác nhau có thể được sử dụng để chống lại một lỗ hổng cụ thể và PowerShell Empire cho Pentester: Mô-đun Mimikatz cung cấp thông tin chi tiết về khả năng PowerShell Empire tấn công Quy trình xác thực Windows. Chúng tôi cảm thấy cần phải có một hướng dẫn có thể giúp một người đang cố gắng sử dụng Metasploit. 

BQT CEH VIETNAM : Các bạn hãy dựng local AD Pentest Lab để thực hành, học tiến hành khai thác trên PLAB CEH một máy member của miền với metasploit rồi thử nghiệm.

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