Phân tích lỗ hổng Windows 0day: Từ UAF menu đến nâng quyền hệ thống

robot
Đang tạo bản tóm tắt

Phân tích và khai thác lỗ hổng 0day của hệ thống Microsoft Windows

Giới thiệu

Tháng trước, bản vá bảo mật của Microsoft bao gồm một lỗ hổng nâng quyền win32k bị khai thác, chỉ tồn tại trên các hệ thống Windows sớm. Bài viết này sẽ phân tích cách mà kẻ tấn công vẫn tiếp tục khai thác lỗ hổng này trong bối cảnh các biện pháp an ninh hiện tại đang không ngừng được cải thiện. Môi trường phân tích là Windows Server 2016.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý của Web3

Bối cảnh lỗ hổng

Lỗ hổng 0day chỉ những lỗ hổng chưa được công bố và sửa chữa, có thể bị khai thác một cách xấu để gây ra thiệt hại lớn. Lỗ hổng 0day trên hệ thống Windows vừa được phát hiện có thể cho phép hacker có được quyền kiểm soát hoàn toàn hệ thống, hậu quả bao gồm nhưng không giới hạn:

  • Lấy cắp thông tin cá nhân
  • Hệ thống sập, dữ liệu bị mất
  • Thiệt hại tài chính
  • Cài đặt phần mềm độc hại
  • Khóa riêng tư bị đánh cắp
  • Tài sản kỹ thuật số đã được chuyển nhượng

Xét từ một góc độ rộng hơn, lỗ hổng này có thể ảnh hưởng đến toàn bộ hệ sinh thái Web3 hoạt động trên cơ sở hạ tầng Web2.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý trong trò chơi Web3

Phân tích bản vá

Bản vá đã sửa một vấn đề xử lý nhiều lần tham chiếu đối tượng. Phân tích nhận xét mã nguồn sớm cho thấy, mã gốc chỉ khóa đối tượng cửa sổ, 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.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + lớp vật lý của Web3

Phân tích khai thác lỗ hổng

Phân tích phát hiện rằng trong hàm xxxEnableMenuItem, hàm MenuItemState trả về có hai khả năng: menu chính của cửa sổ hoặc submenu trong menu.

Xây dựng cấu trúc menu lồng ghép đa lớp đặc biệt và thiết lập thuộc tính cụ thể, có thể vượt qua kiểm tra hàm. Khi hàm xxxRedrawTitle trả về lớp người dùng, xóa quan hệ tham chiếu giữa các menu và giải phóng đối tượng menu mục tiêu. Cuối cùng, trong hàm xxxEnableMenuItem, tham chiếu tới đối tượng menu đã không còn hiệu lực.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý trong trò chơi Web3

Thực hiện khai thác lỗ hổng

Tư duy tổng thể

Xem xét hai cách sử dụng:

  1. Thực thi mã shellcode
  2. Sử dụng nguyên thủy đọc/ghi để chỉnh sửa địa chỉ token

Chọn phương án thứ hai, sẽ chia quá trình sử dụng thành hai vấn đề:

  • Làm thế nào để lợi dụng lỗ hổng UAF để kiểm soát giá trị cbwndextra
  • Làm thế nào để thực hiện các nguyên tử đọc ghi ổn định

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý trong Web3

ghi dữ liệu ban đầu

Sử dụng đối tượng tên cửa sổ trong lớp WNDClass để chiếm dụng và giải phóng đối tượng menu. Tìm thời điểm để ghi dữ liệu trong hàm xxxRedrawWindow.

Cuối cùng chọn ghi tham số cb-extra của HWNDClass thông qua thao tác AND 2 với cờ.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ hệ thống + mặt vật lý trong trò chơi Web3

Bố trí bộ nhớ ổn định

Thiết kế ba đối tượng HWND liên tiếp, giải phóng đối tượng ở giữa và sử dụng đối tượng HWNDClass. Các đối tượng HWND ở trước và sau lần lượt được sử dụng cho:

  • Cung cấp tham số kiểm tra biểu tượng
  • Cung cấp phương tiện đọc và viết nguyên thủy

Thông qua địa chỉ handle lõi bị rò rỉ để xác định chính xác thứ tự sắp xếp của đối tượng.

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể lật đổ Web3 trên cả hệ thống và mức vật lý

thực hiện nguyên thủy đọc và viết

  • Bất kỳ đọc: GetMenuBarInfo()
  • Tuỳ ý viết: SetClassLongPtr()

Ngoài việc ghi TOKEN, các thao tác ghi khác sử dụng đối tượng class của đối tượng cửa sổ đầu tiên.

Tóm tắt

  1. Lỗ hổng win32k có thể bị khắc phục trong phiên bản Windows mới.

  2. Quá 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.

  3. 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.

  4. Việc phát hiện đọc ghi nhớ bất thường giúp phát hiện các lỗ hổng tương tự

Numen độc quyền: Lỗ hổng 0day của Microsoft có thể đánh bại Web3 cả ở hệ thống và cấp độ vật lý

TOKEN5.91%
Xem bản gốc
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.
  • Phần thưởng
  • 3
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
MidnightTradervip
· 14giờ trước
Một cái lỗ lớn nữa, Windows thật không ổn.
Xem bản gốcTrả lời0
TokenDustCollectorvip
· 14giờ trước
Lỗ hổng của Microsoft này hơi nghiêm trọng, khóa riêng cũng có thể bị đánh cắp.
Xem bản gốcTrả lời0
HalfIsEmptyvip
· 14giờ trước
Ôi, lại lật xe rồi~
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)