File RTF tiếp tục bị lợi dụng để tấn công một cơ quan chính phủ tại Việt Nam

176

Các cuộc tấn công có chủ đích (APT) ngày càng tinh vi, phát triển khó lường hơn. Những tổ chức lớn, nhóm công ty, ngành tài chính, chính phủ là các mục tiêu thường được nhắm đến. Hacker thường lợi dụng sự chủ quan của người dùng kết hợp với các kỹ thuật tấn công công nghệ cao nhằm ăn cắp thông tin, chiếm quyền điều khiển hệ thống.

Lần này một tổ chức chính phủ là mục tiêu tấn công, email chứa file doc độc hại được gửi tới nạn nhân, file doc này thực chất là file rtf khai thác lỗ hổng bảo mật của Microsoft Office có tên CVE-2017-11882. Đây cũng là lỗ hổng được sử dụng để tấn công vào Đà Nẵng đợt cuối tháng 7/2018. Khi nạn nhân vô tình mở đọc nội dung file mã khai thác sẽ được thực thi và nạn nhân sẽ không hề hay biết điều này.

Với hình thức tấn công tinh vi, thay vì tải trực tiếp file mã độc từ máy chủ, kẻ tấn công lựa chọn thực hiện giải mã file mã độc đã được mã hóa đính kèm trong file doc. Mã khai thác sẽ ghi đè file này lên EQNEDT32.exe, một chương trình chuẩn của Microsoft Office cũng là chương trình bị khai thác lỗi. Khi EQNEDT32.exe mới được thực thi nó sẽ giải nén 2 file dll khác, mỗi file dll này lại có nhiệm vụ riêng và luôn có kết nối đợi lệnh đến máy chủ của hacker.

Các bước bên trên được sử dụng một cách tinh vi nhằm qua mặt hệ thống giám sát, phần mềm diệt virus, và việc phân tích trở lên khó hơn.

1. Phân tích sơ bộ

Kiểm tra qua thấy đây là một file có định dạng là RTF.

Dùng rtfobj để phân tích các OLE object được nhúng trong file.

Với OLEObj đầu tiên khi mở tài liệu lên 1 file 8.t sẽ được lưu vào thư mục Temp trên máy, các object còn lại được nhận diện Not a well-formed ole object.

2. Phân tích theo hành vi

Khi mở file doc tiến trình Winword.exe thực hiện gọi EQNEDT32.exe để khai thác lỗi ở trên đây.

Tiến trình EQNEDT32.exe con drop ra 2 file DXDriver.dll, ~D7E525_tmp_ASDFS_JSKDLE.dmp vào thư mục C:\ProgramData\.

Thực hiện chạy DXDriver.dll với command C:\Windows\System32\Rundll32.exe “C:\ProgramData\Application Data\DXDriver.dll”,Flush {KAQWODOS-XCJD-LKSK-KQKW-KXKSOQOWCISL}.

Sử dụng wireshark bắt được kết nối đến máy chủ độc hại.

3. Phân tích file doc

Thực hiện mở file doc bằng Winword.exe nhưng tiến trình EQNEDT32.exe được gọi bằng cách sử dụng COM Object. Để có thể debug được sử dụng kỹ thuật Image File Execution Options tạo key Debugger, khi EQNEDT32.exe được gọi trình debug có thể attach vào.

Trình Debug dừng tại Address Of Entry Point của tiến trình EQNEDT32.exe.

 Đặt Breakpoint tại hàm CreateFileW để bắt quá trình đọc file 8.t của shellcode.

Tiếp tục thực thi từng bước sẽ tới vùng code của exploit.

Shellcode thực hiện đọc file 8.t sau đó giải mã ra một file thực thi và lưu vào vùng nhớ được cấp phát bởi hàm VirtualAllocEx.

Lấy đường dẫn thực thi EQNEDT32.exe.

Sử dụng CreateProcess gọi EQNEDT32.exe ở trạng thái Suspend.

Thực hiện ghi code đã được giải mã vào vùng nhớ được cấp phát trong tiến trình EQNEDT32.exe sau đó thực hiện hàm ResumeThread. Tiến trình mới này sẽ chạy code đã được giải mã.

4. Phân tích binary đã dump

