-
09/04/2020
-
94
-
726 bài viết
Phân tích về lỗ hổng CVE-2023-23397 trong Microsoft Outlook
Hẳn các bạn chưa quên Patch Tuesday tháng Ba mà Microsoft tung ra có nhắc tới các lỗ hổng zero-day nghiêm trọng. Trong đó nổi bật là CVE-2023-23397 với điểm CVSS 9.8 trong Microsoft Outlook. Vài ngày sau PoC của lỗ hổng này đã bị rò rỉ khiến nhiều người dùng đứng trước nguy cơ bị tấn công trên diện rộng. Hãy cùng các chuyên gia của WhiteHat phân tích lỗ hổng này xem tại sao nó lại nguy hiểm đến vậy.
NTLM (Windows NT LAN Manager) là phương thức xác thực được sử dụng để truy cập vào hệ thống Windows bằng mã băm từ thông tin đăng nhập. Mặc dù xác thực NTLM đi kèm nhiều rủi ro nhưng vẫn được “ưa chuộng” trên các hệ thống mới để tương thích với các hệ thống cũ hơn.
Phương thức xác thực NTLM hoạt động khi máy client gửi 1 yêu cầu tới máy chủ để truy cập vào tài nguyên, máy chủ này sau đó sẽ trả lại 1 challenge (một chuỗi số bất kỳ). Khi nhận được phản hồi (Response), máy client sử dụng mã băm thông tin đăng nhập để mã hóa challenge và gửi lại máy chủ thực hiện so sánh các mã hash, từ đó đưa quyết định máy client có được phép truy cập không. Nếu có thể nắm bắt được thông tin của Response (NTLMv2 hash), kẻ tấn công có thể thực hiện xác thực được với máy chủ mà không cần bất kỳ tương tác nào của người dùng.
Mô hình mô tả quá trình xác thực sử dụng NTLM
Mô hình cách thức tấn công CVE-2023-23397 với tấn công NTLM relay
Kẻ tấn công tạo cuộc hẹn bằng cách tùy chỉnh thuộc tính trong MAPI (Message Application Program Interface - một API dành cho Microsoft Windows cho phép các chương trình nhận biết và quản lý email) đáng lẽ phải bao gồm thông tin về cuộc hẹn như chủ đề, thời gian, thành phần tham gia… được lưu vào file có định dạng .msg. Tuy nhiên kẻ tấn công lại đưa vào một đường dẫn UNC độc hại thay vì tên của một file .wav hoặc file âm thanh để có thể kết nối đến máy chủ chia sẻ tài nguyên SMB (TCP 445) do chúng kiểm soát. Khi nhận được email này, máy tính client thực hiện gửi yêu cầu xác thực NTLM đến máy chủ của kẻ tấn công.
Theo Microsoft, lỗ hổng lợi dụng 2 thuộc tính trong MAPI gồm: “PidLidReminderFileParamete”, “PidLidReminderOverride” để có thể thực thi theo sự tính toán của kẻ tấn công.
Trước tiên, thuộc tính “PidLidReminderFileParameter” là một giá trị chỉ định tên tệp cho file .wav hoặc file audio, được phát dưới dạng âm báo và âm thanh thông báo lời nhắc khi cuộc họp đã trôi qua hoặc một sự kiện đã quá hạn. Và kẻ tấn công đã lợi dụng thuộc tính này để chèn đường dẫn UNC vào.
Tiếp theo, thuộc tính “PidLidReminderOverride” sẽ đảm bảo file .msg được sử dụng khi đặt giá trị thành “True”.
Dưới đây là hình minh họa PoC chứng minh thuộc tính “PidLidReminderFileParameter” đang được đặt với đường dẫn UNC.
Khi hai thuộc tính này được kích hoạt (gửi email) sử dụng đường dẫn UNC sẽ tạo các yêu cầu truy cập tài nguyên bất kỳ do kẻ tấn công chỉ định và tham gia vào quá trình xác thực NTLM dẫn đến rò rỉ các giá trị băm nhạy cảm có chứa thông tin xác thực người dùng.
Với thông tin này, kẻ tấn công sẽ có thể lấy được các thông tin đăng nhập ở dạng văn bản rõ hoặc thực hiện tấn công NTLM relay.
Theo các chuyên gia WhiteHat, CVE-2023-23397 có mức độ cực kỳ nghiêm trọng và đã bị khai thác bởi nhóm tấn công đến từ Nga. Điều đáng quan ngại là lỗ hổng có thể bị khai thác mà không yêu cầu bất kỳ tương tác nào từ người dùng. Dựa trên thông tin về các cuộc tấn công mà các chuyên gia an ninh mạng báo cáo, có khả năng lỗ hổng này sẽ bị lạm dụng nhiều hơn trong tương lai.
Lỗ hổng tồn tại trong bộ phần mềm quá phổ biến
CVE-2023-23397 là một lỗ hổng leo thang đặc quyền trong Microsoft Outlook thuộc Microsoft Office - bộ phần mềm các ứng dụng văn phòng phổ biến hỗ trợ các công việc quản lý nhập dữ liệu, trình bày, thống kê dữ liệu... với hơn 345 triệu người dùng gói trả phí. Do đó, tất cả các phiên bản Microsoft Outlook dành cho Windows hiện được hỗ trợ đều bị ảnh hưởng, trừ Outlook dành cho Android, iOS và macOS.Chỉ cần gửi email, không cần tương tác người dùng
Tin tặc đã khai thác lỗ hổng CVE-2023-23397 bằng cách lợi dụng tính năng tạo lịch hẹn phổ biến trên Outlook - cho phép gửi email thông báo đến người dùng, từ đó đánh cắp mã băm NTLM của người dùng từ xa.NTLM (Windows NT LAN Manager) là phương thức xác thực được sử dụng để truy cập vào hệ thống Windows bằng mã băm từ thông tin đăng nhập. Mặc dù xác thực NTLM đi kèm nhiều rủi ro nhưng vẫn được “ưa chuộng” trên các hệ thống mới để tương thích với các hệ thống cũ hơn.
Phương thức xác thực NTLM hoạt động khi máy client gửi 1 yêu cầu tới máy chủ để truy cập vào tài nguyên, máy chủ này sau đó sẽ trả lại 1 challenge (một chuỗi số bất kỳ). Khi nhận được phản hồi (Response), máy client sử dụng mã băm thông tin đăng nhập để mã hóa challenge và gửi lại máy chủ thực hiện so sánh các mã hash, từ đó đưa quyết định máy client có được phép truy cập không. Nếu có thể nắm bắt được thông tin của Response (NTLMv2 hash), kẻ tấn công có thể thực hiện xác thực được với máy chủ mà không cần bất kỳ tương tác nào của người dùng.
Mô hình mô tả quá trình xác thực sử dụng NTLM
Mô hình cách thức tấn công CVE-2023-23397 với tấn công NTLM relay
Kẻ tấn công tạo cuộc hẹn bằng cách tùy chỉnh thuộc tính trong MAPI (Message Application Program Interface - một API dành cho Microsoft Windows cho phép các chương trình nhận biết và quản lý email) đáng lẽ phải bao gồm thông tin về cuộc hẹn như chủ đề, thời gian, thành phần tham gia… được lưu vào file có định dạng .msg. Tuy nhiên kẻ tấn công lại đưa vào một đường dẫn UNC độc hại thay vì tên của một file .wav hoặc file âm thanh để có thể kết nối đến máy chủ chia sẻ tài nguyên SMB (TCP 445) do chúng kiểm soát. Khi nhận được email này, máy tính client thực hiện gửi yêu cầu xác thực NTLM đến máy chủ của kẻ tấn công.
Theo Microsoft, lỗ hổng lợi dụng 2 thuộc tính trong MAPI gồm: “PidLidReminderFileParamete”, “PidLidReminderOverride” để có thể thực thi theo sự tính toán của kẻ tấn công.
Trước tiên, thuộc tính “PidLidReminderFileParameter” là một giá trị chỉ định tên tệp cho file .wav hoặc file audio, được phát dưới dạng âm báo và âm thanh thông báo lời nhắc khi cuộc họp đã trôi qua hoặc một sự kiện đã quá hạn. Và kẻ tấn công đã lợi dụng thuộc tính này để chèn đường dẫn UNC vào.
Tiếp theo, thuộc tính “PidLidReminderOverride” sẽ đảm bảo file .msg được sử dụng khi đặt giá trị thành “True”.
Dưới đây là hình minh họa PoC chứng minh thuộc tính “PidLidReminderFileParameter” đang được đặt với đường dẫn UNC.
Khi hai thuộc tính này được kích hoạt (gửi email) sử dụng đường dẫn UNC sẽ tạo các yêu cầu truy cập tài nguyên bất kỳ do kẻ tấn công chỉ định và tham gia vào quá trình xác thực NTLM dẫn đến rò rỉ các giá trị băm nhạy cảm có chứa thông tin xác thực người dùng.
Với thông tin này, kẻ tấn công sẽ có thể lấy được các thông tin đăng nhập ở dạng văn bản rõ hoặc thực hiện tấn công NTLM relay.
Theo các chuyên gia WhiteHat, CVE-2023-23397 có mức độ cực kỳ nghiêm trọng và đã bị khai thác bởi nhóm tấn công đến từ Nga. Điều đáng quan ngại là lỗ hổng có thể bị khai thác mà không yêu cầu bất kỳ tương tác nào từ người dùng. Dựa trên thông tin về các cuộc tấn công mà các chuyên gia an ninh mạng báo cáo, có khả năng lỗ hổng này sẽ bị lạm dụng nhiều hơn trong tương lai.
Người dùng cần làm gì?
Để ngăn chặn các cuộc tấn công bằng cách khai thác lỗ hổng CVE-2023-23397:- Người dùng cần áp dụng bản vá có sẵn ngay lập tức.
- Thêm người dùng vào nhóm Protected Users trên Active Directory và chặn outbound SMB (TCP cổng 445).
- Microsoft đã cung cấp tài liệu và đoạn script có sẵn để giúp các tổ chức kiểm tra xem hệ thống có đang bị ảnh hưởng hay không.
WhiteHat
Chỉnh sửa lần cuối: