Vén màn chiến dịch phát tán email độc hại có chứa Trojan Efimer để đánh cắp ví tiền điện tử

15:32 | 14/08/2025

Vào tháng 6/2025, hãng bảo mật Kaspersky phát hiện một chiến dịch gửi email hàng loạt (mass mailing) mạo danh luật sư của một công ty lớn. Những email này tuyên bố sai sự thật rằng tên miền của người nhận đã xâm phạm quyền của người gửi. Các email chứa mã độc Efimer, có chức năng đánh cắp tiền điện tử. Mã độc này cũng bao gồm các chức năng bổ sung giúp kẻ tấn công phát tán mã độc ở phạm vi rộng hơn, bằng cách xâm nhập các trang web WordPress và lưu trữ các tệp độc hại trên đó, cùng nhiều kỹ thuật khác. Dựa trên báo cáo của Kaspersky, bài viết sẽ cùng phân tích về hoạt động của chiến dịch này.

TỔNG QUAN

Theo phân tích của Kaspersky, chiến dịch gửi email hàng loạt đã phát tán các tin nhắn giống hệt nhau, kèm theo một tệp tin độc hại chứa mã độc Efimer, sở dĩ đặt tên gọi trên vì từ này xuất hiện trong một bình luận ở đầu tập lệnh đã giải mã.

Các phiên bản đầu tiên của Trojan này có thể đã xuất hiện vào khoảng tháng 10/2024, ban đầu lây nhiễm qua các trang web WordPress bị xâm nhập. Mặc dù những kẻ tấn công vẫn tiếp tục sử dụng phương pháp này, nhưng vào tháng 6/2025, chúng đã mở rộng phạm vi phát tán sang các chiến dịch email.

PHÂN TÍCH KỸ THUẬT

Phân phối email

Các email mà người dùng nhận được với thông tin rằng, luật sư của một công ty lớn đã xem xét tên miền của người nhận và phát hiện các từ hoặc Seed Phrase trong tên miền đó vi phạm nhãn hiệu đã đăng ký của họ. Các email này đe dọa sẽ kiện ra tòa nhưng đề nghị hủy đơn kiện nếu chủ sở hữu thay đổi tên miền.

Hơn nữa, họ thậm chí còn bày tỏ mong muốn mua lại tên miền. Tên miền cụ thể không được đề cập trong email. Thay vào đó, tệp đính kèm được cho là chứa "chi tiết" về cáo buộc vi phạm và số tiền mua lại được đề xuất.

Hình 1. Nội dung chính của email

Trong một nỗ lực lừa đảo gần đây, nạn nhân nhận được email đính kèm tệp ZIP có tên “Demand_984175” (MD5: e337c507a4866169a7394d718bc19df9). Bên trong, người nhận tìm thấy một tệp lưu trữ được bảo vệ bằng mật khẩu và một tệp trống có tên “PASSWORD - 47692”.

Điều đáng chú ý là kỹ thuật obfuscation được sử dụng cho tệp mật khẩu: Thay vì chữ “S” viết hoa thông thường, kẻ tấn công sử dụng ký tự Unicode U+1D5E6. Thay đổi tinh vi này có thể được thực hiện để ngăn các công cụ tự động dễ dàng trích xuất mật khẩu từ tên tệp.

Hình 2. Nội dung lưu trữ

Nếu người dùng giải nén tệp được bảo vệ bằng mật khẩu, họ sẽ tìm thấy một tệp độc hại có tên “Requirement[.]wsf”. Việc chạy tệp này sẽ lây nhiễm Trojan Efimer vào máy tính của họ và có thể một thông báo lỗi được hiển thị.

Hình 3. Hiển thị thông báo lỗi

Dưới đây là cách chuỗi lây nhiễm này được diễn ra: Khi tập lệnh Requirement[.]wsf chạy lần đầu, nó sẽ kiểm tra quyền quản trị viên bằng cách cố gắng tạo và ghi dữ liệu vào một tệp tạm thời tại thư mục C:\\Windows\\System32\\wsf_admin_test[.]tmp. Nếu ghi thành công, tệp sẽ bị xóa. Điều gì xảy ra tiếp theo tùy thuộc vào cấp độ truy cập của người dùng?