Dump file 8.t được giải mã trên bộ nhớ, được 1 file thực thi đã pack bằng UPX.

Thực hiện unpack và phân tích bằng IDA, mã độc lấy thông tin máy nạn nhân.
Kiểm tra trên máy nạn nhân có đang chạy các phần mềm diệt virus như AVG, AVAST, BKAV.
Tạo key run khởi động cùng hệ thống.
Ghi các giá trị môi trường vào registry.

Thực hiện bung ra 2 file vào thư mục C:\ProgramData, 2 file này có cách thức tương tự nhau đều là file có định dạng CAB (một định dạng nén file) và được giải nén bằng cách gọi expand.exe.

Sử dụng expand.exe để giải nén file.

Thực thi service với command C:\Windows\System32\Rundll32.exe “C:\ProgramData\Application Data\DXDriver.dll”,Flush {KAQWODOS-XCJD-LKSK-KQKW-KXKSOQOWCISL}

Thực hiện tự xóa file EQNEDT32.exe đã bị ghi đè sau khi chạy xong.

5. Phân tích DXDriver.dll

Phân tích DXDriver.dll bằng IDA hàm Flush có kiểm tra tham số đầu vào.

DXDriver.dll được gọi với tham số {KAQWODOS-XCJD-LKSK-KQKW-KXKSOQOWCISL} thực hiện đọc file DXDriver.dll rồi lưu lại trên vùng nhớ cấp phát bằng hàm VirtualAlloc.

Thực hiện gọi lại Flush với tham số {DAOSOQJS-QWWE-LALM-XKSD-AKQJWKSDAXLO}.

Với đầu vào thứ 2 kiểm tra tiến trình Bka.exe, BkavSystemService.exe có đang chạy.

Đọc giá trị DLL_INIT được lưu trong registry, đây là đường dẫn đến file dll còn lại được bung ra. Thực hiện tạo Muxtex và gọi hàm BeginApp trong file dll còn lại.

6. Phân tích …ASDFS_JSKDLE.dmp

Thực hiện đọc và giải mã giá trị được lưu tại registry.

1

Sử dụng GET kết nối đến http://141.105.64[.]231/Twitter/home/login.php.
2
Lấy thông tin, phiên bản hệ thống.
3
Thực hiện POST dữ liệu đã mã hóa lên máy chủ độc hại.
4
Tạo vòng lặp đợi lệnh trả về từ máy chủ độc hại.
6
Thực hiện tải đữ liệu về từ máy chủ.
Giải nén file tải về từ máy chủ lưu lại với tên Microsoft_Cloud.TMP.
Tạo thêm giá trị registry mới KSEC lưu đường dẫn file đã được tải về .
Lấy đường dẫn file Microsoft_Cloud.TMP sử dụng GetProcAddress để lấy địa chỉ hàm PythonThreadStart sau đó thực thi dll mới này.

7. IOCS

  • URL: http://141.105.64[.]231/Twitter/home/login.php
  • URL: http://27.255.65[.]110/Microsoft/Service/util.XML
  • URL: http://27.255.65[.]110/Microsoft/Service/Update.php
  • RTF: d648c374439cf5fe9df8dc59eb472067
  • 8t: 0271eb92ec62fcc732c8525fef305b7f
  • ASDFS_JSKDLE.dll: 04efa27e5b4998f8c1f7045c341b957a
  • DXDriver.dll: 0d69cc15d8e7c0930e30d26a233625f7

8. Khuyến cáo

Để bảo vệ thông tin trước những cuộc tấn công có chủ đích ngày càng tinh vi, khó lường, chúng ta cần cảnh giác và kiểm tra kỹ email được nhận, tên người gửi, tệp hoặc link đính kèm trong email đó.

Đối với người dùng cá nhân, cần sử dụng và thường xuyên cập nhật phần mềm diệt virus mới nhất.

Đối với doanh nghiệp, cần sử dụng các công nghệ scan email để ngăn chặn các chiến dịch tấn công qua email. Đồng thời, sử dụng các công nghệ giám sát mạng để phát hiện kịp thời máy tính có dấu hiệu bị tấn công.

Chim Sẻ – CyRadar Team

Tin liên quan:
  • 46
    Shares