# Attacking Active Directory & NTDS.dit Active Directory (AD) là một dịch vụ thư mục quan trọng của Microsoft, được sử dụng rộng rãi trong các hệ thống mạng doanh nghiệp để quản lý tài khoản người dùng, quyền truy cập và tài nguyên. Vì AD kiểm soát phần lớn các hệ thống Windows trong một mạng, nên nó cũng trở thành một mục tiêu quan trọng đối với tin tặc. 1. Tổng quan về phương pháp tấn công Active Directory Các cuộc tấn công vào AD thường nhắm vào việc: * Đánh cắp thông tin xác thực (credentials) để giành quyền truy cập vào hệ thống. * Thực hiện các cuộc tấn công brute force hoặc dictionary attack để thử nghiệm mật khẩu người dùng. * Trích xuất và giải mã file NTDS.dit, nơi chứa toàn bộ danh sách tài khoản và hash mật khẩu của người dùng trong AD. 2. Tấn công xác thực Active Directory Cách thức hoạt động của xác thực AD: Mọi yêu cầu đăng nhập đều được gửi tới Domain Controller (DC) để xác thực. Tuy nhiên, các tài khoản cục bộ (local accounts) vẫn có thể đăng nhập bằng cách sử dụng hostname\username hoặc ./username. Tấn công Dictionary Attack bằng CrackMapExec Dictionary attack là một phương pháp thử từng giá trị trong một danh sách mật khẩu có sẵn để tìm mật khẩu đúng. Khi sử dụng trên mạng, phương pháp này có thể dễ bị phát hiện do: * Tạo ra lượng lớn lưu lượng mạng. * Bị chặn do chính sách khóa tài khoản sau nhiều lần đăng nhập thất bại. 3. Trích xuất NTDS.dit để đánh cắp mật khẩu NTDS.dit là tệp cơ sở dữ liệu chính của Active Directory, chứa: * Danh sách tài khoản người dùng và mật khẩu đã băm (hash passwords) * Thông tin nhóm và quyền truy cập Tệp này nằm trên máy chủ Domain Controller theo đường dẫn: `%systemroot%\ntds\NTDS.dit` Nếu kẻ tấn công có thể lấy được NTDS.dit, họ có thể trích xuất hash mật khẩu của toàn bộ người dùng trong domain. Kết nối đến Domain Controller với Evil-WinRM Sau khi có được thông tin đăng nhập, có thể sử dụng công cụ Evil-WinRM để kết nối: ``` evil-winrm -i 10.129.201.57 -u bwilliamson -p 'P@55w0rd!' ``` Khi đăng nhập thành công, có thể kiểm tra nhóm quyền của tài khoản: `net user bwilliamson` Nếu tài khoản có quyền Domain Admins, kẻ tấn công có thể kiểm soát toàn bộ domain. Tạo bản sao NTDS.dit bằng Volume Shadow Copy Vì NTDS.dit luôn được sử dụng bởi hệ thống, cần tạo một bản sao bằng Volume Shadow Copy (VSS): `vssadmin create shadow /for=C:` Xác định đường dẫn bản sao được tạo: `vssadmin list shadows` Sao chép NTDS.dit và SYSTEM để trích xuất hash: ``` copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\NTDS.dit copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\temp\SYSTEM ``` 4. Trích xuất và giải mã mật khẩu Sau khi có NTDS.dit, có thể sử dụng secretsdump.py từ Impacket để trích xuất hash mật khẩu: `secretsdump.py -ntds NTDS.dit -system SYSTEM LOCAL` Kết quả sẽ chứa danh sách hash NTLM của tài khoản, có thể dùng hashcat để crack: `hashcat -m 1000 -a 0 hashes.txt rockyou.txt` ## Sử dụng NTDSUTIL.exe NTDSUTIL.exe là một công cụ hợp pháp của Windows dành cho quản trị viên AD để quản lý NTDS. Kẻ tấn công có thể lạm dụng công cụ này để tạo bản sao của NTDS.dit: ``` ntdsutil "activate instance ntds" "ifm" "create full C:\temp" ``` Lệnh này tạo một bản sao của NTDS.dit trong thư mục C:\temp. Dấu hiệu nhận diện NTDS Dumping ## Application, system & security logs Security Log: Ghi nhận các sự kiện bảo mật như đăng nhập, truy cập file, thay đổi quyền. VD: 4624 (Login), 4799 (Group Membership), 5140 (File Access) Application Log: Ghi nhận hoạt động của ứng dụng do nhà phát triển quy định. VD: 1000 (App Crash), 325 (NTDS Database Creation), 327 NTDS database bị tách rời (detached) System Log: Ghi nhận các sự kiện hệ thống như lỗi driver, khởi động dịch vụ. VD: 7036 (Service Start), 7045 (New Service Installed) # [HTB Sherlocks] CrownJewel-2 ![{52253182-FFBB-4E9C-A494-3B33CC5FF7CE}](https://hackmd.io/_uploads/BkI0FW37Jx.png) In this very easy sherlock, you will learn how to detect NTDS.dit dumping which is one of the most critical Active directory attacks. You will get your hands on event logs to respond to an attack where the attacker utilized ntdsutil utility to dump the NTDS.dit database. ## Sherlock Scenario Forela's Domain environment is pure chaos. Just got another alert from the Domain controller of NTDS.dit database being exfiltrated. Just one day prior you responded to an alert on the same domain controller where an attacker dumped NTDS.dit via vssadmin utility. However, you managed to delete the dumped files kick the attacker out of the DC, and restore a clean snapshot. Now they again managed to access DC with a domain admin account with their persistent access in the environment. This time they are abusing ntdsutil to dump the database. Help Forela in these chaotic times!! Kẻ tấn công trước đó đã sử dụng vssadmin để dump NTDS.dit nhưng bị phát hiện và loại bỏ. Tuy nhiên, kẻ tấn công có một phương thức truy cập duy trì (persistence) và tiếp tục truy cập Domain Controller bằng tài khoản Domain Admin. Lần này, chúng lợi dụng ntdsutil để dump NTDS.dit. ## Initial Analysis ![{EAF34C46-16A7-400E-9527-748491598700}](https://hackmd.io/_uploads/Skx4ZmV7Je.png) ### What is NTDS.dit? NTDS.dit là Active Directory (AD) database được lưu trữ trên bộ điều khiển miền Domain Controller (DC). Nó chứa thông tin nhạy cảm như user accounts, group memberships, password hashes. ### Event Logs * Security Log: Ghi nhận các sự kiện bảo mật như đăng nhập, truy cập file, thay đổi quyền. VD: 4624 (Login), 4799 (Group Membership), 5140 (File Access) * Application Log: Ghi nhận hoạt động của ứng dụng do nhà phát triển quy định. VD: 1000 (App Crash), 325 (NTDS Database Creation) * System Log: Ghi nhận các sự kiện hệ thống như lỗi driver, khởi động dịch vụ. VD: 7036 (Service Start), 7045 (New Service Installed) ## Task 1 **When utilizing ntdsutil.exe to dump NTDS on disk, it simultaneously employs the Microsoft Shadow Copy Service. What is the most recent timestamp at which this service entered the running state, signifying the possible initiation of the NTDS dumping process?** Khi nào Microsoft Shadow Copy Service được kích hoạt? Khi ntdsutil được sử dụng để dump NTDS.dit, nó sẽ kích hoạt Microsoft Shadow Copy Service. Windows ghi lại thông tin về trạng thái dịch vụ này trong System Event Log với Event ID 7036. Bằng cách lọc Event ID 7036, ta có thể xác định thời điểm dịch vụ này bắt đầu chạy, tức là thời điểm NTDS.dit bắt đầu bị dump. ![{60E29CA7-0286-4AC2-A6E1-F1C6383922E4}](https://hackmd.io/_uploads/SJfW1rnQke.png) ![{E862C189-4E40-4AB4-AB62-2D7107207A40}](https://hackmd.io/_uploads/BJw_SE_ckg.png) => 2024-05-15 05:39:55 ## Task 2 **Identify the full path of the dumped NTDS file.** Xác định đường dẫn đầy đủ của NTDS.dit bị dump. Khi ntdsutil tạo một bản sao NTDS.dit, hệ thống sẽ ghi lại sự kiện này trong Application Event Log với Event ID 325. Event ID 325 xuất hiện khi một cơ sở dữ liệu mới (NTDS.dit) được tạo bởi database engine. ![{AF8F4C63-0F7C-41AD-BABA-B0A851E51B6E}](https://hackmd.io/_uploads/By8tbB2Q1l.png) => C:\Windows\Temp\dump_tmp\Active Directory\ntds.dit) ## Task 3 **When was the database dump created on the disk?** Thời điểm NTDS.dit bị dump chính là thời gian của Event ID 325 được ghi nhận. ![{97835410-EE50-48EA-98FE-D45925619BBE}](https://hackmd.io/_uploads/HyHKJInmke.png) ![{558F01BD-1EDA-4818-83FA-8E0428E6C423}](https://hackmd.io/_uploads/SJSOuEOqye.png) => 2024-05-15 05:39:56 ## Task 4 **When was the newly dumped database considered complete and ready for use?** Khi bản sao NTDS.dit được hoàn tất, hệ thống sẽ ghi lại Event ID 327 trong Application Event Log. Event ID 327 xuất hiện khi database engine hoàn tất quá trình dump và tệp tin được tách ra (detached) khỏi hệ thống. ![{58188E53-992C-452E-B398-675666B4C425}](https://hackmd.io/_uploads/rkj57HhXkl.png) ## Task 5 **Event logs use event sources to track events coming from different sources. Which event source provides database status data like creation and detachment?** Trong Windows, Event Source là tên của chương trình hoặc dịch vụ tạo ra sự kiện. Trong các Event ID 325 và 327, Event Source là ESENT. ![{79883BBB-387B-41E0-83AE-CC1FE37B7F58}](https://hackmd.io/_uploads/SknJ4r271x.png) => ESENT ## Task 6 **When ntdsutil.exe is used to dump the database, it enumerates certain user groups to validate the privileges of the account being used. Which two groups are enumerated by the ntdsutil.exe process? Give the groups in alphabetical order joined by comma space.** Những nhóm nào bị kiểm tra quyền truy cập khi sử dụng ntdsutil để dump NTDS.dit? Khi chạy ntdsutil, Windows sẽ kiểm tra xem tài khoản đang sử dụng có quyền đọc NTDS.dit hay không. Hệ thống ghi lại sự kiện này trong Security Event Log với Event ID 4799. Các nhóm thường được kiểm tra: Administrators – Nhóm quản trị viên domain. Backup Operators – Nhóm có quyền sao lưu dữ liệu, có thể đọc NTDS.dit. ![{CEA9671A-9CCE-43D4-9908-96E61243D0DC}](https://hackmd.io/_uploads/SySbHHnXyx.png) ![{798D2D82-43CA-461C-AD19-5888F29F8443}](https://hackmd.io/_uploads/SJVGrHhQJl.png) => Administrators, Backup Operators, 0x8DE3D (Logon ID) ## Task 7 **Now you are tasked to find the Login Time for the malicious Session. Using the Logon ID, find the Time when the user logon session started.** Khi nào phiên đăng nhập độc hại bắt đầu? Ý nghĩa của các Event ID * Event ID 4768: Ghi lại khi một vé dịch vụ TGT (Ticket Granting Ticket) được yêu cầu từ Kerberos Authentication Service (AS). Mục đích: Đây là bước đầu tiên của quá trình xác thực Kerberos, xảy ra khi người dùng đăng nhập vào hệ thống domain. Thông tin quan trọng: Trường Account Name cho biết tài khoản nào yêu cầu xác thực. * Event ID 4769: Ghi lại khi một vé dịch vụ TGS (Ticket Granting Service) được cấp cho một tài khoản. Mục đích: Xác nhận rằng tài khoản đang yêu cầu quyền truy cập vào một dịch vụ hoặc tài nguyên cụ thể. Thông tin quan trọng: Trường Subject Username phải khớp với sự kiện 4768. * Event ID 5379: Ghi lại khi Key Distribution Center (KDC) thực hiện các hoạt động liên quan đến vé Kerberos. Mục đích: Chứa Logon ID, giúp liên kết các sự kiện liên quan đến phiên đăng nhập. Mở Security Event Log, lọc Event ID 4768, 4769, 5379. Tìm sự kiện có Logon ID = 0x8DE3D. Xác định thời gian đăng nhập. ![{FD2CBDC4-B9FA-4CF4-ABF5-C859ED64401C}](https://hackmd.io/_uploads/HJmEeU3Xyg.png) => 2024-05-15 05:36:31 # References https://www.hackthebox.com/blog/ntds-dumping-attack-detection