Nếu tập lệnh được thực thi với đặc quyền người dùng, nó sẽ thêm thư mục C:\\Users\\Public\\controller vào danh sách loại trừ của phần mềm Windows Defender. Thư mục này sau đó sẽ được sử dụng để lưu trữ nhiều tệp khác nhau, Tập lệnh cũng thêm đường dẫn đầy đủ đến WSF đang chạy và các tiến trình hệ thống C:\\Windows\\System32\\exevà C:\\Windows\\System32\\cmd.exe.

Tiếp theo, tập lệnh lưu hai tệp vào đường dẫn đã đề cập ở trên: “controller[.]js” (chứa Trojan Efimer) và “controller[.]xml”. Cuối cùng, nó tạo một tác vụ lập lịch trong Windows, sử dụng cấu hình từ controller[.]xml.

Nếu tập lệnh được chạy với quyền người dùng hạn chế, nó sẽ chỉ lưu tệp controller[.]js vào cùng đường dẫn, đồng thời thêm một tham số để tự động khởi động controller vào registry key: HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\controller. Sau đó, controller được khởi chạy thông qua tiện ích WScript.

Tập lệnh tiếp tục sử dụng các phương thức WScript để hiển thị hộp thoại thông báo lỗi rồi thoát. Điều này được thiết kế để đánh lừa người dùng, những người có thể đang mong đợi một ứng dụng hoặc tài liệu sẽ mở ra, trong khi thực tế không có gì hữu ích xảy ra.

Trojan Efimer

Tập lệnh controller[.]js là một Trojan kiểu ClipBanker. Mã độc được phát triển để thay thế địa chỉ ví tiền điện tử mà người dùng sao chép vào clipboard bằng địa chỉ của kẻ tấn công. Hơn nữa, nó còn có thể chạy code bên ngoài được nhận trực tiếp từ máy chủ điều khiển và ra lệnh (C2) của kẻ tấn công. Trojan bắt đầu bằng cách sử dụng WMI để kiểm tra xem Task Manager có đang chạy hay không.

Hình 4. Hàm kiểm tra dịch vụ Task Manager

Nếu đúng như vậy, tập lệnh sẽ thoát ngay lập tức để tránh bị phát hiện. Tuy nhiên, nếu Task Manager không chạy, tập lệnh tiếp tục cài đặt một máy khách proxy Tor trên máy tính của nạn nhân. Máy khách này được sử dụng để giao tiếp với máy chủ C2.

Tập lệnh controller[.]js có một số URL được mã hóa cứng để tải xuống Tor. Điều này đảm bảo rằng ngay cả khi một URL bị chặn, mã độc vẫn có thể truy xuất phần mềm Tor từ các URL khác. Mẫu phân tích chứa các URL sau: https://inpama[.]com/wp-content/plugins/XZorder/ntdlg[.]dat, https://www.eskisehirdenakliyat[.]com/wp-content/plugins/XZorder/ntdlg[.]dat, https://ivarchasv[.]com/wp-content/plugins/XZorder/ntdlg[.]dat, https://echat365[.]com/wp-content/plugins/XZorder/ntdlg[.]dat, https://navrangjewels[.]com/wp-content/plugins/XZorder/ntdlg[.]dat.

Tệp tải xuống từ một trong các URL (A46913AB31875CF8152C96BD25027B4D) là dịch vụ proxy Tor. Trojan lưu tệp này vào C:\\Users\\Public\\controller\\ntdlg[.]exe. Nếu tải xuống không thành công, tập lệnh sẽ kết thúc.

Giả sử tải xuống thành công, tập lệnh khởi chạy tệp với sự trợ giúp của WScript và sau đó tạm dừng trong 10 giây. Điều này có thể cho phép dịch vụ Tor thiết lập kết nối với mạng Onion và tự khởi tạo. Tiếp theo, tập lệnh đọc GUID từ C:\\Users\\Public\\controller\\GUID. Nếu không tìm thấy tệp, nó sẽ tạo một GUID mới qua hàm createGUID() và lưu vào đường dẫn đã chỉ định.

Hình 5. Hàm createGUID

