Phân tích lỗ hổng 0day cấp hệ thống Windows của Microsoft: có thể kiểm soát hoàn toàn hệ thống
Gần đây, Microsoft đã phát hành một bản vá bảo mật sửa chữa một lỗ hổng tăng quyền Win32k đang bị khai thác. Lỗ hổng này chỉ tồn tại trên các phiên bản hệ điều hành Windows cũ hơn, không thể kích hoạt trên Windows 11. Bài viết này sẽ phân tích cách mà các kẻ tấn công có thể tiếp tục khai thác lỗ hổng này trong bối cảnh bảo vệ an ninh ngày càng được tăng cường.
Bối cảnh lỗ hổng
Đây là một lỗ hổng 0day ở cấp độ hệ thống Windows, hacker có thể khai thác lỗ hổng này để chiếm quyền kiểm soát hoàn toàn Windows. Những tác hại sau khi bị kiểm soát bao gồm đánh cắp thông tin cá nhân, mất dữ liệu do hệ thống sập, thiệt hại tài chính, cài đặt phần mềm độc hại, v.v. Từ việc chìm xuống việc đánh cắp khóa riêng và chuyển nhượng tài sản kỹ thuật số, đến việc có thể ảnh hưởng đến toàn bộ hệ sinh thái Web3 hoạt động dựa trên cơ sở hạ tầng Web2.
Phân tích bản vá
Phân tích bản vá cho thấy, đây là một vấn đề liên quan đến việc tham chiếu đối tượng bị xử lý nhiều lần. Qua chú thích trong mã nguồn trước đó có thể thấy, mã trước đây chỉ khóa đối tượng cửa sổ, không khóa đối tượng menu trong đối tượng cửa sổ, có thể dẫn đến việc tham chiếu sai đối tượng menu.
Nguyên lý lỗ hổng
Phân tích sâu hơn cho thấy, menu được truyền vào xxxEnableMenuItem() thường đã bị khóa trong hàm cấp trên. Trong khi đó, hàm MenuItemState trong xxxEnableMenuItem trả về hai khả năng cho menu: menu chính của cửa sổ hoặc menu con trong menu.
Chứng minh khái niệm ( PoC ) thực hiện
PoC đã xây dựng một cấu trúc menu bốn lớp đặc biệt và thiết lập một số điều kiện cụ thể để kiểm tra thông qua hàm xxxEnableMenuItem. Bước quan trọng là khi xxxRedrawTitle trả về tầng người dùng, xóa bỏ mối quan hệ tham chiếu giữa menu C và menu B và giải phóng menu C. Như vậy, khi hàm xxxEnableMenuItem được gọi sau đó để tham chiếu đến menu C, đối tượng đó đã không còn hợp lệ.
Khai thác lỗ hổng ( Exp ) thực hiện
Có hai cách chính để sử dụng tư duy: thực thi mã shellcode hoặc sử dụng các nguyên thủy đọc/ghi để sửa đổi địa chỉ token. Để đảm bảo tính tương thích, lựa chọn đã được đưa ra là cách thứ hai. Tổng thể chia thành hai bước: sử dụng lỗ hổng UAF để kiểm soát giá trị cbwndextra, sau đó thiết lập các nguyên thủy đọc/ghi ổn định.
Điểm chính bao gồm:
Chiếm dụng và giải phóng đối tượng menu thông qua tên lớp cửa sổ.
Tìm vị trí có thể ghi dữ liệu trong hàm xxxRedrawWindow
Xây dựng một bố cục bộ nhớ ổn định, bao gồm ba đối tượng HWND liên tiếp
Sử dụng GetMenuBarInfo() và SetClassLongPtr() để thực hiện việc đọc và ghi nguyên tử.
Tóm tắt
Microsoft đang tái cấu trúc mã liên quan đến Win32k bằng Rust, trong tương lai các loại lỗ hổng này có thể bị loại trừ.
Quá trình khai thác lỗ hổng không quá khó, chủ yếu phụ thuộc vào việc rò rỉ địa chỉ handle ngăn xếp trên máy tính để bàn.
Việc phát hiện lỗ hổng có thể phụ thuộc vào việc kiểm tra độ bao phủ mã hoàn thiện hơn.
Việc phát hiện các bố cục bộ nhớ bất thường và đọc ghi dữ liệu cửa sổ giúp phát hiện các lỗ hổng tương tự.
Mặc dù những lỗ hổng này đã dần được khắc phục trong các hệ thống mới, nhưng vẫn là một mối nguy hiểm an ninh đối với các hệ thống cũ. Việc hoàn thiện cơ chế phát hiện và bảo vệ lỗ hổng vẫn rất quan trọng.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
8 thích
Phần thưởng
8
4
Chia sẻ
Bình luận
0/400
UncleLiquidation
· 4giờ trước
Hệ thống cũ chó cũng không dùng
Xem bản gốcTrả lời0
CommunityLurker
· 5giờ trước
Cơ hội kiếm tiền lại đến rồi
Xem bản gốcTrả lời0
ser_ngmi
· 5giờ trước
cũng chỉ có não của Microsoft bơm ra được những lỗ hổng như thế này
Xem bản gốcTrả lời0
AirdropHunter9000
· 5giờ trước
Hệ thống cũ vẫn chưa được nâng cấp? Không làm thì sẽ không chết.
Phân tích lỗ hổng 0day cấp hệ thống Windows: Kẻ tấn công có thể hoàn toàn kiểm soát hệ thống cũ
Phân tích lỗ hổng 0day cấp hệ thống Windows của Microsoft: có thể kiểm soát hoàn toàn hệ thống
Gần đây, Microsoft đã phát hành một bản vá bảo mật sửa chữa một lỗ hổng tăng quyền Win32k đang bị khai thác. Lỗ hổng này chỉ tồn tại trên các phiên bản hệ điều hành Windows cũ hơn, không thể kích hoạt trên Windows 11. Bài viết này sẽ phân tích cách mà các kẻ tấn công có thể tiếp tục khai thác lỗ hổng này trong bối cảnh bảo vệ an ninh ngày càng được tăng cường.
Bối cảnh lỗ hổng
Đây là một lỗ hổng 0day ở cấp độ hệ thống Windows, hacker có thể khai thác lỗ hổng này để chiếm quyền kiểm soát hoàn toàn Windows. Những tác hại sau khi bị kiểm soát bao gồm đánh cắp thông tin cá nhân, mất dữ liệu do hệ thống sập, thiệt hại tài chính, cài đặt phần mềm độc hại, v.v. Từ việc chìm xuống việc đánh cắp khóa riêng và chuyển nhượng tài sản kỹ thuật số, đến việc có thể ảnh hưởng đến toàn bộ hệ sinh thái Web3 hoạt động dựa trên cơ sở hạ tầng Web2.
Phân tích bản vá
Phân tích bản vá cho thấy, đây là một vấn đề liên quan đến việc tham chiếu đối tượng bị xử lý nhiều lần. Qua chú thích trong mã nguồn trước đó có thể thấy, mã trước đây chỉ khóa đối tượng cửa sổ, không khóa đối tượng menu trong đối tượng cửa sổ, có thể dẫn đến việc tham chiếu sai đối tượng menu.
Nguyên lý lỗ hổng
Phân tích sâu hơn cho thấy, menu được truyền vào xxxEnableMenuItem() thường đã bị khóa trong hàm cấp trên. Trong khi đó, hàm MenuItemState trong xxxEnableMenuItem trả về hai khả năng cho menu: menu chính của cửa sổ hoặc menu con trong menu.
Chứng minh khái niệm ( PoC ) thực hiện
PoC đã xây dựng một cấu trúc menu bốn lớp đặc biệt và thiết lập một số điều kiện cụ thể để kiểm tra thông qua hàm xxxEnableMenuItem. Bước quan trọng là khi xxxRedrawTitle trả về tầng người dùng, xóa bỏ mối quan hệ tham chiếu giữa menu C và menu B và giải phóng menu C. Như vậy, khi hàm xxxEnableMenuItem được gọi sau đó để tham chiếu đến menu C, đối tượng đó đã không còn hợp lệ.
Khai thác lỗ hổng ( Exp ) thực hiện
Có hai cách chính để sử dụng tư duy: thực thi mã shellcode hoặc sử dụng các nguyên thủy đọc/ghi để sửa đổi địa chỉ token. Để đảm bảo tính tương thích, lựa chọn đã được đưa ra là cách thứ hai. Tổng thể chia thành hai bước: sử dụng lỗ hổng UAF để kiểm soát giá trị cbwndextra, sau đó thiết lập các nguyên thủy đọc/ghi ổn định.
Điểm chính bao gồm:
Tóm tắt
Mặc dù những lỗ hổng này đã dần được khắc phục trong các hệ thống mới, nhưng vẫn là một mối nguy hiểm an ninh đối với các hệ thống cũ. Việc hoàn thiện cơ chế phát hiện và bảo vệ lỗ hổng vẫn rất quan trọng.