Lạm dụng VSCode Remote Tunnels để thực hiện Remote Code Execution trên máy nạn nhân

Just a SOC Analyst ^^
Search for a command to run...

Just a SOC Analyst ^^
No comments yet. Be the first to comment.
Tổng Quan Hãy tưởng tượng: một nhân viên nhân sự tại một công ty hàng không ở Pakistan nhận được lời mời phỏng vấn hấp dẫn từ một thương hiệu tuyển dụng có vẻ rất quen thuộc. Một cuộc gọi video được l

Tóm tắt Ngày 19/03/2026, cơ quan chức năng Mỹ, Canada và Đức triệt phá hạ tầng của bốn botnet IoT lớn nhất từng được ghi nhận — Aisuru, Kimwolf, JackSkid và Mossad. Hơn ba triệu thiết bị bị nhiễm. Hơn

Tóm tắt Không có malware nào trong chiến dịch này. Payload cuối cùng mà nạn nhân nhận được là trình cài đặt chính thức của Level RMM, tải trực tiếp từ hạ tầng của chính Level, cài đặt bằng msiexec với

Phần lớn dữ liệu thu được từ một honeypot SSH internet-facing là nhiễu: dò mật khẩu liên tục, hoặc bot đăng nhập thành công rồi tải payload xuống chạy ngay lập tức. Nhưng ngày 27/6/2026, honeypot của

Từ tháng 1/2025, một nhóm tấn công chưa xác định danh tính đã duy trì hoạt động gián điệp mạng nhắm vào các cơ quan chính phủ tại Afghanistan, Kyrgyzstan, Tajikistan, Uzbekistan, Kazakhstan và Syria,

Remote Tunnels là một tính năng được tích hợp trong Microsoft VSCode. Tính năng này cho phép người dùng kết nối với máy từ xa, như máy tính để bàn hoặc máy ảo (VM), thông qua tunnel. Người dùng có thể kết nối với máy đó từ VS Code client ở bất kỳ đâu mà không cần SSH.
Ví dụ khi người dùng muốn truy cập vào môi trường code trên máy tính của công ty, họ chỉ cần bật Remote Tunnels trong VSCode. Sau đó, công cụ này sẽ cung cấp cho người dùng một URL. Người dùng chỉ cần dán URL đó vào trình duyệt web, xác thực bằng tài khoản Microsoft hoặc GitHub và họ sẽ có quyền truy cập vào môi trường code trên local máy đó (nếu họ đã được cấp quyền). Người dùng cũng có thể cấp quyền truy cập vào tunnel cho đồng nghiệp, cho phép họ kết nối với môi trường code.
Trong thời gian gần đây, việc lạm dụng VSCode Remote Tunnel có xu hướng tăng lên, bằng chứng là nhiều nhóm tấn công đang sử dụng công cụ này trong các chiến dịch của họ.
Đầu tiên, một script độc hại hoặc tệp LNK được gửi đến nạn nhân nhằm mục đích kiểm tra xem hệ thống của họ có cài đặt VSCode hay không. Nếu không có VSCode, tin tặc sẽ tự động cài đặt phiên bản CLI của VSCode. Sau khi hoàn tất, chúng thiết lập một đường hầm từ xa, tạo một kênh truy cập ẩn từ máy tính nạn nhân tới hệ thống của tin tặc.
Chúng ta sẽ sử dụng một chiến dịch do Mustang Panda (hay còn gọi là Stately Taurus) thực hiện để lấy ví dụ cho việc phân tích.

Attack chain của chiến dịch trải qua các bước sau:
Gửi tệp LNK độc hại, ví dụ như: update.py
Tệp LNK chứa lệnh PowerShell để tải xuống và chạy một script Python từ một địa chỉ IP từ xa
Script Python tải xuống và chạy phiên bản CLI của VSCode, được gọi là code-insiders.exe
Script Python tạo và xác thực một đường hầm VSCode (VSCode tunnel), sử dụng CLI và kết nối với Github
Remote tunnel của VSCode được thiết lập.
Kẻ tấn công thực hiện lệnh từ xa thông qua payload Python, sử dụng đường hầm đã thiết lập từ trình duyệt web.
File LNK sẽ chứa một dòng lệnh PowerShell đơn giản có nhiệm vụ tải xuống một tập lệnh Python từ máy chủ web và thực thi script.

