Phân tích lỗ hổng bảo mật nghiêm trọng của Microsoft: có thể dẫn đến việc kiểm soát hoàn toàn hệ thống Windows
Gần đây, bản vá bảo mật mà Microsoft phát hành đã khắc phục một lỗ hổng nâng quyền win32k nghiêm trọng. Lỗ hổng này chủ yếu tồn tại trong các phiên bản hệ điều hành Windows sớm hơn và dường như không ảnh hưởng đến Windows 11. Bài viết này sẽ phân tích cách mà kẻ tấn công có thể tiếp tục khai thác các lỗ hổng như vậy trong bối cảnh các biện pháp an ninh hiện tại không ngừng được cải thiện.
Bối cảnh lỗ hổng
Đây là một lỗ hổng "zero-day" chưa được công khai, có thể bị tin tặc khai thác một cách ác ý mà hệ thống không phát hiện, có tính phá hoại rất lớn. Thông qua lỗ hổng này, kẻ tấn công có thể kiểm soát hoàn toàn hệ thống Windows, từ đó dẫn đến việc đánh cắp thông tin cá nhân, làm sập hệ thống, mất dữ liệu và nhiều hậu quả nghiêm trọng khác. Đối với người dùng Web3, cả khóa riêng và tài sản kỹ thuật số đều có thể bị đánh cắp. Nhìn rộng hơn, lỗ hổng này thậm chí 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 mã vá cho thấy, vấn đề nằm ở việc số đếm tham chiếu của một đối tượng đã được xử lý nhiều lần. Xem xét thêm các chú thích mã nguồn trước đây, phát hiện ra rằng mã trước đây chỉ khóa đối tượng cửa sổ, mà không khóa đối tượng menu trong đối tượng cửa sổ, có thể dẫn đến việc đối tượng menu bị tham chiếu sai.
Xác minh lỗ hổng
Chúng tôi đã xây dựng một cấu trúc menu đa lớp đặc biệt để kích hoạt lỗ hổng. Các điểm chính bao gồm:
Menu cấp thấp nhất phải là loại menu hệ thống
Menu cấp cao cũng phải là menu hệ thống, nhưng cần xóa các mục menu hệ thống cụ thể.
Xóa mối quan hệ tham chiếu của menu lớp giữa
Thêm một menu trung gian để đảm bảo quá trình phát hành diễn ra suôn sẻ
Bằng cách này, có thể giải phóng đối tượng menu mục tiêu khi hàm chính trả về, dẫn đến các tham chiếu sau đó không hợp lệ.
Lợi dụng lỗ hổng
Ý tưởng tổng thể là sử dụng lỗ hổng này để thực hiện đọc và ghi bộ nhớ tùy ý, từ đó sửa đổi token tiến trình để có được quyền hệ thống. Các bước chính bao gồm:
Sử dụng lỗ hổng UAF để kiểm soát kích thước dữ liệu bổ sung của cửa sổ (cbwndextra)
Xây dựng bố cục bộ nhớ ổn định
Thực hiện các nguyên tử đọc và ghi đáng tin cậy
Định vị và sửa đổi token tiến trình
Điều quan trọng là làm thế nào để thực hiện việc ghi dữ liệu lần đầu tiên thông qua lỗ hổng. Cuối cùng, chúng tôi đã chọn cách sử dụng một cờ trong hàm vẽ lại cửa sổ để thực hiện.
Để đảm bảo tính ổn định, chúng tôi đã thiết kế cẩn thận bố trí bộ nhớ liên tục, bao gồm nhiều đối tượng cửa sổ và đối tượng lớp cửa sổ. Xác minh xem bố trí bộ nhớ có đúng như mong đợi hay không thông qua địa chỉ tay cầm lõi bị rò rỉ.
Về nguyên tắc đọc và viết, chúng tôi đã sử dụng các API như GetMenuBarInfo và SetClassLongPtr. Ngoài việc sửa đổi token, hầu hết các thao tác ghi đều được thực hiện thông qua đối tượng lớp của đối tượng cửa sổ đầu tiên.
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 lỗ hổng loại này có thể được giải quyết triệt để.
Quy trình khai thác lỗ hổng tương đối đơn giản, chủ yếu phụ thuộc vào việc rò rỉ địa chỉ tay cầm ngăn xếp trên máy tính để bàn.
Việc phát hiện lỗ hổng này có thể nhờ vào việc kiểm tra độ bao phủ mã tốt hơn.
Kiểm tra việc bố trí bộ nhớ và đọc ghi dữ liệu bất thường giúp phát hiện các lỗ hổng như vậy.
Nói chung, mặc dù tính bảo mật của Windows đang ngày càng được cải thiện, nhưng đối với các hệ thống cũ, những lỗ hổng như vậy vẫn là một mối nguy hiểm nghiêm trọng về an ninh. Các bên liên quan cần phải duy trì sự cảnh giác và kịp thời sửa chữa các lỗ hổng trong hệ thố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.
7 thích
Phần thưởng
7
5
Đăng lại
Chia sẻ
Bình luận
0/400
AirdropHunter420
· 2giờ trước
Cuốn đi toàn bộ tài sản có chút kích thích nhỉ!
Xem bản gốcTrả lời0
DuckFluff
· 08-11 10:17
Cũng không phải win11 của tôi~ Sợ gì chứ.
Xem bản gốcTrả lời0
DuskSurfer
· 08-11 10:16
Hệ thống win này tôi đã gỡ bỏ trực tiếp, Lâm Bảo Bố thật không được.
Xem bản gốcTrả lời0
SchrodingerAirdrop
· 08-11 10:14
Đã đến lúc đổi sang mac!
Xem bản gốcTrả lời0
BridgeJumper
· 08-11 09:56
Nhân lúc Microsoft chưa sửa xong, nhanh chóng chuyển sang Mac thôi.
Lỗ hổng lõi hệ thống Windows bị lộ: Tài sản khóa riêng của người dùng Web3 có thể bị đánh cắp
Phân tích lỗ hổng bảo mật nghiêm trọng của Microsoft: có thể dẫn đến việc kiểm soát hoàn toàn hệ thống Windows
Gần đây, bản vá bảo mật mà Microsoft phát hành đã khắc phục một lỗ hổng nâng quyền win32k nghiêm trọng. Lỗ hổng này chủ yếu tồn tại trong các phiên bản hệ điều hành Windows sớm hơn và dường như không ảnh hưởng đến Windows 11. Bài viết này sẽ phân tích cách mà kẻ tấn công có thể tiếp tục khai thác các lỗ hổng như vậy trong bối cảnh các biện pháp an ninh hiện tại không ngừng được cải thiện.
Bối cảnh lỗ hổng
Đây là một lỗ hổng "zero-day" chưa được công khai, có thể bị tin tặc khai thác một cách ác ý mà hệ thống không phát hiện, có tính phá hoại rất lớn. Thông qua lỗ hổng này, kẻ tấn công có thể kiểm soát hoàn toàn hệ thống Windows, từ đó dẫn đến việc đánh cắp thông tin cá nhân, làm sập hệ thống, mất dữ liệu và nhiều hậu quả nghiêm trọng khác. Đối với người dùng Web3, cả khóa riêng và tài sản kỹ thuật số đều có thể bị đánh cắp. Nhìn rộng hơn, lỗ hổng này thậm chí 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 mã vá cho thấy, vấn đề nằm ở việc số đếm tham chiếu của một đối tượng đã được xử lý nhiều lần. Xem xét thêm các chú thích mã nguồn trước đây, phát hiện ra rằng mã trước đây chỉ khóa đối tượng cửa sổ, mà không khóa đối tượng menu trong đối tượng cửa sổ, có thể dẫn đến việc đối tượng menu bị tham chiếu sai.
Xác minh lỗ hổng
Chúng tôi đã xây dựng một cấu trúc menu đa lớp đặc biệt để kích hoạt lỗ hổng. Các điểm chính bao gồm:
Bằng cách này, có thể giải phóng đối tượng menu mục tiêu khi hàm chính trả về, dẫn đến các tham chiếu sau đó không hợp lệ.
Lợi dụng lỗ hổng
Ý tưởng tổng thể là sử dụng lỗ hổng này để thực hiện đọc và ghi bộ nhớ tùy ý, từ đó sửa đổi token tiến trình để có được quyền hệ thống. Các bước chính bao gồm:
Điều quan trọng là làm thế nào để thực hiện việc ghi dữ liệu lần đầu tiên thông qua lỗ hổng. Cuối cùng, chúng tôi đã chọn cách sử dụng một cờ trong hàm vẽ lại cửa sổ để thực hiện.
Để đảm bảo tính ổn định, chúng tôi đã thiết kế cẩn thận bố trí bộ nhớ liên tục, bao gồm nhiều đối tượng cửa sổ và đối tượng lớp cửa sổ. Xác minh xem bố trí bộ nhớ có đúng như mong đợi hay không thông qua địa chỉ tay cầm lõi bị rò rỉ.
Về nguyên tắc đọc và viết, chúng tôi đã sử dụng các API như GetMenuBarInfo và SetClassLongPtr. Ngoài việc sửa đổi token, hầu hết các thao tác ghi đều được thực hiện thông qua đối tượng lớp của đối tượng cửa sổ đầu tiên.
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 lỗ hổng loại này có thể được giải quyết triệt để.
Quy trình khai thác lỗ hổng tương đối đơn giản, chủ yếu phụ thuộc vào việc rò rỉ địa chỉ tay cầm ngăn xếp trên máy tính để bàn.
Việc phát hiện lỗ hổng này có thể nhờ vào việc kiểm tra độ bao phủ mã tốt hơn.
Kiểm tra việc bố trí bộ nhớ và đọc ghi dữ liệu bất thường giúp phát hiện các lỗ hổng như vậy.
Nói chung, mặc dù tính bảo mật của Windows đang ngày càng được cải thiện, nhưng đối với các hệ thống cũ, những lỗ hổng như vậy vẫn là một mối nguy hiểm nghiêm trọng về an ninh. Các bên liên quan cần phải duy trì sự cảnh giác và kịp thời sửa chữa các lỗ hổng trong hệ thống.