Cảnh báo chiến dịch APT lợi dụng Unikey để tấn công người dùng Việt Nam

110
- Quảng cáo -

Note: Mọi người có thể tải tool để tự động xóa mã độc ở cuối bài viết.

Hệ thống giám sát CMDD của CMC phát hiện được mẫu mã độc lợi dụng phần mềm Unikey để tấn công người dùng Việt Nam. Unikey là phần mềm gõ tiếng việt dành cho Windows rất phổ biến tại Việt Nam. Lợi dụng điều này, kẻ tấn công có thể tạo ra các bộ cài unikey sử dụng file UnikeyNT.exe chính thống nhưng chèn thêm vào cùng thư mục mã độc nguy hiểm và sử dụng nhiều kỹ thuật để lừa chạy trên máy người dùng (exploit, phishing …)Do đó người dùng chỉ nên tải phiên bản chính thức của unikey từ trang web unikey.org cũng như không mở các tập tin lạ đường dẫn lạ. Đồng thời cũng update các bản vá lỗ hổng cho Windows.

01 tt chungPhân tích kỹ thuật

Trong case dưới đây, tệp tin kbdus.dll(PE 32bit) chứa mã độc đã được chèn kèm theo cùng thư mục với UnikeyNT.exe(phiên bản 4.0 RC2 Build 091101 NT). Kẻ tấn công cũng thay đổi thuộc tính về thời gian của tệp tin kbdus.dll về cùng với thời gian của file UnikeyNT.exe để người dễ dàng đánh lừa người dùng hơn. Thực chất file này được compile vào khoảng đầu tháng 10 năm 2019.

02 timestamp

Kbdus.dll

kbdus.dll là một thư viện sẽ được load lên khi người dùng sử dụng layout bàn phím US(id 0x00000409). Kẻ tấn công đã thực hiện phân tích cách hoạt động của Unikey và nhận ra khi UnikeyNT.exe load dll kèm theo là UKhook40.dll, sẽ thực thi hàm LoadKeyboardLayoutA để load layout với id là 0x00000409. Khi đó kbdus.dll sẽ được load lên. Vì đặt sẵn kbdus.dll trong cùng thư mục với UnikeyNT.exe, tệp tin này sẽ được ưu tiên load trước do đó sẽ thực thi mã độc chứa trong nó.

03 loadkbTại hàm DllMain của dll, mã độc đã tạo ra 1 thread mới để thực thi các hành vi độc hại của nó.

04 kdbusmainMã độc tạo ra mutex với tên “GlobalmFNXzY0g” để tránh thực thi chồng chéo nhau. Các string được mã độc sử dụng hầu hết đã bị obfuscate bằng stackstring hoặc hàm mã hóa riêng. Hàm mã hóa ở đây được thiết lập đơn giản bằng cách cộng vào giá trị của mỗi kí tự thêm 1(ví dụ kí tự “K” dạng hex có giá trị là 0x4b sẽ được mã hóa thành 0x4c ứng với kí tự “L”). Trên ida pro có thể sử dụng idapython để patch lại các kí tự này. Đối với stackstring, có thể dùng script ironstring.py của flare-team để đơn giản hóa việc phân tích.

04 kbdstr 1Sau khi tạo và kiểm tra mutex, mã độc tiến hành đọc dữ liệu từ các khóa registry đặc biệt. Nhiều khả năng các khóa này được tạo ra khi người dùng thực hiện chạy file cài đặt được kẻ tấn công chuẩn bị. Đầu tiên là giá trị “CB5JQLWSYQP2CWVRMJ8NB4CCUE1B8K4A” ở trong key “HKEY_CLASS_ROOT.kciPersistenHandler”. Giá trị này sẽ chứa 1 cấu trúc bao và dữ liệu xlm. Thông tin trong cấu trúc bao gồm một số giá trị để mã độc kiểm tra sau khi tiến hành giải mã dữ liệu như kích thước trước và sau của dữ liệu xlm, md5 trước và sau của dữ liệu đó.

05 kdbdecryptDữ liệu được giải mã ra là định dạng xlm, sẽ được mã độc đọc vào 1 vùng nhớ thông qua các api trong thư viện xmllite.dll.

Cảnh báo chiến dịch APT lợi dụng Unikey để tấn công người dùng Việt Nam 40

Giá trị tiếp theo trong khóa “HKEY_CLASS_ROOT.kciPersistenHandler” được đọc là “F430D64D98E6EAC972380D568F080E08”. Tại đây chứa một cấu trúc dữ liệu khác cũng bao gồm các thông tin về kích thước và md5 của dữ liệu trong nó. Dựa vào phần struct này, mã độc sẽ decrypt ra một file PE khác với cách thức decrypt và kiểm tra tương tự như quá trình xử lý dữ liệu xml.

