PhantomBot: Từ đánh cắp thông tin đăng nhập đến mạng botnet

PhantomBot: Một chiến dịch Typosquat chuyển hướng từ đánh cắp thông tin đăng nhập sang bộ công cụ botnet hoàn chỉnh.

TL; DR

Một trình xuất bản npm duy nhất, deadcode09284814đã tiến hành một chiến dịch chiếm đoạt tên miền bằng lỗi chính tả chống lại tên miền hợp pháp. axioschalk-template các gói hàng kể từ giữa tháng 5 năm 2026.

Chiến dịch này bắt đầu như một phần mềm đánh cắp thông tin đăng nhập và ví điện tử thông thường, trích xuất dữ liệu sang một hệ thống khác. Đường hầm HTTPS của Serveo.

On 2026-05-17, với axois-utils:1.0.9Người vận hành đã thay đổi hoàn toàn nội dung tải trọng: cùng một cấu trúc cài đặt hook ba lớp, cùng một nhà phát hành, cùng một tên gói.

Nhưng tập lệnh cài đặt hiện đang là công cụ tuyển mộ thành viên cho mạng botnet tấn công DDoS đa nền tảng.

Tải trọng giao tiếp với... localhost.run Đường hầm này chấp nhận các lệnh tấn công từ chối dịch vụ (DoS), biến các môi trường bị nhiễm thành một phần của mạng botnet có khả năng tấn công DDoS.

Người điều hành thậm chí còn gửi hàng Tệp nhị phân máy chủ C2 Bên trong tập tin nén, cho thấy sự leo thang rõ rệt từ việc đánh cắp thông tin đăng nhập đến việc xây dựng cơ sở hạ tầng mạng botnet hoạt động.

Hai gói phần mềm, bốn phiên bản vẫn đang hoạt động trên hệ thống đăng ký, và một người vận hành hiện đang chạy cả hai mô-đun song song.

Mức độ nghiêm trọng: cao.

Tiêu đề IOC Bất kỳ phiên bản axois-utils hoặc chalk-template nào từ nhà xuất bản deadcode09284814

Cuộc tấn công: Cơ chế hoạt động

Chiến dịch này được xây dựng trên một cấu trúc phân phối cố tình nhàm chán: hai tên gói phần mềm có lỗi chính tả, chỉ khác một chữ cái so với các gói phần mềm có hàng trăm triệu lượt tải xuống mỗi tuần (axios, mẫu phấn), và cài đặt ba lần hooks Điều đó đảm bảo việc thực thi. Điều thú vị là giàn giáo là gì. mang — và thực tế là người điều hành đã thay đổi hàng hóa mà không thay đổi bất cứ điều gì khác.

Giàn giáo chung

Mỗi phiên bản được xuất bản của cả hai gói đều khai báo cùng ba vòng đời. hooks in package.json:

"scripts": {    "preinstall":  "node <payload>.js",    "install":     "node <payload>.js",    "postinstall": "node <payload>.js"  } 

Liệt kê nội dung tải trọng theo cả ba cách. hooks là quá mức cần thiết — sau khi cài đặt một mình sẽ chạy ở chế độ mặc định NPM cài đặtSự lựa chọn rất quan trọng: npm install –ignore-scripts bỏ qua các tập lệnh, nhưng một số quy trình làm việc phổ biến (bộ nhớ đệm CI khôi phục vòng đời chạy lại) hooks một cách có chọn lọc, hoặc các nhà phát triển chỉ kiểm toán sau khi cài đặt) Việc đưa ra khai báo ba lần dư thừa là lựa chọn an toàn nhất cho kẻ tấn công.

mẫu phấn bổ sung thêm cơ chế thứ hai: nó khai báo axois-utils:^1.0.7 như một thời gian chạy phụ thuộc. Cài đặt typosquatted mẫu phấn Do đó, nó cũng kéo theo cả gói tin typosquat cùng loại, và cả hai gói tin đều được chạy. Hai gói tin này là một cặp phối hợp, chứ không phải là các gói tin độc lập.

Giai đoạn A — Kẻ đánh cắp thông tin đăng nhập/ví điện tử (15/05/2026 → hiện tại)