Định dạng GUID luôn là “vs1a-<4 random hex characters>”, ví dụ: “vs1a-1a2b”. Sau đó, tập lệnh cố gắng tải một tệp có tên là “SEED” từ C:\\Users\\Public\\controller\\SEED.

Tệp SEED chứa các Seed Phrase cho các ví tiền điện tử mà tập lệnh đã thu thập. Nếu tìm thấy tệp SEED, tập lệnh gửi tệp đó đến máy chủ và sau đó xóa tệp đó. Các hành động này giả định rằng tập lệnh có thể đã bị chấm dứt không đúng cách trước đó, điều này sẽ ngăn Seed Phrase được gửi đến máy chủ.  Tại thời điểm này, controller kết thúc quá trình khởi tạo và bước vào chu trình hoạt động chính.

Vòng lặp chính

Trong mỗi chu kỳ hoạt động, controller sẽ kiểm tra cứ sau 500 ms xem Task Manager có đang chạy hay không. Như trước đây, nếu đang chạy, tiến trình sẽ thoát.

Nếu tập lệnh không kết thúc, nó sẽ bắt đầu ping đến máy chủ C2 qua mạng Tor. Để thực hiện việc này, tập lệnh gửi một yêu cầu chứa GUID đến máy chủ. Phản hồi của này cũng sẽ là một lệnh khác. Để tránh gây nghi ngờ với các yêu cầu quá thường xuyên trong khi vẫn duy trì liên lạc liên tục, tập lệnh sử dụng bộ đếm thời gian (với biến p_timer).

Hình 6. Sử dụng biến p_timer để kiểm tra sau 500 ms Task Manager có chạy không

Như có thể thấy, cứ sau 500 ms, ngay sau khi kiểm tra xem Task Manager có hoạt động hay không, p_timer sẽ giảm đi 1. Khi biến đạt 0 (cũng bằng 0 khi chạy ban đầu), bộ đếm thời gian được đặt lại bằng công thức sau: Biến PING_INT đặt thành 1800 được nhân đôi và kết quả lưu trữ trong p_timer. Điều này để lại 1800 giây hoặc 30 phút cho đến lần cập nhật tiếp theo.

Sau khi bộ đếm thời gian cập nhật, hàm PingToOnion được gọi. Nhiều dòng phần mềm độc hại tương tự liên tục gửi email spam để nhận tập lệnh. Hành vi này nhanh chóng làm rõ hành vi của mã độc. Bộ đếm thời gian cho phép tập lệnh ẩn dưới radar trong khi vẫn duy trì kết nối của nó với máy chủ C2. Việc chỉ thực hiện yêu cầu một lần sau mỗi nửa giờ khiến chúng khó bị phát hiện hơn.

Hình 7. Hàm PingToOnion

Hàm PingToOnion hoạt động song song với CheckOnionCMD. Trong hàm đầu tiên, tập lệnh gửi yêu cầu POST đến máy chủ C2 bằng tiện ích curl, định tuyến yêu cầu qua proxy Tor nằm tại địa chỉ localhost:9050: http://cgky6bn6ux5wvlybtmm3z255igt52ljml2ngnc5qp3cnw5jlglamisad[.]onion/route[.]php.

Phản hồi của máy chủ được lưu vào thư mục %TEMP% tại vị trí %TEMP%\cfile. Sau khi yêu cầu được gửi đến máy chủ, CheckOnionCMD sẽ ngay lập tức hoạt động. Nhiệm vụ của mã độc là tìm kiếm phản hồi từ máy chủ trong tệp có tên “cfile” nằm trong thư mục %TEMP%.

Nếu phản hồi chứa lệnh GUID, mã độc sẽ không thực thi điều gì. Đây có thể là phản hồi PONG từ máy chủ, xác nhận rằng kết nối đến máy chủ C2 vẫn hoạt động bình thường. Tuy nhiên, nếu dòng đầu tiên của phản hồi chứa lệnh EVAL, điều đó có nghĩa là tất cả các dòng tiếp theo đều là JavaScript. Mã này sau đó được thực thi bằng hàm eval.

Hình 8. Hàm CheckOnionCMD