08 kdb decryptdataFile PE này là 1 dll này có tên là Knocker.dll và export ra hàm tên là Construct, có thời gian compile gần như cùng lúc với file kbdus.dll ở trên. Mã độc tiến hành load dll lên memory. Sau đó, mã độc tìm đến địa chỉ hàm Construct và thực thi nó với tham số là địa chỉ của cấu trúc dữ liệu xml data đã đọc trước đó.

09 knocker
Cảnh báo chiến dịch APT lợi dụng Unikey để tấn công người dùng Việt Nam 41
10 knockertime
Cảnh báo chiến dịch APT lợi dụng Unikey để tấn công người dùng Việt Nam 42

11 knockerloader

Thông qua các API như VirtualAlloc, VirtualProtect, LoadLibrary, GetProcAddress, file PE đã được map lên bộ nhớ như một file PE thông thường. Trước khi thực thi hàm Construct, mã độc cũng thực thi qua hàm DllMain trong dll để đảm bảo dll hoạt động bình thường.

12 knockerresultKnocker.dll – Construct

Tại hàm construct, mã độc copy dữ liệu nhận được từ tham số truyền vào 1 vùng nhớ khác, sau đó bắt đầu thu thập thông tin máy tính người dùng. Thông tin bị thu thập bao gồm CPU, RAM, thông tin Windows, computer name, organization, thông tin về user, ngôn ngữ, timezone, card mạng, thông tin ổ phân vùng cài đặt hệ điều hành.

13 knockeractionSau đó mã độc tạo ra UUID trong khóa “HKEY_CLASS_ROOT.kciPersistenHandler”. lưu lại 2 giá trị md5. Giá trị thứ nhất được tạo ra từ thông tin về user sid, username, computer name. Thông tin md5 thứ 2 dựa trên các giá trị của cpu, ram, disk, network adapter.

14 knocker setvalueMã độc tiếp tục tạo ra 1 string để định danh máy tính có dạng “PC: %s; MAC: %s; SerVer: %f”. Dữ liệu này sẽ nằm trong 1 struct mà mã độc sẽ mã hóa ở dạng base64 để gửi đi sử dụng method là GET.

15 knockerrequestThông tin request gửi đến C&C có dạng:

“hxxp://news.vnxahoi[.]com:443/4BwhFJ9p/job.php?[UUID][data_in_base64]”

Với user agent là:

“Mozilla/4.0 (compatible; MSIE 8.0; Win32)”

Header kèm theo là:

“Content-Length:%drnCache-Control: no-cachernMD5:%srnConnection: Closern”

Trong lần kết nối đầu tiên, mã độc chờ đợi nhận được một command để thực thi. Và lần kết nối thứ 2 sẽ được gửi đi tương tự như lần 1 với mục đích report lại việc thực thi của command nhưng sử dụng phương thức POST và request thay đổi với định dạng:

“hxxp://news.vnxahoi[.]com:443/4BwhFJ9p/job.php?[UUID][create_process_sate]”.

Đây là bước cuối cùng trong quá trình thực thi của mã độc. Tuy nhiên, ở thời điểm hiện tại, response trả về là 404 Not Found nên mã độc không thể tiếp tục thực hiện các hành vi khác của mình.

Thông tin về c&c

Kiểm tra thử một số thông tin về domain của c&c biết được ip mà domain này trỏ đến là 125[.]212.218.121.

16 domain

Một số domain khác trỏ đến ip này là:

17 ip

Đánh giá mức độ nguy hiểm

Đây là chiến dịch tấn công được đầu tư nghiên cứu kỹ, rất nguy hiểm và khó bị phát hiện. Vì unikey là bộ gõ văn bản rất phổ biến ở Việt Nam, có thể nói là máy tính nào dùng Windows ở Việt Nam cũng đều cài đặt phần mềm Unikey. Những kẻ tấn công chỉ cần drop file kbdus.dll vào thư mục chứa unikey là có thể khai thác được máy của nạn nhân. Khuyến cáo người sử dụng nên kiểm tra kỹ thư mục cài đặt Unikey, loại bỏ file kbdus.dll hoặc sử dụng sản phẩm chống mã độc để bảo vệ máy tính của mình. CMDD của CMC đã cập nhật mẫu mã độc kbdus.dll, người dùng có thể download tại đường dẫn sau: https://cmccybersecurity.com/cmc-antivirus-free/

Chú ý: Các bạn có thể chép đoạn Script ra file notepad và save ra file RemoveKBDUS.bat rồi chạy nhé, file có nội dung như sau để xóa nhé.

Hoặc mọi người có thể tải file tại đây

Download Remove KBDUS

- Quảng cáo -

Leave a Reply