CMC cảnh báo người dùng Việt nguy cơ bị tấn công từ bộ gõ Unikey

hang_h3
Thông tin được các chuyên gia bảo mật của Công ty an ninh mạng CMC Cyber Security phát hiện vào ngày 4-12, thông qua hệ thống giám sát và phòng thủ mã độc, họ đã phát hiện một mẫu mã độc mới có khả năng được tin tặc sử dụng vào mục đích thực hiện những cuộc tấn công mạng nhắm vào người dùng máy tính sử dụng bộ gõ phổ biến tại Việt Nam Unikey.

Thông tin chung
MD5: 08e71118bad94617bf25a0d42db6a564
Filename: KBDUS.dll
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 phiên bản chính thức(từ trang unikey.org) nhưng chèn thêm vào đó mã độc nguy hiểm đối với người dùng.

01_tt_chung.png

Phâ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 kdbus.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.png


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_loadkb.png

Tạ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_kdbusmain.png

Mã độc tạo ra mutex với tên “Global\mFNXzY0g” để 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-1.png


Sau 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.kci\PersistenHandler”. 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_kdbdecrypt.png

Dữ 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.

06_kdbxml.png

Giá trị tiếp theo trong khóa “HKEY_CLASS_ROOT.kci\PersistenHandler” đượ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_decryptdata.png


File 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 kdbus.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.png

10_knockertime.png

11_knockerloader.png

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_knockerresult.png


Knocker.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_knockeraction.png


Sau đó mã độc tạo ra UUID trong khóa “HKEY_CLASS_ROOT.kci\PersistenHandler”. 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_setvalue.png



Mã độ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_knockerrequest.png


Thô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:%d\r\nCache-Control: no-cache\r\nMD5:%s\r\nConnection: Close\r\n”
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.png

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

17_ip.png

Đá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/
 
Trả lời

meebo

Rìu Vàng Đôi
Thông tin hữu ích, mình đi kiểm tra toàn bộ máy xem có file lạ nao trong bộ Unikey chính chủ không đồng thời lên hết phiên bản Unikey mới nhất.

Bộ Unikey chính chủ từ unikey.org chỉ có 2 file trong file zip thôi. Anh em cẩn thận.
Gần đây bộ Google tìm Unikey là ra trang unikey[.]vn nên tránh trang này ra cho chắc ăn nhé.
 

meebo

Rìu Vàng Đôi
Vậy nếu như người dùng tải file portable tự chạy ko cài đặt thì có bị ko nhỉ , ví dụ như máy của tôi chỉ có 1 file duy nhất


Xem phần đính kèm 8217
Nếu mình đổi tên thư mục thì nó sẽ không còn mặc định nữa! nhưng nếu cài chạy Unikey qua Startup hay tùy chọn chạy cùng Windows thì có khả năng sẽ bị lần ra.
Em nghĩ rằng bọn họ đã tính đến phương án trên.
 

TheDoctor

Búa Đá
Unikey down về có khi nào bắt cài đâu nhỉ?? Chỉ giải nén ra rồi xài thôi, bài trên này là file đã sửa lại từ hacker rồi
Chắc bộ cài từ trang unikey.vn hoặc là bộ cài Unikey từ đĩa (hồi 2006 mua con máy không biết làm ntn mà được tặng luôn cả đĩa cài Unikey, v3.6 {big_smile}
 

Sofadinhtuyen

Búa Gỗ
Cái này thấy lâu rồi mà sao giờ mới thấy cảnh báo nhỉ? Cứ nghĩ .vn là an toàn. Cơ mà trang .vn nó phát tán mã độc sao không bắt nó nhỉ?
 

kezihenry

Rìu Bạc
bộ unikey từ trang unikey.org chỉ có 2 file keymap vs file exe. Từ unikey.vn là đủ thể loại cài đặt =))). Rất củ chuối là trang .vn lại đc gợi ý nhiều hơn trong khi không phải là trang chính chủ.
 

haihong20082009

Rìu Sắt Đôi
Vậy nếu như người dùng tải file portable tự chạy ko cài đặt thì có bị ko nhỉ , ví dụ như máy của tôi chỉ có 1 file duy nhất


Xem phần đính kèm 8217
Vì Unikey khi khởi động, nếu đang gõ tiếng việt mã font Unicode (Unicode tổ hợp và Unicode dựng sẵn) đều sử dụng hàm LoadKeyboardLayoutA để gọi thông số 0x0000042a (tiếng Việt, có file thư viên tương ứng KBDVNTC.DLL) và 0x00000409 (tiếng Anh) cho các mã font còn lại (ABC, VietWareX, VietWareF, VNI-WIN ....) nên đã bị load file thư viện KBDUS.DLL như bạn chủ thớt đã phân tích rất kỹ ở trên. Tải file ở trang chính chủ chỉ có mỗi file thực thi UniKeyNT.exe nhưng tác giả vẫn sử dụng hàm này để tránh lỗi khi gõ tiếng Việt vào các trình soạn thảo văn bản khó nhằn như Email của Windows, Edge, Note của Office 2019 ....Kiến nghị bạn Kim Long bỏ hàm này đi, để người dùng tự chuyển thì sẽ không có chuyện gì. Và điều quan trọng nhất là tải về từ trang Web chính chủ UNIKEY.ORG. Theo ý kiến cá nhân, em thấy chương trình này gõ tiếng Việt rất chuẩn và là người đàn anh đầu đàn mở mã nguồn mở cho bộ gõ tiếng Việt.
(Em cũng viết bộ gõ tiếng Việt cho riêng mình từ thời Win95 bằng Pascal cho đến bây giờ. Ngày trước biên dịch bằng Borland Pascal, sau biên dịch bằng Delphi)
 

HappyLucifer

Búa Gỗ Đôi
Mình tải unikey cũng khá lâu rồi nên không nhớ rõ là tải từ web nào nhưng lúc xài thì chạy file unikeyNT.exe rồi xài thôi chứ cũng không setup ra thêm gì cả. Không biết là có sao không .:(
 

vantruyenle

Búa Đá
Cẩn thận kiểm tra lại theo các hướng dẩn trên là an toàn nhất.
Cám ơn đả cảnh báo.
 

dammage

Rìu Chiến
tui xài gotiengviet, hông biết có bị giống vậy không

Vậy nếu như người dùng tải file portable tự chạy ko cài đặt thì có bị ko nhỉ , ví dụ như máy của tôi chỉ có 1 file duy nhất

Xem phần đính kèm 8217
dung lượng cái file đó bao nhiêu vậy bạn, theo tui biết thì bản portable cũng không hẳn an toàn vì bản chất của nó có khi cũng là 1 file đóng gói thôi, nói chung trừ khi down từ trang web chính thức hoặc các nguồn đáng tin cậy, chứ không thì... cũng vậy à
 

Handrf

Kiếm đá
các bạn sẽ không phải lo nghĩ gì nếu xài EVKey. phần mềm này ngon hơn Unikey rất nhiều mà ít người biết quá
Mã:
https://vn-z.vn/threads/evkey-phan-mem-go-tieng-viet-tot-nhat-thay-the-unikey.17547/