Bất kể phản hồi của máy chủ, mã độc sau đó nhắm mục tiêu vào dữ liệu clipboard của nạn nhân. Mục tiêu chính của nó là tìm kiếm Seed Phrase và hoán đổi địa chỉ ví tiền điện tử đã sao chép với địa chỉ ví của kẻ tấn công.

Đầu tiên, mã độc quét clipboard để tìm các chuỗi trông giống như Seed Phrase. Nếu tìm thấy bất kỳ Seed Phrase nào, chúng sẽ được lưu vào một tệp có tên “SEED” (tương tự như tệp mà Trojan đọc khi khởi động). Tệp này về sau được trích xuất đến máy chủ bằng hàm PingToOnion được mô tả ở trên với tham số hành động SEED. Sau khi gửi, tệp SEED sẽ bị xóa. Sau đó, tập lệnh chụp ảnh màn hình 5 lần (có thể để ghi lại việc sử dụng các Seed Phrase) và gửi chúng đến máy chủ C2.

Hình 9. Hàm CheckStrForSeed kiểm tra giá trị Seed Phrase

Hàm FileToOnion có trách nhiệm xử lý việc gửi tệp đến máy chủ C2, nó cần hai đối số là tệp và đường dẫn đến tệp cần tải lên. Trong trường hợp này là http://cgky6bn6ux5wvlybtmm3z255igt52ljml2ngnc5qp3cnw5jlglamisad[.]onion/recvf[.]php

Hình 10. Đối số cần thiết để hàm FileToOnion gửi tệp đến máy chủ C2

Sau khi gửi tệp, tập lệnh tạm dừng trong 50 giây. Tiếp theo, nó bắt đầu thay thế các địa chỉ ví tiền điện tử. Nếu nội dung trong clipboard chỉ là số, chữ cái tiếng Anh viết hoa và viết thường (bao gồm ít nhất một chữ cái và một số), tập lệnh sẽ thực hiện các kiểm tra bổ sung để xác định xem đó là ví Bitcoin, Ethereum hay Monero. Nếu tìm thấy một ví trùng khớp trong clipboard, tập lệnh sẽ thay thế nó theo logic sau:

- Địa chỉ ví Bitcoin ngắn (bắt đầu bằng “1” hoặc “3” và dài từ 32 đến 36 ký tự) sẽ được thay thế bằng ví có hai ký tự đầu tiên khớp với địa chỉ ban đầu.

- Đối với các địa chỉ ví dài bắt đầu bằng “bc1q” hoặc “bc1p” và dài từ 40 đến 64 ký tự, mã độc sẽ tìm một địa chỉ thay thế có ký tự cuối trùng với địa chỉ gốc.

Hình 11. Tập lệnh kiểm tra ví điện tử

- Nếu địa chỉ ví bắt đầu bằng “0x” và dài từ 40 đến 44 ký tự, tập lệnh sẽ thay thế nó bằng một trong số nhiều ví Ethereum được mã hóa cứng trong mã độc. Mục tiêu ở đây là đảm bảo ba ký tự đầu tiên khớp với địa chỉ gốc.

- Đối với các địa chỉ Monero bắt đầu bằng “4” hoặc “8” và dài 95 ký tự, kẻ tấn công sử dụng một địa chỉ duy nhất được xác định trước. Tương tự như các loại ví khác, tập lệnh kiểm tra sự trùng khớp các ký tự giữa địa chỉ gốc và địa chỉ đã hoán đổi. Trong trường hợp của Monero, chỉ cần ký tự đầu tiên khớp. Điều này có nghĩa là mã độc sẽ chỉ thay thế các ví Monero bắt đầu bằng “4”.

Việc hoán đổi clipboard này thường được thực hiện với sự trợ giúp của lệnh sau: cmd[.]exe /c echo|set/p= + new_clipboard_data + |clip. Sau mỗi lần hoán đổi, tập lệnh gửi dữ liệu đến máy chủ C2 về cả ví gốc và ví thay thế.

Phân phối thông qua các trang web WordPress bị xâm phạm

