Phân tích lỗ hổng 0day trên hệ điều hành Windows của Microsoft: có thể lấy quyền kiểm soát hoàn toàn hệ thống
Tháng trước, bản vá bảo mật của Microsoft đã sửa một lỗ hổng nâng quyền trong nhân Windows đang bị tin tặc khai thác. Lỗ hổng này chủ yếu tồn tại trong các phiên bản hệ thống Windows sớm hơn và 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 các cơ chế bảo mật hiện tại đang ngày càng hoàn thiện. Môi trường phân tích của chúng tôi là Windows Server 2016.
Lỗi 0day là lỗi phần mềm chưa được phát hiện và sửa chữa. Một khi bị hacker phát hiện và khai thác, nó có thể gây ra thiệt hại nghiêm trọng. Lỗi 0day Windows được phát hiện lần này cho phép kẻ tấn công chiếm quyền kiểm soát hoàn toàn hệ thống, từ đó đánh cắp thông tin cá nhân, cài đặt phần mềm độc hại, đánh cắp tiền điện tử, v.v. Nhìn từ một góc độ 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 dựa trên cơ sở hạ tầng Web2.
Phân tích bản vá cho thấy, vấn đề nằm ở cách xử lý số đếm tham chiếu của một đối tượng trong mô-đun win32k. Chú thích mã nguồn trước đây cho thấy, mã trước đó chỉ khóa đối tượng cửa sổ, mà không khóa đối tượng menu trong cửa sổ, có thể dẫn đến việc tham chiếu sai đối tượng menu.
Chúng tôi đã xây dựng một cấu trúc menu lồng ghép đa lớp đặc biệt để kích hoạt lỗ hổng. Chìa khóa là khi hàm xxxEnableMenuItem trả về tầng người dùng, cần xóa tham chiếu đến một submenu nào đó và giải phóng nó. Như vậy, khi hàm lại vào trạng thái nhân kernel, đối tượng menu đã tham chiếu trước đó sẽ không còn hiệu lực.
Trong việc khai thác lỗ hổng, chúng tôi chủ yếu xem xét hai phương án: thực thi shellcode và sử dụng nguyên thủy đọc/ghi để sửa đổi token. Xét đến cơ chế bảo mật của Windows phiên bản cao, chúng tôi đã chọn phương án thứ hai. Toàn bộ quá trình khai thác được chia thành hai bước: trước tiên là kiểm soát giá trị của cbwndextra, sau đó thiết lập nguyên thủy đọc/ghi ổn định.
Để ghi dữ liệu lần đầu tiên, chúng tôi đã sử dụng một điểm ghi trong hàm xxxRedrawWindow. Bằng cách sắp xếp bộ nhớ một cách cẩn thận, chúng tôi có thể kiểm soát dữ liệu bộ nhớ của các đối tượng liền kề, từ đó kiểm tra thông qua các cờ trong hàm.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
Cuối cùng, chúng tôi sử dụng GetMenuBarInfo)( để thực hiện đọc tùy ý, SetClassLongPtr)( để thực hiện ghi tùy ý. Ngoài việc sửa đổi các thao tác TOKEN, các ghi khác đều được thực hiện thông qua đối tượng class của đối tượng cửa sổ đầu tiên.
![Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý Web3])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Nói chung, mặc dù lỗ hổng của mô-đun win32k đã tồn tại từ lâu, nhưng Microsoft đang cố gắng tái cấu trúc mã liên quan bằng Rust, trong tương lai các lỗ hổng kiểu này có thể được ngăn chặn trong hệ thống mới. Hiện tại, quá trình khai thác không đặc biệt khó khăn, chủ yếu phụ thuộc vào việc rò rỉ địa chỉ của các handle heap trên desktop. Cải thiện độ bao phủ mã và kiểm tra các thao tác bộ nhớ bất thường có thể là cách hiệu quả để phát hiện các lỗ hổng kiểu này.
![Numen độc quyền: Lỗ hổng 0day của Microsoft có thể làm rối loạn hệ thống + mặt vật lý trong trò chơi Web3])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
17 thích
Phần thưởng
17
5
Chia sẻ
Bình luận
0/400
MissingSats
· 07-11 05:50
Ví tiền放马内?
Xem bản gốcTrả lời0
GigaBrainAnon
· 07-11 05:50
Phù, lại phải lăn lội với việc cập nhật hệ thống rồi.
Xem bản gốcTrả lời0
PanicSeller
· 07-11 05:46
Thật đáng sợ, Ví tiền sắp chuyển sang Android rồi.
Xem bản gốcTrả lời0
LiquidatedTwice
· 07-11 05:45
Nhà đầu tư mã hóa nằm ở nhà hàng ngày, thỉnh thoảng tham gia vào NFT và Tài chính phi tập trung, lợi nhuận và thua lỗ hoàn toàn phụ thuộc vào huyền học. Phần lớn vốn được dùng cho giao dịch spot, một phần nhỏ trong hợp đồng tương lai vĩnh cửu Degen.
Phân tích lỗ hổng 0day trong nhân Windows: Có thể ảnh hưởng đến an ninh hệ sinh thái Web3
Phân tích lỗ hổng 0day trên hệ điều hành Windows của Microsoft: có thể lấy quyền kiểm soát hoàn toàn hệ thống
Tháng trước, bản vá bảo mật của Microsoft đã sửa một lỗ hổng nâng quyền trong nhân Windows đang bị tin tặc khai thác. Lỗ hổng này chủ yếu tồn tại trong các phiên bản hệ thống Windows sớm hơn và 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 các cơ chế bảo mật hiện tại đang ngày càng hoàn thiện. Môi trường phân tích của chúng tôi là Windows Server 2016.
Lỗi 0day là lỗi phần mềm chưa được phát hiện và sửa chữa. Một khi bị hacker phát hiện và khai thác, nó có thể gây ra thiệt hại nghiêm trọng. Lỗi 0day Windows được phát hiện lần này cho phép kẻ tấn công chiếm quyền kiểm soát hoàn toàn hệ thống, từ đó đánh cắp thông tin cá nhân, cài đặt phần mềm độc hại, đánh cắp tiền điện tử, v.v. Nhìn từ một góc độ 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 dựa trên cơ sở hạ tầng Web2.
Phân tích bản vá cho thấy, vấn đề nằm ở cách xử lý số đếm tham chiếu của một đối tượng trong mô-đun win32k. Chú thích mã nguồn trước đây cho thấy, mã trước đó chỉ khóa đối tượng cửa sổ, mà không khóa đối tượng menu trong cửa sổ, có thể dẫn đến việc tham chiếu sai đối tượng menu.
Chúng tôi đã xây dựng một cấu trúc menu lồng ghép đa lớp đặc biệt để kích hoạt lỗ hổng. Chìa khóa là khi hàm xxxEnableMenuItem trả về tầng người dùng, cần xóa tham chiếu đến một submenu nào đó và giải phóng nó. Như vậy, khi hàm lại vào trạng thái nhân kernel, đối tượng menu đã tham chiếu trước đó sẽ không còn hiệu lực.
Trong việc khai thác lỗ hổng, chúng tôi chủ yếu xem xét hai phương án: thực thi shellcode và sử dụng nguyên thủy đọc/ghi để sửa đổi token. Xét đến cơ chế bảo mật của Windows phiên bản cao, chúng tôi đã chọn phương án thứ hai. Toàn bộ quá trình khai thác được chia thành hai bước: trước tiên là kiểm soát giá trị của cbwndextra, sau đó thiết lập nguyên thủy đọc/ghi ổn định.
Để ghi dữ liệu lần đầu tiên, chúng tôi đã sử dụng một điểm ghi trong hàm xxxRedrawWindow. Bằng cách sắp xếp bộ nhớ một cách cẩn thận, chúng tôi có thể kiểm soát dữ liệu bộ nhớ của các đối tượng liền kề, từ đó kiểm tra thông qua các cờ trong hàm.
https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(
Cuối cùng, chúng tôi sử dụng GetMenuBarInfo)( để thực hiện đọc tùy ý, SetClassLongPtr)( để thực hiện ghi tùy ý. Ngoài việc sửa đổi các thao tác TOKEN, các ghi khác đều được thực hiện thông qua đối tượng class của đối tượng cửa sổ đầu tiên.
![Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý Web3])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(
Nói chung, mặc dù lỗ hổng của mô-đun win32k đã tồn tại từ lâu, nhưng Microsoft đang cố gắng tái cấu trúc mã liên quan bằng Rust, trong tương lai các lỗ hổng kiểu này có thể được ngăn chặn trong hệ thống mới. Hiện tại, quá trình khai thác không đặc biệt khó khăn, chủ yếu phụ thuộc vào việc rò rỉ địa chỉ của các handle heap trên desktop. Cải thiện độ bao phủ mã và kiểm tra các thao tác bộ nhớ bất thường có thể là cách hiệu quả để phát hiện các lỗ hổng kiểu này.
![Numen độc quyền: Lỗ hổng 0day của Microsoft có thể làm rối loạn hệ thống + mặt vật lý trong trò chơi Web3])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(
Lại sắp phá ví tiền à?