[EX005] Hành trình khai thác lỗ hổng phần mềm CVE-2020–5902


Chắc hẳn nhiều người đã biết đến lỗ hổng CVE-2020-5902, mới được công bố tồn tại trên hệ thống BIG-IP của F5 được cộng đồng bảo mật quan tâm gần đây. Sau thời gian tìm hiểu, tôi cũng tò mò về root cause của nó và càng thấy thú vị hơn về mitigation bypass được công bố vài ngày sau đó. Do đó, tôi quyết định tìm hiểu sâu hơn về lỗ hổng này. Bài viết chia sẻ lại một số câu hỏi mà tôi đã đặt ra và trả lời trong quá trình hiểu về lỗ hổng.

Bài viết này được viết sau khi tìm hiểu, trao đổi và hướng dẫn bởi anh QuangNX (@sovietw0rm) và QuangBX (@buxu). Xin chân thành cảm ơn các chuyên gia!

Image source: https://skugal.org/critical-rce-flaw-with-f5-let-remote-attackers-take-complete-control-of-the-device/

Câu chuyện

Mã khai thác được lan truyền nhiều trên mạng xã hội chỉ vài ngày ngắn ngủi sau khi hãng F5 ra KB về lỗ hổng này. Tôi bắt đầu với một số câu hỏi trong đầu: 
  • Tại sao lỗ hổng lại tồn tại?
  • Tại sao với chuỗi ..; lại có thể bypass auth, hơn nữa lại chỉ có thể áp dụng với /tmui/login.jsp mà không phải là các endpoint khác.

[IR006] Incident Response Challenge_Sad Chal Write-up


1. Câu chuyện

Thông qua Twitter, tôi biết được công ty Cynet có xây dựng và tổ chức một cuộc thi dành cho các chuyên gia Ứng phó sự cố (Incident Response) kiểm tra kỹ năng của mình thông qua một loạt thử thách theo cấp độ từ Basic tới Advanced. Lý do Cynet tổ chức cuộc thi này là do họ nhận thấy các cuộc thi Capture the Flag (CTF) đã quá phổ biến, trong khi các cuộc thi về Capture the Evidence nhằm kiểm tra khả năng điều tra, phán đoán, chắt lọc thông tin dựa trên các chứng cứ thu được vẫn còn rất ít. Toàn bộ 25 bài thử thách được Cynet công bố tại đây và không giới hạn số lượng người tham gia. Người nào vượt qua hết các thử thách và đứng ở vị trí đầu tiên sẽ giành được giải thưởng là $5.000 USD.

Theo Cynet, các thử thách đều được xây dựng và cố vấn bởi các chuyên gia hàng đầu. Thời gian tạo nên khác biệt! Trả lời đáp án càng nhanh thì số điểm ghi được càng nhiều. Trong quá trình tham gia các thử thách, tôi nhận thấy bài 21 (Sad) là một trong những thử thách đòi hỏi ở người tham dự nhiều kĩ năng khác nhau, bao gồm Memory Forensic, Packet AnalysisMalware Analysis. Trong bài viết này, tôi sẽ chia sẻ lại quá trình tôi tìm ra đáp án như thế nào.

[CVE49] Microsoft Windows LNK Remote Code Execution Vulnerability - CVE-2020-1299



Shell Link Binary File Format, which contains information that can be used to access another data object. The Shell Link Binary File Format is the format of Windows files with the extension "LNK", we call it a shortcut file. Regarding the structure of this format is very complicated, Microsoft has provided a document about LNK file format for reference[1].

I've followed the Microsoft patches for a long time. In 2018, I found that they had 2 LNK bugs which were fixed and all of them were RCE. Recently, @Lays found a bunch of LNK file parsing bugs, so with this binary file format I think it is suitable for fuzzing. However, you need to reverse and learn how to handle this LNK file on Windows.

Introduction

File Explorer, previously known as Windows Explorer, is a file manager application that has been included with releases of the Microsoft Windows operating system from Windows 95 onwards. It provides a graphical user interface for accessing the file systems. It is also the component of the operating system that presents many user interface items on the screen such as the taskbar and desktop.

[CVE49] Microsoft Windows LNK Remote Code Execution Vulnerability - CVE-2020-1299



Shell Link là một định dạng binary file, chứa thông tin cho phép truy cập đến các đối tượng dữ liệu khác. Định dạng này có phần mở rộng là “LNK”, chúng ta thường gọi là shortcut file. Về cấu trúc của định dạng này rất phức tạp, Microsoft có cung cấp document về định dạng file LNK để tham khảo[1].

Tôi đã theo dõi các bản vá của Microsoft trong nhiều năm. Năm 2018, tôi nhận thấy Microsoft Windows bị phát hiện có 2 bug LNK đã được khắc phục và đều là lỗ hổng RCE. Gần đây @Lays đã tìm ra được 1 loạt các lỗi về parsing file LNK, với định dạng file là dạng binary này, tôi nghĩ rất phù hợp để sử dụng fuzzing. Tuy nhiên cần reverse và tìm hiểu cách xử lý file LNK này trên Windows.

Giới thiệu

File Explorer trước đây gọi là Windows Explorer (explorer.exe), là một ứng dụng quản lý tệp và được tích hợp sẵn trong các hệ điều hành Microsoft Windows từ Windows 95 trở đi. Nó cung cấp một giao diện GUI để truy cập các hệ thống tập tin. Nó cũng bao gồm nhiều thành phần giúp người dùng tương tác như taskbar, desktop,…

[RE015] "Heaven’s Gate" Một kĩ thuật cũ nhưng hiệu quả


Heaven’s Gate” là tên thường gọi của một kỹ thuật cho phép binary 32-bit thực thi các lệnh 64-bit mà không cần tuân theo luồng xử lý chuẩn trên môi trường (Windows 32-bit on Windows 64-bit) WoW64. Có thể hiểu đơn giản WoW64 như là một sandbox nhằm hỗ trợ các ứng dụng 32-bit chạy liền mạch trên Windows 64-bit. Các tiến trình WoW64 thường gồm hai phiên bản của ntdll.dll. Đầu tiên là phiên bản 32-bit (được tải từ thư mục SysWow64), nó giúp chuyển tiếp các lời gọi hệ thống (system calls) tới môi trường WoW64. Thứ hai là phiên bản 64-bit (được tải từ thư mục System32), tiếp nhận thông tin từ môi trường WoW64 và chịu trách nhiệm chuyển đổi user-mode sang kernel-mode. Bên cạnh đó là một số các DLLs đặc biệt khác, bao gồm:  wow64.dll, wow64cpu.dll, wow64win.dll.

Hình 1: Mô hình kiến trúc của WoW64
Nguồn: https://slideplayer.com/slide/4482200/