Như đã đề cập, ngoài email, Trojan Efimer còn lây nhiễm qua các trang web WordPress bị xâm nhập. Kẻ tấn công tìm kiếm các trang web bảo mật kém, bẻ khóa mật khẩu bằng phương pháp Brute Force, sau đó đăng tin nhắn mời tải xuống các bộ phim mới phát hành. Những tin nhắn này bao gồm một liên kết đến kho lưu trữ được bảo vệ bằng mật khẩu chứa tệp torrent.

Hình 12. Ví dụ về bài đăng tại địa chỉ https://lovetahq[.]com/sinners-2025-torent-file/

Tệp torrent tải một thư mục xuống thiết bị. Thư mục này chứa một thứ trông giống như một bộ phim ở định dạng XMPEG, một tệp văn bản “readme !!!.txt” và một tệp thực thi đóng vai trò là trình phát đa phương tiện.

Hình 13. Các tệp tin đã tải xuống

Để xem phim ở định dạng XMPEG, người dùng dường như cần phải khởi chạy xmpeg_player[.]exe. Tuy nhiên, tệp thực thi này thực chất là một phiên bản khác của trình cài đặt Trojan Efimer.

Tương tự như biến thể WSF, trình cài đặt EXE này trích xuất thành phần chính của Trojan vào thư mục C:\\Users\\Public\\Controller, nhưng được đặt tên là “ntdlg[.]js”. Cùng với Trojan, trình cài đặt cũng trích xuất máy khách proxy Tor, có tên là “ntdlg[.]exe”. Tiếp theo, trình cài đặt sử dụng PowerShell để thêm tập lệnh vào các chương trình khởi động và thư mục “Controller” vào danh sách loại trừ của Windows Defender.

Trojan được trích xuất gần như giống với mã độc được phát tán qua email. Tuy nhiên, code của phiên bản này bao gồm các ví giả mạo cho Tron và Solana, bên cạnh các ví Bitcoin, Ethereum và Monero. Ngoài ra, GUID cho phiên bản này bắt đầu bằng “vt05”.

Các tập lệnh bổ sung

Trên một số máy tính bị xâm nhập, các nhà nghiên cứu đã phát hiện ra một số tập lệnh thú vị khác giao tiếp với cùng tên miền onion như các tập lệnh đã đề cập trước đó. Kaspersky nhận định kẻ tấn công cài đặt những tập lệnh này thông qua lệnh eval để thực thi các payload từ máy chủ C2 của chúng.

Trong số các tập lệnh bổ sung này, các nhà nghiên cứu tìm thấy một tệp có tên “btdlg.js” (MD5: 0f5404aa252f28c61b08390d52b7a054). Tập lệnh này được thiết kế để tấn công dò mật khẩu cho các trang web WordPress. Sau khi thực thi, nó sẽ tạo ra một ID người dùng duy nhất, chẳng hạn như fb01-<4 random hex characters> và lưu vào thư mục C:\\Users\\Public\\Controller\\.

Sau đó, tập lệnh khởi tạo nhiều tiến trình để thực hiện các cuộc tấn công Brute Force vào các trang web. Code chịu trách nhiệm cho các cuộc tấn công này được nhúng trong cùng một tập lệnh, trước vòng lặp chính. Để kích hoạt chức năng này, tập lệnh phải được thực thi với tham số “B”. Trong vòng lặp chính, tập lệnh tự khởi tạo bằng cách gọi hàm _runBruteProc với tham số “B”. Khi hoàn tất tấn công Brute Force, tập lệnh sẽ quay lại vòng lặp chính. Tại đây, nó tiếp tục tạo ra các tiến trình mới cho đến khi đạt đến giới hạn tối đa được mã hóa cứng là 20.

Quá trình tấn công Brute Force bắt đầu bằng hàm GetWikiWords: Tập lệnh lấy danh sách các từ khóa từ Wikipedia. Danh sách này sau đó được sử dụng để xác định các trang web mục tiêu mới cho cuộc tấn công Brute Force. Nếu tập lệnh không lấy được danh sách từ khóa, nó sẽ đợi 30 phút trước khi thử lại.

Hình 14. Hàm GetWikiWords chịu trách nhiệm lấy danh sách các từ khóa từ Wikipedia