Giai đoạn A là tải trọng ban đầu. Bộ nạp là một thiết bị ngắn. postinstall.js Điều đó dẫn đến một đường hầm ngược HTTPS của Serveo:

// chalk-tempalte/postinstall.js:11-13  const C2_HOST = "f04a273bd84c0622-80-200-28-28.serveousercontent.com";  const C2_PORT = 443;  const C2_PATH = '/collect'; 

Tên miền phụ Serveo mã hóa địa chỉ IP đích (80.200.28.28) trực tiếp trong tên máy chủ — một quy ước dễ nhận biết đối với dịch vụ đó. Nhà điều hành xoay vòng tiền tố tên miền phụ ngẫu nhiên giữa các phiên bản để tránh các danh sách chặn tên miền đơn giản, nhưng địa chỉ IP cơ bản không bao giờ thay đổi.chalk-template:1.0.14 đã sử dụng 8a3e818ea8f11186-80-200-28-28…; Sử dụng phiên bản 1.0.16 / 1.0.19 / 1.0.20 f04a273bd84c0622-….)

postinstall.js bỏ tay ra phantom.js, một mô-đun "thu thập" được đóng gói gồm 7,667 dòng. phantom.js Người dẫn chương trình đi dạo trong:

khóa riêng SSH (~/.ssh/*)
.npmrc nội dung và bất kỳ npm_* mã thông báo môi trường
Tệp thông tin xác thực AWS, GCP và Azure
Biểu thức chính quy mã truy cập cá nhân GitHub (ghp_*, gho_*, ghu_*, ghs_*)
Các thành phần ví tiền điện tử dành cho Bitcoin, Exodus, Electrum, Monero, Litecoin, Dogecoin, Zcash, Dash
Một phương thức đệ quy .env* đi qua ~/projects, ~/dev, ~/code, ~/workspacevà thư mục cài đặt cwd
Lịch sử của Shell và toàn bộ process.env

Gói dữ liệu được gửi bằng phương thức POST đến đường hầm Serveo tại địa chỉ: / sưu tầmKhông có sự che đậy, không có logic chống máy ảo, không có giai đoạn chuẩn bị — nhà điều hành đặt cược vào khối lượng và tốc độ.

Giai đoạn B — Tuyển dụng PhantomBot cho cuộc tấn công DDoS (17/05/2026, chỉ dành cho axois-utils:1.0.9)

Giai đoạn B thay thế phantom.js + postinstall.js bằng một tệp duy nhất có tên distrube.js (lỗi chính tả là do người vận hành). Cấu trúc ba hook trong package.json không thay đổi; gói vẫn giữ nguyên tên, phạm vi và mẫu tăng phiên bản. Nhìn từ bên ngoài, axois-utils:1.0.9 trông giống như một bản cập nhật nhỏ của 1.0.6. Nhưng bên trong, nó là một họ phần mềm độc hại khác.

disturbe.js Mở đầu bằng một khối cấu hình đặt tên cho thương hiệu riêng của nhà mạng:

// axois-utils-1.0.9/distrube.js:11-15
// Use your localhost.run HTTPS URL (the tunnel handles HTTP internally)
const C2_HOST = 'b94b6bcfa27554.lhr.life'; // Your localhost.run tunnel
const C2_PORT = 443; // HTTPS port - tunnel handles SSL
const BOT_ID = `${os.hostname()}_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`;

Các bình luận này hướng đến người vận hành bộ công cụ trong tương lai (“Hãy sử dụng URL HTTPS localhost.run của bạn”). Điều đó, cộng với những gì được gửi kèm theo máy khách bot, cho thấy đây không chỉ là một payload dành cho nạn nhân mà chính là bộ công cụ.

Dòng chảy:

  1. Persistence chạy đầu tiên. Tập lệnh tự cài đặt theo ba cách khác nhau tùy thuộc vào hệ điều hành (registry). chạy + Thư mục khởi động + nhiệm vụ trên Windows; crontab + phantom-bot.service đơn vị systemd + .bashrc/.zshrc thêm + /etc/rc.local trên Linux; LaunchAgent com.phantom.bot.plist (trên macOS). Tên dịch vụ duy trì và nhãn LaunchAgent đều là robot ma / com.phantom.botĐây cũng chính là nguồn gốc tên gọi của chiến dịch.
  2. Thông tin hệ thống được trích xuất Quá trình này chỉ chạy một lần duy nhất — một yêu cầu POST dấu vân tay duy nhất gửi đến b94b6bcfa27554.lhr.life:443/collect mang theo tên máy chủ, nền tảng, kiến ​​trúc, tên người dùng, CPU/RAM, giao diện mạng, process.env, cwd, homedir, phiên bản node và địa chỉ IP công cộng. Điều này ít xâm phạm hơn nhiều so với Giai đoạn A: không SSH, không ví, không đệ quy .env. Nhiệm vụ của bot là đăng ký, không phải là đánh cắp.
  3. vòng lặp nhịp tim Máy chủ C2 mở một yêu cầu HTTPS POST mỗi 30 giây tới địa chỉ b94b6bcfa27554.lhr.life:443/. User-Agent là PhantomBot/1.0. Quá trình xác thực TLS bị vô hiệu hóa một cách rõ ràng (rejectUnauthorized: false). Phản hồi từ máy chủ C2 được phân tích cú pháp dưới dạng JSON có dạng {type, target, port, duration, threads, method} và được gửi đi.
  4. Kho vũ khí lũ lụt được kết nối với sáu lệnh:
Loại lệnh Mô-đun Ghi Chú
ping Phản hồi về tính sống động Bot tự nhận dạng
http HTTP lũ Yêu cầu tràn ngập lớp 7
https tấn công HTTPS tràn ngập Tương tự như HTTP, được mã hóa bằng TLS.
tcp TCP lũ lụt Thư rác ngẫu nhiên 65 KB
udp Lũ UDP Gói tin UDP 65,507 byte
nhanh Tấn công từ chối dịch vụ (DoS) HTTP/2 thiết lập lại nhanh Kỹ thuật CVE-2023-44487 năm 2023

Cả năm mô-đun chống lũ đều lấy mục tiêu, cổng, thời gianchủ đề Lý lẽ — con bot này là một công cụ tấn công spam thuê ngoài, không nhắm vào bất kỳ nạn nhân cụ thể nào. Danh sách nạn nhân của người điều hành nằm trên máy chủ C2, chứ không phải trong gói tin.

Có gì mới ở đây — bản nhị phân C2 đã được vận chuyển

Giai đoạn A có hình dạng quen thuộc: đánh cắp thông tin đăng nhập, cài đặt hook, máy chủ điều khiển từ xa (C2) được kết nối qua đường hầm của nhà cung cấp. Giai đoạn B là... Ngoài ra Một hình dạng quen thuộc — các mạng botnet DDoS đã là một phần không thể thiếu của các gói npm độc hại trong nhiều năm. Điều bất thường là kẻ điều hành đã phát tán... phía máy chủ của bộ công cụ bên trong tệp nén npm:

  • c2 — một tệp nhị phân Go ELF đã biên dịch có dung lượng 4 megabyte
  • c2.go — mã nguồn Go gồm 426 dòng cho tệp nhị phân đó

Cả hai tập tin đều không được gọi bởi bất kỳ hook cài đặt nào. Chúng không phải là một phần của payload của nạn nhân. Chúng nằm trong thư mục gói giống như một tập tin tài liệu. Cách hiểu hợp lý nhất là kẻ tấn công đã đẩy cây thư mục làm việc phát triển của họ lên npm mà không kiểm duyệt danh sách tập tin — một sơ suất nghiêm trọng về bảo mật — và những gì được gửi đi là bộ công cụ hai chiều hoàn chỉnh: máy khách mà nạn nhân sử dụng và máy chủ mà kẻ tấn công vận hành.

Đây là phần của câu chuyện biện minh cho cách diễn đạt "bộ công cụ botnet trọn gói". Bất cứ ai đã tải xuống axois-utils:1.0.9 Trước khi gỡ bỏ, chúng không chỉ có mẫu nạn nhân mà còn có cả máy chủ C2 đang hoạt động.

Điểm mấu chốt, tóm gọn trong một câu.

Cùng một nhà xuất bản, cùng tên bao bì, cùng cấu trúc ba móc câu, cùng thương hiệu "ảo" — nhưng Việc thay đổi dữ liệu đã làm thay đổi mô hình kiếm tiền chỉ sau một đêm.Từ "bí mật thu hoạch mà tôi có thể bán lại" đến "dung lượng lũ lụt cho thuê mà tôi có thể cho thuê". Các TTP (Technical, Techniques ... phantom.jsBộ sưu tập 7,667 dòng của 's sẽ bỏ sót hoàn toàn Giai đoạn B.

Ngày (UTC) Sự kiện
2026-05-15 Ấn phẩm đầu tiên: axois-utils:1.0.4 (Bản dựng thử nghiệm mạng LAN, dàn máy phát triển tại...) 192.168.129.19)
2026-05-15 axois-utils:1.0.6 Đã xuất bản — Giai đoạn A C2 đã được chuyển đổi sang 80.200.28.28 thông qua đường hầm Serveo; nguồn bình luận // Change to '80.200.28.28' for public xác nhận việc chuyển đổi từ môi trường phát triển sang môi trường sản xuất.
2026-05-16 chalk-tempalte:1.0.141.0.16 đã xuất bản — máy xúc xích tuyên bố axois-utils:^1.0.7 như một phần phụ thuộc trong quá trình chạy; Tên miền phụ Serveo đã được xoay
2026-05-16 Chiến dịch giai đoạn A được phát hiện trong quá trình quét npm định kỳ; đã áp dụng phán quyết xác nhận là độc hại.
2026-05-17 axois-utils:1.0.9 Đã xuất bản — Chuyển hướng tải trọng: Tuyển mộ PhantomBot DDoS thông qua đường hầm localhost.run; phía nhà điều hành c2 nhị phân và c2.go Nguồn được vận chuyển trong tệp nén tarball
2026-05-17 chalk-tempalte:1.0.191.0.20 Đã xuất bản — vẫn đang ở Giai đoạn A (kẻ trộm); người vận hành hiện đang chạy cả hai mô-đun song song.
2026-05-17 Phát hiện Giai đoạn B trong quá trình quét thường quy; các phán quyết được áp dụng trên tất cả các trường hợp. 2026-05-17 phiên bản
(đang diễn ra) Báo cáo gỡ bỏ đang chờ xử lý; tất cả bốn gói đã được công bố vẫn còn trên hệ thống đăng ký tại thời điểm viết bài này.

Các chỉ số về sự thỏa hiệp

Gói

Hệ sinh thái Bưu kiện Các phiên bản
NPM axois-utils (typosquat của axios) 1.0.4, 1.0.6, 1.0.9
NPM chalk-tempalte (lỗi chính tả của chalk-template) 1.0.14, 1.0.16, 1.0.19, 1.0.20

Thông tin tác giả

Phần Giá trị
npm publisher deadcode09284814
Email của nhà xuất bản phantomdeadcode@tutamail.com
SCM xác minh không ai

Chỉ huy và kiểm soát

Giai đoạn Điểm cuối Giao thông
A f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect Đường hầm HTTPS của Serveo
A 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect Đường hầm HTTPS của Serveo (phiên bản cũ hơn)
A 80.200.28.28:443/collect Điểm cuối VPS cơ bản
B b94b6bcfa27554.lhr.life:443/ localhost.run HTTPS reverse-tunnel

Mã băm tập tin (SHA-256)

Tập tin SHA-256 Ghi Chú
c2 (Go ELF, 4 MB) 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 Máy chủ C2 phía nhà mạng, được vận chuyển kèm theo. axois-utils:1.0.9
c2.go (426 dòng) 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 Tìm mã nguồn của file nhị phân C2 bằng lệnh Go.
distrube.js 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 Ứng dụng khách bot giai đoạn B
phantom.js (chalk-tempalte:1.0.19) 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 Bộ thu thập thông tin xác thực/ví giai đoạn A
phantom.js (chalk-tempalte:1.0.20) d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 Bộ thu thập giai đoạn A (phiên bản 1.0.20)
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 Bộ nạp giai đoạn A, có mã byte giống hệt nhau ở cả hai phiên bản.

Sự quy kết và động lực

Chúng tôi theo dõi chiến dịch này như sau: PhantomBot, lấy thương hiệu riêng của nhà điều hành từ User-Agent: PhantomBot/1.0 tiêu đề nhịp tim, phantom-bot.service đơn vị systemd, com.phantom.bot nhãn LaunchAgent và phantomdeadcode@ Tên địa chỉ email. Người điều hành nhất quán sử dụng tên này trong ít nhất bốn hiện vật.

Danh mục tín hiệu

  • Nhà xuất bản - mã lỗi 09284814 Trên npm. Tài khoản dùng một lần, email dùng một lần Tutamail, không có SCM Xác minh. Không có lịch sử xuất bản nào trước đây ngoài chiến dịch này.
  • Tái sử dụng thương hiệu — Từ “phantom” xuất hiện trong email của nhà xuất bản, trong tên tập tin thu thập dữ liệu Giai đoạn A (phantom.js), trong tên dịch vụ duy trì Giai đoạn B (phantom-bot.service), trong nhãn LaunchAgent (com.phantom.bot), và trong User-Agent của bot (PhantomBot/1.0).
  • Cơ sở hạ tầng — Một VPS duy nhất tại 80.200.28.28 Giai đoạn A chuyển sang sử dụng tên miền phụ Serveo; Giai đoạn B chuyển sang... localhost.run đường hầm ngược (b94b6bcfa27554.lhr.lifeCả hai dịch vụ của nhà cung cấp đều miễn phí và chỉ yêu cầu SSH đi ra từ phía người vận hành, phù hợp với các thiết lập ngân sách thấp và bảo mật vận hành thấp.
  • Kiểu mã — Hoàn toàn sử dụng JavaScript thuần túy; không mã hóa, không mã hóa chuỗi, không kiểm tra chống VM. Tên biến mang tính mô tả (stealSystemInfo, thực thi lệnh, httpFlood). Bình luận trong disturbe.js Hướng trực tiếp đến người vận hành trong tương lai (“Hãy sử dụng URL HTTPS localhost.run của bạn”), cho thấy tệp này được dự định để phân phối lại như một bộ công cụ, chứ không phải được sử dụng bởi một kẻ tấn công duy nhất.
  • Lỗi OpSe — Gói nén Phase B bao gồm cả ứng dụng khách bot và máy chủ C2 phía người vận hành (c2 ELF + c2.go (nguồn). Điều này phù hợp với trường hợp người dùng đẩy cây thư mục làm việc của họ lên npm mà không kiểm tra danh sách tệp. Hoặc người dùng thiếu kinh nghiệm, hoặc bộ công cụ có vấn đề. có nghĩa là Sản phẩm này sẽ được phân phối rộng rãi và mã nhị phân C2 là một phần của sản phẩm đó.
  • Tự xác nhận - axois-utils:1.0.4 chứa bình luận nguồn // Thay đổi thành '80.200.28.28' cho công chúng ở dòng 12, xác nhận quá trình phát triển/thử nghiệm/sản xuất mà các nhà điều hành thường phủ nhận.

Động lực

Mục tiêu của Giai đoạn A là đánh cắp tài chính trực tiếp: thông tin đăng nhập, khóa đám mây, mã thông báo GitHub và ví tiền điện tử đều có thị trường mua bán lại sôi động. Giai đoạn B cũng liên quan đến tài chính, nhưng gián tiếp: các dịch vụ tấn công DDoS thuê ("booter") cho thuê dung lượng tấn công theo phút, và các bot như bot được cung cấp ở đây là nguồn lực mà các dịch vụ đó sử dụng. Nhịp tim 30 giây, tín hiệu chung mục tiêu/cổng/thời gian lược đồ lệnh và kho vũ khí tấn công từ chối dịch vụ năm giao thức là standard Sản phẩm của một phần mềm tấn công mạng.

Chạy song song cả hai mô-đun — chalk-template:1.0.191.0.20 tiếp tục vận chuyển tên trộm trong khi axois-utils:1.0.9 Việc vận chuyển bot cho thấy nhà điều hành đang phòng ngừa rủi ro về nguồn doanh thu thay vì từ bỏ Giai đoạn A. Sự thay đổi hướng đi này là một Ngoài ra, không phải là sự thay thế.

Những gì chúng tôi không khẳng định

Chúng tôi chưa thể xác nhận danh tính thực sự của người này. mã lỗi 09284814 Chúng tôi không quy kết chiến dịch này cho bất kỳ tác nhân, nhóm hoặc quốc gia nào có tên tuổi cụ thể. Việc sử dụng tên giả "ảo" khá nhất quán trên các bằng chứng cho thấy có thể do một người điều hành duy nhất thực hiện, nhưng cách thức phân phối mã nhị phân C2 theo kiểu bộ công cụ vẫn để ngỏ khả năng các gói phần mềm trong tương lai từ các tài khoản không liên quan sẽ sử dụng lại cùng một mã.

Va chạm

Các mục tiêu squat hợp pháp axiosmẫu phấn Chúng được sử dụng rộng rãi trong hệ sinh thái JavaScript; axios Chỉ riêng gói này đã nằm trong top 30 gói npm được tải xuống nhiều nhất. Tên giả mạo chỉ cách tên thật một thao tác gõ phím (trụcaxios, mẫumẫu), và cả hai đều là những lỗi chính tả có thể chấp nhận được về mặt ngôn ngữ.

Chúng tôi không thể thu thập được số liệu thống kê lượt tải xuống đáng tin cậy cho các phiên bản độc hại trước khi gỡ bỏ — npm không lưu giữ số lượt tải xuống cho từng phiên bản sau khi gói bị gỡ bỏ, và npms.ioCác máy chủ proxy kiểu này gây nhiễu ở quy mô này. Bất kỳ tổ chức nào có tệp khóa được phân giải thành một gói có tên axois-utils or mẫu phấn từ nhà xuất bản mã lỗi 09284814 Nên coi như đã bị xâm phạm: hãy thay đổi mọi thông tin đăng nhập hiện có. quy trình.env Trên máy chủ bị ảnh hưởng, hãy kiểm tra các vectơ duy trì sự hiện diện theo từng hệ điều hành (xem phần “Những việc mà người bảo vệ nên làm” bên dưới) và loại bỏ sự phụ thuộc đó.

Các mẫu mới nổi

Chiến dịch này minh họa cho sự thay đổi mà chúng ta đã thấy trong một số sự cố npm gần đây: Giàn giáo móc lắp đặt là tài sản bền vững.; tải trọng có thể hoán đổi đượcCùng một nhà xuất bản, cùng một bao bì, cùng một nội dung. cài đặt trước / cài đặt, dựng lên / sau khi cài đặt gấp ba, và thậm chí cả nhịp độ cập nhật phiên bản cũng giống nhau — điều duy nhất thay đổi giữa axois-utils:1.0.6axois-utils:1.0.9 Tệp tin đó là hooks chạy. Phát hiện dựa trên chữ ký được liên kết với tải trọng Giai đoạn A (chuỗi đường dẫn ví, phantom.jsBộ thu thập 7,667 dòng của 's, máy chủ Serveo C2) sẽ gắn cờ ba phiên bản đầu tiên và bỏ qua hoàn toàn Giai đoạn B.

Cùng một mô hình này có thể thấy rõ trong các chiến dịch 2026 khác mà chúng tôi đã theo dõi: một nhà điều hành duy nhất với một hệ thống ổn định, liên tục chuyển đổi giữa việc đánh cắp thông tin đăng nhập, cung cấp phần mềm gian lận thi cử, đánh cắp dữ liệu bằng bot Telegram, và giờ là tuyển mộ nhân tài tấn công DDoS. Những người phòng thủ dựa vào chữ ký mã độc sẽ tiếp tục thất bại trong vòng thứ hai của mọi chiến dịch.

Hệ quả tất yếu là Các TTP trong quá trình cài đặt là tín hiệu tốt hơn.. Khai báo hook cài đặt ba lần, các tập lệnh cài đặt nhập https or tiến trình conCài đặt các tập lệnh ghi vào thư mục khởi động của người dùng và cài đặt các tập lệnh phân giải tên máy chủ trên các dịch vụ đường hầm ngược miễn phí (Serveo, localhost.runCác mã độc (như ngrok, cloudflared) đều hiếm gặp trong các gói phần mềm hợp pháp nhưng lại phổ biến trong các gói phần mềm độc hại.

Những điều mà các hậu vệ nên làm

  • Kiểm toán tệp khóa. Tìm kiếm mọi thứ gói-lock.json / sợi.khóa / pnpm-lock.yaml trong tổ chức của bạn để tìm các chuỗi chính xác axois-utilsmẫu phấnHãy coi mọi trận đấu như một sự thỏa hiệp.
  • Xoay vòng bí mật trên các vật chủ bị ảnh hưởng. Giai đoạn A: Thu thập hàng loạt thông tin đăng nhập SSH, đám mây, GitHub, npm và ví điện tử. Giả định rằng mọi thông tin đăng nhập từng có đều được thu thập. quy trình.env, ~ / .ssh, ~/.aws, ~ / .npmrc, ~ / .confighoặc bất kỳ .env* Tệp trên máy chủ bị ảnh hưởng đã bị lộ.
  • Loại bỏ khả năng lưu trữ dữ liệu (Giai đoạn B). Trên Windows, hãy xóa HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdate, tẩy %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\system-update.batschtasks /delete /tn SystemUpdate /fTrên Linux, -e crontab và loại bỏ @reboot node …, systemctl –user disable –now phantom-bot.service sau đó xóa ~/.config/systemd/user/phantom-bot.service, chà .bashrc / .zshrc / /etc/rc.localTrên macOS, launchctl unload ~/Library/LaunchAgents/com.phantom.bot.plist Sau đó xóa tệp plist.
  • Chặn các máy chủ C2. Thêm bốn điểm cuối C2 trong bảng IOC vào danh sách chặn đầu ra của bạn. *.serveousercontent.com*.lhr.life có thể chặn hoàn toàn nếu môi trường của bạn không có nhu cầu sử dụng hợp pháp đối với các dịch vụ đường hầm ngược.
  • Tìm kiếm theo TTP thời gian cài đặtKhông phải là tải trọng. các mục khóa kho hàng package.json tuyên bố cài đặt trước, cài đặt, dựng lênsau khi cài đặt Tất cả đều trỏ đến cùng một kịch bản. Hãy kiểm tra chéo với tuổi đời gói phần mềm và trạng thái xác minh của nhà phát hành. Mẫu này hiếm gặp trong các gói phần mềm hợp pháp và là tín hiệu đáng tin cậy nhất cho thấy PhantomBot đang tái sử dụng mã độc.
  • Kiểm tra tính hợp lệ của tệp nhị phân C2. Bất kỳ ai đã tải xuống axois-utils:1.0.9 có máy chủ C2 của nhà điều hành (c2 ELF, sha256 165fa92d…) trên đĩa. Quét bộ nhớ cache và kho lưu trữ hiện vật CI. Tệp nhị phân này tự nó ở trạng thái ngủ đông, nhưng sự hiện diện của nó trên máy trạm là bằng chứng rõ ràng cho thấy gói phần mềm đã được cài đặt.

Kết thúc hàng

Cùng một người điều hành, cùng một gói phần mềm và cùng một cơ chế cài đặt có thể phát tán các mối đe dọa hoàn toàn khác nhau trong vòng 48 giờ. Hãy tập trung vào cấu trúc tổng thể, chứ không phải nội dung độc hại.

sca-tools-software-composition-analysis-tools
Ưu tiên, khắc phục và bảo mật các rủi ro phần mềm của bạn
Đăng ký tài khoản miễn phí ngay.
Không cần thẻ tín dụng.

Bảo mật quá trình phát triển và phân phối phần mềm của bạn.

với bộ sản phẩm Xygeni