Phân tích QwixxRAT: Trojan truy cập từ xa mới xuất hiện trên Telegram và Discord
Phân phối trên Telegram và Discord
“Sau khi được cài đặt trên các máy tính Windows của nạn nhân, RAT sẽ lén lút thu thập dữ liệu nhạy cảm, sau đó gửi đến bot Telegram của kẻ tấn công, cung cấp cho chúng quyền truy cập trái phép vào thông tin nhạy cảm của nạn nhân”, công ty an ninh mạng Uptycs cho biết trong một báo cáo mới ngày 14/8.
Các nhà nghiên cứu tại Uptycs đã phát hiện ra phần mềm độc hại này vào đầu tháng 8/2023, cho biết nó được thiết kế chi tiết để thu thập lịch sử trình duyệt web, thanh dấu trang, cookie, thông tin thẻ tín dụng, tổ hợp phím, ảnh chụp màn hình và dữ liệu từ các ứng dụng như Steam và Telegram.
Sự hiện diện của QwixxRAT đã trở nên đáng báo động trong các đánh giá gần đây về các hệ thống bị xâm nhập, gợi mở về khả năng gia tăng của nó. Mặc dù nguồn gốc và vùng mục tiêu chính của trojan này vẫn đang được điều tra, thế nhưng theo các nhà nghiên cứu phạm vi tiếp cận của nó là nhắm đến các doanh nghiệp và người dùng trên toàn cầu.
Ngoài hành vi đánh cắp dữ liệu đơn thuần, QwixxRAT còn sử dụng các công cụ quản trị từ xa đáng gờm, cho phép tin tặc có thể kiểm soát thiết bị nạn nhân, khởi chạy lệnh và thậm chí gây mất ổn định hệ thống. Công cụ này được cung cấp với giá 150 rúp Nga để truy cập hàng tuần và 500 rúp Nga cho giấy phép trọn đời. Nó cũng có một phiên bản miễn phí hạn chế. Sau khi bất kỳ tác nhân đe dọa nào mua trojan này, nhóm tin tặc sẽ thiết lập một kênh dành riêng để truy cập dữ liệu thu được.
Tiết lộ được đưa ra vài tuần sau khi các nhà nghiên cứu tại công ty đánh giá rủi ro an ninh mạng Cyberint tiết lộ chi tiết về hai chủng RAT khác có tên là “RevolutionRAT” và “Vemp Control RAT” cũng được quảng cáo trên các kênh Telegram khác nhau với các tính năng kết nối máy chủ chỉ huy và kiểm soát (C2) và lọc dữ liệu.
Phân tích kỹ thuật
Hình 1. Quy trình hoạt động của QwixxRAT
Tệp QwixxRAT là tệp nhị phân được biên dịch bằng C#, hoạt động như một tệp thực thi 32 bit được thiết kế cho các hoạt động của CPU. Hình 2 thể hiện các tin tặc đã sử dụng hai tên riêng biệt cho cùng một RAT. Một bí danh được sử dụng là “Qwixx RAT”, trong khi bí danh còn lại được xác định là “TelegramRAT”.
Hình 2. Mã nguồn của QwixxRAT
QwixxRAT bao gồm tổng cộng 19 hàm chức năng riêng lẻ, mỗi chức năng phục vụ một mục đích riêng. Chúng ta sẽ xem xét từng chức năng cụ thể.
Chức năng 1: HideConsoleWindow
Vì đây là một chương trình CPU nên các tin tặc đã che giấu bảng điều khiển để giữ bí mật.
Chức năng 2: CheckMutex
Các tin tặc sử dụng kiểm tra giá trị Mutex để ngăn chặn thực thi trùng lặp. Chúng tạo giá trị MD5 cho chuỗi “995716229” và xác minh thêm người dùng đăng nhập hiện tại có đặc quyền quản trị hay không. Nếu là quản trị viên thì trojan sẽ tạo một giá trị Mutex mới bằng cách sử dụng chuỗi “ADMIN:21de6ebf2e182b19a589c154562979b4”. Bằng cách này chúng có thể đảm bảo rằng chỉ một phiên bản của chương trình chạy trên máy mục tiêu.
Hình 3. Kiểm tra giá trị Mutex
Chức năng 3: SecurityProtocol
Đoạn mã này đặt thuộc tính “ServicePointManager.SecurityProtocol” để bật hỗ trợ cho nhiều giao thức mạng an toàn. Ứng dụng đảm bảo khả năng tương thích ngược và khả năng tương thích rộng hơn với các máy chủ và máy khách khác nhau bằng các giao thức SSL 3.0, TLS 1.0, TLS 1.1 và TLS 1.2. Cấu hình này cho phép ứng dụng giao tiếp an toàn với các máy chủ yêu cầu các phiên bản SSL/TLS khác nhau để thiết lập kết nối an toàn.
Chức năng 4: Elevate Privileges
Trojan này cố gắng nâng cao các đặc quyền của ứng dụng hiện tại để chạy với quyền quản trị bằng cách khởi chạy lại chính nó (thuộc tính ẩn) với động từ “runas”. Nếu người dùng từ chối hoặc thực hiện cài đặt cấu hình “AdminRightsRequired” ngăn chặn điều đó thì vòng lặp while sẽ tiếp tục, cho phép thực hiện các nỗ lực tiếp theo để leo thang đặc quyền.
Chức năng 5: Sleep
QwixxRAT sử dụng một số kỹ thuật chống phân tích khác nhau để không bị phát hiện bởi các giải pháp bảo mật. Điều này bao gồm chức năng “sleep” để đưa ra độ trễ trong quá trình thực thi.
Chức năng 6: runAntiAnalysis
Các tin tặc đã sử dụng ba phương pháp cho mục đích chống phân tích, bao gồm: Sandbox, VirtualBox và Trình gỡ lỗi.
Hình 4. Kiểm tra chống phân tích
Kiểm tra Sandbox: Phương pháp này để xác định xem ứng dụng hiện tại có đang hoạt động trong môi trường Sandbox hay không. Quá trình kiểm tra liên quan đến việc tìm kiếm các tệp DLL cụ thể, cụ thể là “SbieDll.dll”, “SxIn.dll”, “Sf2.dll”, “snxhk.dll” và “cmdvrt32.dll”, thường được liên kết với Sandbox. Nếu bất kỳ tệp DLL nào trong số này được phát hiện là được tải trong quy trình hiện tại bởi API GetModuleHandle, trojan sẽ ngay lập tức chấm dứt quá trình thực thi mã, hiểu rằng nó đang chạy trong môi trường Sandbox.
VirtualBox: Để xác định xem tệp có đang chạy trong môi trường ảo hay không, tin tặc đã sử dụng hai truy vấn WMI. Đầu tiên, chúng sử dụng truy vấn “Select * from Win32_ComputerSystem” để kiểm tra các trường “Manufacturer” và “Model”. Nếu bất kỳ chuỗi nào khớp với từ khóa “virtual” hoặc “vmware” hoặc “VirtualBox” thì quá trình này sẽ nhanh chóng kết thúc. Bên cạnh đó, tin tặc sử dụng truy vấn “SELECT * FROM Win32_VideoController” để kiểm tra thuộc tính “Name” bằng cách sử dụng hàm GetPropertyValue. Nếu bất kỳ chuỗi nào khớp với từ khóa “Vmware” hoặc “Vbox” thì quá trình này cũng bị chấm dứt.
Trình gỡ lỗi: Phương pháp này để xác định xem ứng dụng hiện tại có đang được chạy trong trình gỡ lỗi nào hay không, bằng cách giới thiệu một độ trễ ngắn và sau đó kiểm tra xem thời gian trôi qua trong độ trễ này có nhỏ hơn 1 micro giây hay không. Giả định cơ bản là sự hiện diện của trình gỡ lỗi có thể gây ra độ trễ bổ sung, dẫn đến chênh lệch thời gian nhỏ hơn. Quá trình này bị chấm dứt như một biện pháp bảo mật nếu phát hiện thấy tình huống như vậy.
Chức năng 7: installSelf
Tin tặc cố gắng định vị tệp tại “C:\Users\Chrome\rat.exe”. Nếu không tìm thấy tệp trong đường dẫn đã chỉ định, mã sẽ truy xuất đường dẫn thực thi và sao chép chính nó vào “C:\Users\Chrome\rat.exe”. Sau đó, tin tặc sửa đổi các thuộc tính tệp để làm cho nó ẩn giấu trong hệ thống.
Chức năng 8: setAutorun
Một tác vụ tự động để tạo điều kiện cho việc thực thi trojan ban đầu hoặc định kỳ, được tạo cho tệp ẩn nằm ở “C:\Users\Chrome\rat.exe”.
Hình 5. Cơ chế ập lịch tự động
Chức năng 9: MeltFile
Mã chứa cơ chế tự hủy được thiết kế cho chương trình C#. Trong các điều kiện cụ thể, nó tạo ra một tập lệnh batch script tạm thời chờ đợi quá trình hiện tại kết thúc. Khi quá trình dừng lại, tệp thực thi sẽ bị xóa và tiến trình được khởi chạy lại từ “InstallPath” được chỉ định (“C:\Users\Chrome\rat.exe”). Hành vi tự hủy này thường được quan sát thấy trong phần mềm độc hại để che giấu sự tồn tại của nó hoặc trong các ứng dụng liên quan đến bảo mật để xóa các thành phần nhạy cảm sau khi sử dụng.
Hình 6. Tạo tệp tin Bat
Tập lệnh batch script kiểm tra sự tồn tại của quy trình gốc với một PID cụ thể và đợi cho đến khi nó khả dụng. Khi tiến trình cha được tìm thấy, nó sẽ tiến hành xóa tệp “stealer.exe” (tệp cha), thay đổi thư mục hiện tại thành “C:\Users\Chrome” và sau đó chạy chương trình “rat.exe”.
Chức năng 10: isConnectedToInternet
Mã này là một cách đơn giản để kiểm tra kết nối Internet đang hoạt động bằng cách thử lệnh ping kết nối đến địa chỉ “google.com” và “api.telegram.org”. Phương thức này tiếp tục thử lại lệnh ping cho đến khi cả hai máy chủ đều có thể truy cập được và nó in thông báo trạng thái tới bảng điều khiển trong suốt quá trình.
Chức năng 11: processCheckerThread
Đóng vai trò là cơ chế giám sát quy trình, cho phép theo dõi danh sách quy trình cụ thể (ví dụ: “taskmgr”, “processhacker”, “netstat”, “netmon”, “tcpview” và “wireshark”) và nếu được phát hiện, nó sẽ tạm dừng hoạt động của chính nó cho đến khi quá trình được kết thúc.
Chức năng 12: keyloggerThread
Hàm này chịu trách nhiệm ghi lại các sự kiện bàn phím và ghi chúng vào một tệp. Khi chức năng ghi lại các phím được chọn, nó sẽ chuyển đổi các phím đặc biệt thành các biểu diễn dễ hiểu hơn và phân loại các lần nhấn phím dựa trên tiêu đề cửa sổ đang hoạt động.
Keyboard hook tìm thấy tiện ích trong các ứng dụng khác nhau, bao gồm ghi nhật ký bàn phím, giám sát đầu vào và xử lý phím nóng. Điều cần thiết là phải nhận ra rằng mặc dù keyboard hook có thể phục vụ các mục đích hợp pháp như kích hoạt các tính năng trợ năng, nhưng chúng cũng có thể bị lạm dụng cho các hoạt động độc hại, chẳng hạn như ghi bàn phím trái phép mà không có sự đồng ý của người dùng.
Chức năng 13: AutoStealerThread
Hàm này được thiết kế để thu thập trái phép thông tin từ máy tính mục tiêu. Điều này bao gồm chụp ảnh màn hình máy tính để bàn, trích xuất thông tin xác thực đăng nhập, chi tiết thẻ tín dụng, lịch sử duyệt web, dấu trang, thông tin đăng nhập FTP, dữ liệu nhắn tin và dữ liệu từ nền tảng Steam. Sau đó, dữ liệu thu thập được chia sẻ bí mật với tin tặc thông qua kênh Telegram.
Hình 7. Mã đánh cắp Qwixx
Chức năng 14: Clipper
Tin tặc có thể khai thác API clipboad manager để truy cập trái phép thông tin nhạy cảm được sao chép vào bộ nhớ đệm của thiết bị với mục đích trích xuất thông tin ví tiền điện tử từ các tổ chức sau: Monero, Ethereum và Bitcoin.
Chức năng 15: ProtectProcess
Để đặt “SeDebugPrivilege” thành mức 2, nó sẽ cấp cho chương trình một đặc quyền gỡ lỗi gọi là “Debug Privilege”. Điều này thường chỉ được yêu cầu cho các tác vụ quản trị hệ thống hoặc gỡ lỗi cụ thể.
Chức năng 16: PreventSleep
Hàm này đảm bảo rằng hệ thống vẫn hoạt động liên tục, ngăn chế độ “sleep” hoặc ngay cả khi người dùng không hoạt động.
Hình 8. Đảm bảo hệ thống vẫn hoạt động
Chức năng 17: sendConnection
Mục đích của hàm này là gửi tin nhắn văn bản đến một cuộc trò chuyện cụ thể trên Telegram bằng bot Telegram.
Hình 9. Yêu cầu giao tiếp
Chức năng 18: waitCommandsThread
Hàm này thực hiện một vòng lặp để liên tục theo dõi các tin nhắn đến và lệnh cho bot Telegram. Nó nhanh chóng thực hiện các hành động thích hợp dựa trên nội dung của những thông báo này, có thể liên quan đến việc tải xuống tệp, thực thi lệnh hoặc thông báo cho chủ sở hữu bot về các loại thông báo không xác định. Bằng cách đó, nó sẽ đảm bảo rằng bot vẫn phản hồi nhanh và xử lý các bản cập nhật mới một cách kịp thời.
Chức năng 19: MainForm
Hàm này thiết lập biểu mẫu chính của ứng dụng không xuất hiện trên thanh tác vụ. Ngoài ra, ứng dụng được cấp quyền ưu tiên cao trong khi tắt hệ thống, cho phép ứng dụng hoàn thành các tác vụ quan trọng hoặc nền trước khi hệ thống tắt.
Hồng Đạt