Tiếp đó, tập lệnh đi vào vòng lặp chính. Cứ mỗi 30 phút, nó lại khởi tạo một yêu cầu đến máy chủ C2. Việc này được thực hiện với sự trợ giúp của phương thức PingToOnion, tương tự như các phương thức có tên tương tự trong các tập lệnh khác, nó gửi một lệnh BUID, truyền ID người dùng duy nhất cùng với số liệu thống kê về tấn công Brute Force. Số liệu này bao gồm tổng số tên miền bị tấn công và số lần tấn công thành công cũng như thất bại.

Tập lệnh về sau này sử dụng hàm GetRandWords để tạo danh sách các từ ngẫu nhiên có nguồn gốc từ Wikipedia.

Hình 15. Hàm GetRandWords tạo danh sách các từ ngẫu nhiên từ Wikipedia

Cuối cùng, sử dụng các từ ngẫu nhiên có nguồn gốc từ Wikipedia làm tham số tìm kiếm, tập lệnh sử dụng hàm getSeDomains tìm kiếm trên Google và Bing các tên miền để nhắm mục tiêu bằng các cuộc tấn công Brute Force.

Hình 16. Hàm getSeDomains tìm kiếm Google và Bing

Hàm ObjID tính toán một giá trị băm thập lục phân tám chữ số, đóng vai trò là mã định danh duy nhất cho một đối tượng đặc biệt (obj_id). Trong trường hợp này, đối tượng này là một tệp chứa thông tin tấn công Brute Force. Thông tin bao gồm danh sách người dùng để dò đoán mật khẩu, cờ thành công/thất bại cho các lần tấn công Brute Force và các dữ liệu liên quan đến tập lệnh khác.

Đối với mỗi tên miền riêng biệt, dữ liệu được lưu vào một tệp khác. Sau đó, tập lệnh kiểm tra xem mã định danh này đã được gặp trước đó hay chưa. Tất cả các mã định danh duy nhất được lưu trữ trong một tệp có tên “UDBXX.dat”. Tập lệnh sẽ tìm kiếm mã định danh mới trong tệp và nếu không tìm thấy, mã định danh mới sẽ được thêm vào. Việc theo dõi mã định danh này giúp tiết kiệm thời gian bằng cách tránh việc xử lý lại các tên miền đã biết.

Với mỗi tên miền mới, tập lệnh tạo một yêu cầu bằng hàm WPTryPost. Đây là một hàm XML-RPC cố gắng tạo một bài đăng thử nghiệm bằng tên người dùng và mật khẩu tiềm năng. Khi yêu cầu XML-RPC được trả lời, dù thành công hay không, hàm WPGetUsers được kích hoạt để lấy thông tin người dùng từ tên miền. Hàm này truy cập tên miền tại địa chỉ /wp-json/wp/v2/users, mong đợi nhận được danh sách người dùng trang web WordPress.

Hình 17. Hàm WPGetUsers có chức năng lấy thông tin người dùng từ tên miền

Danh sách người dùng này, cùng với tên miền và bộ đếm theo dõi số lượng người dùng và mật khẩu bị tấn công bằng Brute Force, sẽ được ghi vào tệp đối tượng đặc biệt được mô tả ở trên. ID của tệp này được tính toán bằng cách sử dụng ObjID. Sau khi xử lý một trang, tập lệnh sẽ không hoạt động trong 5 giây trước khi chuyển sang trang tiếp theo.

Trong khi đó, nhiều tiến trình đang chạy đồng thời trên máy tính của nạn nhân, tất cả đều thực hiện các thao tác Brute Force. Như đã đề cập trước đó, khi tập lệnh được khởi chạy với đối số “B”, nó sẽ bước vào một vòng lặp Brute Force vô hạn, với mỗi tiến trình xử lý các mục tiêu của mình một cách độc lập.

Khi bắt đầu mỗi lần lặp, sẽ có một khoảng dừng ngẫu nhiên 1 đến 2 giây được chọn. Sự chậm trễ này giúp phân bổ thời gian bắt đầu của các yêu cầu, khiến hoạt động này khó bị phát hiện hơn. Sau đó, tiến trình lấy một ID tệp đối tượng ngẫu nhiên để xử lý C:\\Users\\Public\\Controller\\objects bằng cách gọi ObjGetW.

