Chương 1: Xác thực và kiểm soát đặc quyền trên Windows: Trình bày sơ bộ về các phương thức xác thực trên Windows và các thông tin mà Windows sử dụng để kiểm soát đặc quyền. - Chương 2: Phương pháp lợi dụng phương thức xác thực để leo thang đặc quyền: Trình bày một số phương pháp được sử dụng trong quá trình khai thác, từ đó phân tích, làm rõ, mở rộng và chỉ ra nhiều mục tiêu tấn công khác chưa được khám phá, đưa ra các biện pháp phòng chống, phát hiện thích hợp. - Chương 3: Công cụ kiểm thử leo thang đặc quyền lợi dụng phương thức xác thực: Trình bày về quá trình xây dựng công cụ kiêm thử. Bắt đầu từ bước lên ý tưởng, phân tích yêu cầu, thiết kế, phát trién,.
cho tới khi hoàn thành và thử nghiệm. 3 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows CHUONG 1. XÁC THUC VÀ KIEM SOÁT ĐẶC QUYEN TREN WINDOWS Xác thực và kiểm soát đặc quyền là một những thành phần của hệ thống Windows để quản lý các hành động của đối tượng trong hệ thống từ đó tăng cường bảo mật và tính toàn vẹn của hệ thống. Trong chương này, đồ án sẽ làm rõ: - Cac thông tin mà hệ thống sử dung dé kiểm soát đặc quyền của đối tượng trên hệ thống - _ Cách thức hoạt động của các phương thức xác thực trên hệ thống 1.
Kiểm soát đặc quyền trên Windows 1. Mã định danh bao mật Để quản lý quyền truy cập và kiểm soát truy cập vào các tài nguyên trong hệ thống Windows các nhà phát triển đã sử dụng một chuỗi số nhận dạng duy nhất cho mỗi đối tượng, nó được gọi là Mã định danh bảo mật (Security identifiers — SID). Đối tượng được cấp SID không chỉ là người dùng mà còn là nhóm miền, nhóm cục bộ, máy tính cục bộ, miền, thành viên miền và dịch vụ. Đề phân biệt các đối tượng này SID là một dãy số có cau trúc rõ ràng với các thành phần chính là: - Một Revision: Số hiệu phiên ban SID.
- Một Identifier Authority: Gia trị định danh tác gia dài 48 bit xác định tac nhân đã cấp SID, tác nhân này thường là một hệ thống cục bộ Windows hoặc một miền. - Một vài Subauthorities: Là một chuỗi gồm một hay nhiều giá trị quyền phụ sử dụng đề định danh miền với các đối tượng không phải là một dịch vụ hệ thống. Trong trường hợp là SID của dịch vụ thì đây là giá trị băm SHA-1 của tên dich vụ được viết hoa. - Nhiéu nhất là một Relative Identifier — RID: Xác định một tài khoản hoặc nhóm cu thé có liên quan đến một miễn, nếu là một dịch vụ thì sẽ không có giá trị nay.
4 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows Vì SID có tập giá trị rất lớn và Windows quan tâm đến việc tạo các giá trị thực sự ngẫu nhiên trong mỗi SID, nên hầu như Windows không thể phát hành cùng một SID hai lần trên các máy hoặc miền ở bat kỳ đâu trên thế giới. Khi được hiển thị dưới dạng văn bản, mỗi SID mang một tiền tố S và các thành phần khác nhau của nó được phân tách băng dau gach ngang nhu sau: S-1-5-21-3407162097-421674631-3260644744-1103 “————————— Cho biết giá trị định danh là miền hay là cục bộ RID Cho biết giá trị định danh tác giả là 5 (cơ quan bảo mật Windows) Cho biết mức độ sửa đổi Cho biết chuỗi là SID Hình 1.1: Các thông tin trong một SID thực tế Windows cũng định nghĩa một số SID cục bộ và miền được tích hợp sẵn dé đại diện cho các nhóm mặc định.1, được sao chép từ tải liệu Windows App Development[8] chứa một số SID hay gặp cùng với định nghĩa và cách sử dụng của chúng. Không giống như SID của người dùng, các SID này là các hằng số được xác định trước và có cùng giá trị trên mọi miền và hệ thống Windows trên thế giới. > ThisPC > Local Disk (C:) » Windows » System32 > ^ Name Date modified Type Size Owner [ MixedRealityRuntime.json 3/19/2019 11:46 AM JSON File 1KB_ Trustedlnstaller |_| mlang.dat 3/ 19 11:44 AM DAT File 658 KB Trustedlnstaller a mlang.dll (2019 11:44 AM Application exten.
240KB Trustedlnstaller = mmc.exe 3/19/2019 11:45 AM Application 1,760 KB Trustedlnstaller a mmc.config 19 11:49 AM CONFIG File 4KB SYSTEM a mmcbase.dll 3/19/2019 11:45 AM Application exten. 179KB Trustedlnstaller a mmcndmar.dll /2019 11:45 AM Application exten. 2,226 KB TrustedInstaller |8 mmceshext.dll 19 11:45 AM Application exten. 131KB Trustedlnstaller E MMDevAPI.dll 3/19/2018 11:43 AM Application exten.
466KB Trustedlnstaller [2] mmgaclient.dll /2018 11:44 AM Application exten. 2,127 KB Trustedlnstaller a mmgaproxystub.dll 3/19/2019 11:44 AM Application exten. 152KB Trustedlnstaller [=| mmgaserver.exe 3/19/2019 11:44 AM Application 1,517 KB TrustedInstaller [) mmres.dil 3/19/2019 11:44 AM Application exten. 4KB TrustedInstaller Hình 1.2: Quan sát chu sở hữu cua các mô-ẩun trong thư mục system32 5 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows SID Tên mô tả Định nghĩa & chức năng Một nhóm không có thành viên.
Giá S-1-0-0 Nobody trị này thường được sử dụng khi không biết giá tri SID. Một nhóm bao gồm tat cả người dùng S-1-1-0 Everyone ngoại trừ Nobody. Người dùng đăng nhập vào thiết bị S-1-2-0 Local đầu cuối được kết nối cục bộ (vật lý) với hệ thống. ; Người dùng uy quyền của hệ điều S-1-5-18 NT Authority\SYSTEM hanh.
Một nhóm có sẵn. Thanh viên duy nhất của nhóm sau khi cai đặt mới Windows là tài khoản Administrator. S-1-5-32-544 | BUILTIN\Administrators Các tai khoản trong nhóm quan tri viên của miền cũng nằm trong nhóm nảy. S-1-5-80- 956008885- Dịch vụ mặc định của hệ điêu hành, 3418522649- là chủ sở hữu của toàn bộ các tệp tin, NT SERVICE\TrustedInstaller ` 1831038044- mô-đun quan trọng trên hệ điêu hành 1853292631- Windows.2 thể hiện điều nay.
2271478464 S-1-5-82- IIS APPPOOLADefaultAppPool | Người dùng mặc định của một 3006700770- Application Pool trên IIS7 hoặc cao 424185619- or ¬ A 4: hon. Application Pool là một dịch vu 1745488364- ; a „ ; 794895919- cua IIS dé cô lập các website hoặc 4004696415 ứng dung web với nhau, giúp giảm 6 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows rủi ro và tăng hiệu suât.1: Một số SID Thường gặp Mỗi khi người dùng đăng nhập vào hệ thống, Winlogon tạo một SID đăng nhập (logon SID) duy nhất cho mỗi phiên đăng nhập tương tác (Interactive logon). Giá trị SID này sẽ được sử dụng xuyên suốt trong quá trình xác định danh tính và cấp quyền của phiên đăng nhập đó. SID cho một phiên đăng nhập có dạng S-1-5-5-X-Y, trong đó X và Y được tạo ngẫu nhiên.exe:4260 Properties — oO < Image Performance Performance Graph DistandNetwork GPUGranh Threads TCP/IP Security Environment Strings F User PRONIKNOVENIYE \pentester Lá SID: §-1-5-21-3407162097-421674631-3260644744-1103 Session: 1 Logon Session: 4f21a Virtualized: No Protected: No ~ Group Flags Authentication authority asserted identity Mandatory BUILTIN\Users Mandatory CONSOLE LOGON Mandatory Everyone Mandatory LOCAL Mandatory Mandatory LabelxMedium Mandatory Level Integrity NT AUTHORITY Authenticated Users Mandatory NT AUTHORITY SLi |_| } Mandatory NT AUTHORITY This Organization Mandatory PRONIKNOVENIYE\Domain Users Mandatory S-1-5-21-3407162097-421674631-3260644744-526 Mandatory S-1-5-21-3407162097-421674631-3260644744-527 Mandatory Group SID: | 5-1-5-5-0-324058 E Privilege Flags SeChange Notify Privilege Default Enabled SelncreaseWorkingSetPrivilege Disabled Se Shutdown Privilege Disabled SeTimeZone Privilege Disabled SeUndock Privilege Disabled Lœ |].3: Quan sát SID đăng nhập thông qua Process Explorer 1.
Thẻ truy cập 7 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows Để mô tả phạm vi bảo mật của một tiến trình hoặc luồng trong hệ thống Windows các nhà phát triển đã sử dụng một đối tượng gọi là thẻ truy cập (Access Token). Trong AccessToken chứa các thông tin liên quan đến danh tính và đặc quyền của tài khoản người dùng được liên kết với tiến trình hoặc luồng. Khi người dùng đăng nhập thành công thì thẻ truy cập này được tạo, chỉ tiết quá trình đăng nhập và tạo thẻ truy cập được nói trong phần 1. Mọi tiến trình được khởi chạy bởi người dùng đều có một bản sao của thẻ truy cập này.
Các thẻ truy cập có kích thước khác nhau vì các tài khoản người dùng khác nhau có các bộ đặc quyền và tài khoản nhóm được liên kết khác nhau. Tuy nhiên, tất cả các thẻ truy cập đều chứa các loại thông tin giống nhau nhất định. Nội dung quan trọng nhất của thẻ truy cập được trình bày trong hình bên dưới. User Group 1 SID 44 ay 1À tr Grnup n SID Privilege 1 4 Y Ae Privilege n Default Owner Primary Group Default Discretionary ñccess Control List (DACLI Source Type Impersonation Level Statistics Restricting SID 1 4 Y A Restricting SID n TS Session ID Session Reference SandBox Inert Sudit Policy Origin Hinh 1.4: Access Token 8 Tran Quốc Hoan - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows Hệ thống sử dụng thẻ truy cập dé xác định người dùng khi một luồng tương tác với một đối tượng bảo mật hoặc cố gang thực hiện một tác vu hệ thống yêu cầu đặc quyền.
Thẻ truy cập chứa tối thiểu các thông tin sau: SID của tài khoản người dùng. Danh sách SID của các nhóm mà người dùng này thuộc về. Một logon SID xác định phiên đăng nhập hiện tại. Danh sách các đặc quyền do người dùng hoặc các nhóm của người dùng năm giữ.
SID của chủ sở hữu. SID của nhóm chính. DACL mặc định mà hệ thống sử dụng khi người dùng tạo một đối tượng bảo mật mà không chỉ định bộ mô tả bảo mật cụ thê. Nguồn gốc của token.
Thông tin xác định token là mạo danh hay token chính. Một danh sách tùy chọn các SID hạn chế. Mức độ mạo danh (nếu có). 9 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyên trên Windows 8 =plorer.ere:4260 - User PRONIKNOVENIYE\pentester - Tokenlrl 00000000-00057850 — h x Main Details Groups Privileges Default Dacl Misc Operations Token Source Security Token User: PRONIKNOVENIYE*pentester User SID: $-1-5-21-3407162097-421674631-3260644 744-1103 Token Type: Impersonation Level: Token ID: 00000000-00057850 Authentication ID: 00000000-0004F21A Origin Login ID: Modified ID: 00000000-0004F237 Integrity Level: Set Integrity Level Session ID: Hlevation Type: Default Is Elevated: False Source User32 Id: 00000000-0004F1F8 Hình 1.5: Doc Access Token từ một tiễn trình bằng công cụ TokenViewer Vì thẻ truy cập là đối tượng nằm trong bộ nhớ nhân của hệ điều hành, do đó các trường trong thẻ truy cập là bất biến dé đảm an toàn cho hệ thống.
Ngoại trừ các trường được phép sửa đôi thông qua Windows API AdjustTokenPrivileges, dữ liệu như đặc quyền va SID trong thẻ truy cập không bao giờ có thể được sửa đổi từ chế độ người dùng. Đặc quyền của tài khoản 10 Trần Quốc Hoàn - BI9DCAT077 Đồ án tốt nghiệp Xác thực và kiêm soát đặc quyền trên Windows El walpe_env _ oO x Microsoft Windows [Version 10. All rights reserved.