Script Python tải xuống tệp binary CLI cho phiên bản Code Insiders của VSCode. Sau đó, nó tạo một tunnel và tạo liên kết xác thực.

Kẻ tấn công cần lấy device code GitHub mà script python gửi về để xác thực và nhập vào URL https://github.com/login/device. Điều này dễ dàng thực hiện được vì kẻ tấn công đang xác thực với GitHub bằng tài khoản của họ.

Kẻ tấn công sau đó cần phải cho phép cho tunnel kết nối với tài khoản của họ.

Sau khi xác thực tài khoản, kẻ tấn công sẽ thấy danh sách các máy chủ từ xa đang sử dụng tunnel mà có thể kết nối tới.


Kkẻ tấn công bây giờ có thể truy cập đến các thư mục trên máy chủ từ xa của nạn nhân.

Và cuối cùng, chúng có thể tạo các tập tin, script mới và thực thi chúng từ xa.
Tóm lại phần này, tính năng Remote Tunnel trên VSCode cực kỳ mạnh mẽ và cung cấp khả năng thực hiện toàn bộ lệnh thực thi mã từ xa. Điều đáng sợ nhất là kẻ tấn công có thể thực hiện tất cả những điều này với chỉ một tệp LNK đơn giản được gửi đến người dùng.
Việc phát hiện lạm dụng VSCode Remote Tunnel có thể được thực hiện bằng cách theo dõi hành vi thực thi tệp LNK để tải xuống và chạy python script.
Chúng ta có thể lọc thêm bằng cách tìm kiếm một số tham số PowerShell nhất định, ví dụ như Invoke-WebRequest, OutFile và python.
{
"query": {
"bool": {
"must": [
{ "term": { "host.os.type": "windows" } },
{ "term": { "event.type": "start" } },
{ "term": { "process.name": "powershell.exe" } },
{ "wildcard": { "process.parent.executable": "*explorer.exe" } },
{
"regexp": {
"process.args": ".*(Invoke-WebRequest.*OutFile.*python|Invoke-WebRequest.*python.*OutFile|OutFile.*Invoke-WebRequest.*python|OutFile.*python.*Invoke-WebRequest|python.*Invoke-WebRequest.*OutFile|python.*OutFile.*Invoke-WebRequest).*"
}
}
]
}
}
}
Kẻ tấn công sẽ thường đổi tên file code.exe hoặc code-insiders.exe trên hệ thống nên viêc tìm kiếm hành vi độc hại theo tên file là khá vô nghĩa.
Do đó, chúng ta phải tập trung vào các hành vi mà kẻ tấn công không thể thay đổi, ví dụ như việc truyền tham số --accept-server-license-terms vào quá trình thực thi. Tham số này cho phép khởi động máy chủ từ xa mà không cần sự xác nhận thêm của người dùng.
Người quản trị hệ thống cần giám sát các tiến trình liên quan đến PowerShell, đặc biệt là khi nó khởi chạy các công cụ như Python.
Đồng thời theo dõi các tham số lệnh (command_line) có thể giúp phát hiện các hành vi bất thường, như sử dụng các tham số lạ hoặc script không rõ nguồn gốc.
Tên miền chính được sử dụng bởi VSCode tunnel là:
global.rel.tunnels.api.visualstudio.com
Chặn tên miền này trong tổ chứ sẽ chặn việc sử dụng tunnel. Các tên miền khác được sử dụng như một phần của VSCode tunnel bao gồm:
| URL/Domain | Mô tả |
| https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64 | VSCode CLI Download Domain |
| https://code.visualstudio.com/sha/download?build=insider&os=cli-win32-x64 | Code Insiders CLI Download |
| vscode.dev | Domain cho VSCode browser session |
| insiders.vscode.dev | Domain cho Code Insiders browser session |
Phía FPT Threat Intelligence khuyến nghị tổ chức và cá nhân một số cách để phòng chống chiến dịch này:
Vô hiệu hóa quyền truy cập tunnel ẩn danh: Không cho phép truy cập đường hầm ẩn danh.
Vô hiệu hóa Dev Tunnels: Hầu hết tất cả các command, với một số ít ngoại lệ, đều phải bị từ chối quyền truy cập (Ngoại lệ: unset, echo, ping và user).
Chỉ cho phép ID Microsoft Entra tenant ID trong danh sách: Người dùng phải được xác thực trong danh sách đối tượng cho phép để truy cập Dev Tunnels.