Hàm ObjGetW sẽ bắt một đối tượng miền ngẫu nhiên hiện không bị ràng buộc bởi một tiến trình Brute Force. Các tệp bị khóa được đánh dấu bằng phần mở rộng LOCK. Khi một tên miền ngẫu nhiên còn trống được chọn để Brute Force, hàm lockObj được gọi. Thao tác này sẽ thay đổi phần mở rộng của tệp thành LOCK để các tiến trình khác không thể xử lý nó.

Nếu tất cả các đối tượng đều bị khóa hoặc nếu đối tượng được chọn không thể bị khóa, tập lệnh sẽ chuyển sang vòng lặp tiếp theo và thử lại cho đến khi tìm thấy một tệp khả dụng. Nếu một tệp được lấy thành công để xử lý, tập lệnh sẽ trích xuất dữ liệu từ tệp đó, bao gồm tên miền, bộ đếm Brute Force mật khẩu và danh sách người dùng.

Dựa trên các giá trị bộ đếm này, tập lệnh kiểm tra xem tất cả các tổ hợp đã được sử dụng hết hay số lần thử không thành công đã vượt quá giới hạn. Nếu số lần thử đã hết, đối tượng sẽ bị xóa và quy trình chuyển sang một lần lặp mới. Nếu vẫn còn số lần thử, tập lệnh cố gắng xác thực bằng mật khẩu được mã hóa cứng.

Hình 18. Kiểm tra tổ hợp các lần thử

Khi cố gắng đoán mật khẩu cho mỗi người dùng, một yêu cầu đăng bài trên trang web sẽ được gửi qua hàm WPTryPost. Tùy thuộc vào kết quả của lần thử Brute Force, hàm ObjUpd sẽ được gọi để cập nhật trạng thái cho tên miền hiện tại và tổ hợp tên người dùng/mật khẩu cụ thể.

Sau khi trạng thái được cập nhật, đối tượng được mở khóa và quy trình tạm dừng ngẫu nhiên trước khi tiếp tục chu kỳ với mục tiêu mới. Điều này đảm bảo việc tấn công Brute Force thông tin đăng nhập đa luồng liên tục, cũng được kiểm soát bởi tập lệnh và được ghi lại trong một tệp đặc biệt. Việc ghi log này ngăn tập lệnh bắt đầu lại từ đầu nếu gặp sự cố. Mật khẩu đoán thành công sẽ được gửi đến C2 bằng lệnh GOOD.

NẠN NHÂN BỊ ẢNH HƯỞNG

Từ tháng 10/2024 đến tháng 7/2025, Kaspersky đã phát hiện Trojan Efimer hoạt động mạnh nhất ở Brazil, nơi các cuộc tấn công đã ảnh hưởng đến 1476 khách hàng của hãng. Các quốc gia bị ảnh hưởng đáng kể khác bao gồm Ấn Độ, Tây Ban Nha, Nga, Ý và Đức.

KẾT LUẬN

Trojan Efimer kết hợp nhiều mối đe dọa nghiêm trọng. Mặc dù mục tiêu chính của nó là đánh cắp và trao đổi ví tiền điện tử, mã độc này cũng có thể lợi dụng các tập lệnh bổ sung để xâm nhập các trang web WordPress và phát tán email spam. Điều này cho phép nó thiết lập một cơ sở hạ tầng độc hại hoàn chỉnh và lây lan sang các thiết bị mới.

Một đặc điểm thú vị khác của Trojan này là khả năng lây lan giữa cả người dùng cá nhân và môi trường doanh nghiệp. Điều quan trọng cần lưu ý là trong cả hai trường hợp, việc lây nhiễm chỉ có thể xảy ra nếu người dùng tự tải xuống và khởi chạy tệp độc hại. Để bảo vệ khỏi những mối đe dọa này, các nhà nghiên cứu khuyến cáo người dùng tránh tải xuống tệp torrent từ các nguồn không xác định hoặc đáng ngờ, luôn xác minh người gửi email và cập nhật cơ sở dữ liệu phần mềm diệt vi-rút thường xuyên.

Để lại bình luận