TL; DR
nolimit-agent là một gói npm có các phiên bản đã xuất bản — 1.0.299 qua 1.0.307, được phát hành trong bốn ngày từ 26/06/2026 đến 29/06/2026 — mỗi bản đều mang một... khung hoàn chỉnh về lừa đảo và gửi thư hàng loạt bên trong một thư mục ẩn, được mã hóa hoàn toàn. Trong mọi phiên bản, mục chính đều dẫn đến .ad/x0.js, một trong số khoảng 86 tập tin trong một thư mục có tên được đặt theo cú pháp ẩn, chứa khoảng 4,200 khối dữ liệu dạng mảng chuỗi mã hóa javascript; cấu trúc hook cài đặt và mục nhập giống hệt nhau trên toàn bộ dòng.
Đằng sau sự che đậy đó là một điều... Luồng mã thiết bị Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode(Sau khi mã được phê duyệt, hệ thống sẽ đọc hộp thư đến và các mục đã gửi trong Outlook của nạn nhân thông qua API Microsoft Graph; một công cụ gửi SMTP và SMS hàng loạt được điều khiển bởi danh sách người nhận do nhà mạng cung cấp; các mẫu tin nhắn mạo danh thương hiệu; xây dựng liên kết chuyển hướng mở; và trinh sát qua DNS-over-HTTPS, WHOIS và tìm kiếm mã GitHub. Các tín hiệu lưu lượng truy cập thời gian thực được gửi đến cơ sở hạ tầng của nhà mạng tại...) api[.]nolimitent[.]xyz:4100.
Đối tượng bị ảnh hưởng: bất kỳ ai cài đặt bất kỳ phiên bản nào của gói phần mềm này, và bất kỳ ai Hộp thư Microsoft 365 Chủ sở hữu chấp thuận mã thiết bị được hiển thị thông qua thiết bị đó. Phiên bản mới nhất, 1.0.307Đây là thẻ mới nhất hiện tại và mang cùng khả năng hộp thư mã thiết bị — mã độc hại không bị giới hạn ở một phiên bản cũ duy nhất.
Mức độ nghiêm trọng: quan trọngHệ sinh thái bị ảnh hưởng: NPMChỉ số cần tìm kiếm đầu tiên: máy chủ api[.]nolimitent[.]xyz.
Cuộc tấn công: cách thức hoạt động
Một lớp vỏ vô hại che giấu một kho chứa chất nổ.
Bao bì có bề mặt bình thường. package.json tuyên bố một sau khi cài đặt cái móc -
text postinstall: node scripts/postinstall.js — và khi kiểm tra scripts/postinstall.js Nó vô hại: chỉ cài đặt một lớp trung gian lệnh Windows rồi thoát. Hành vi đó không nằm ở hook. chính và bin các lĩnh vực đều chỉ vào .ad/, một thư mục mà dấu chấm phía trước giúp nó tránh khỏi sự trùng lặp thông thường. ls đầu ra, và nội dung của nó được mã hóa bằng máy một cách đồng nhất. Máy quét tĩnh đã đếm được khoảng 4,293 đoạn dữ liệu được mã hóa trên toàn bộ phạm vi. .ad/ bộ mô-đun; trình làm xáo trộn javascript Đây là một phụ thuộc phát triển đã được khai báo, phù hợp với hình dạng xoay mảng chuỗi của các tệp được đóng gói.
Sự phân tách này là tín hiệu đầu tiên đáng chú ý: mã cài đặt mà người đánh giá sẽ xem xét kỹ lưỡng thì sạch sẽ, trong khi mã vận hành nằm ở thư mục khác, bị ẩn và làm rối, chỉ được truy cập khi điểm vào được xuất ra của gói phần mềm được thực thi.
Truy cập hộp thư bằng mã thiết bị Microsoft 365
Mô-đun .ad/x12.js Nó mang khả năng quan trọng nhất của khung phần mềm. Nó thúc đẩy việc cấp quyền ủy quyền thiết bị Microsoft 365 OAuth 2.0:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Cấp quyền bằng mã thiết bị là một quy trình hợp lệ của Microsoft được thiết kế cho các thiết bị có hạn chế về nhập liệu: một dịch vụ yêu cầu mã, người dùng nhập mã đó vào microsoft.com/deviceloginTrên thiết bị thứ hai, người dùng xác nhận và dịch vụ yêu cầu sẽ nhận được mã thông báo. Khi dịch vụ yêu cầu thuộc về người khác chứ không phải chủ sở hữu hộp thư, việc xác nhận sẽ cấp mã thông báo cho bên thứ ba đó. Sau khi nhận được mã thông báo, Tệp `.ad/x12.js` đọc hộp thư trực tiếp thông qua Microsoft Graph:
text GET graph[.]microsoft[.]com/v1.0/me/mailFolders/inbox/messages?$top=250&$select=from GET graph[.]microsoft[.]com/v1.0/me/mailFolders/sentitems/messages?$top=250&$select=toRecipients $chọn Các phép chiếu lấy địa chỉ người gửi từ hộp thư đến và địa chỉ người nhận từ các mục đã gửi — nguyên liệu thô để lập bản đồ các bên liên lạc của nạn nhân. Đây là hình thức truy cập trung gian (AiTM) dựa trên sự đồng ý chứ không phải bằng cách đánh cắp mật khẩu: không có thông tin xác thực nào để thực hiện tấn công lừa đảo theo nghĩa cổ điển, chỉ có một mã để được chấp thuận.
Công cụ gửi email và tin nhắn SMS hàng loạt với các mẫu giả mạo.
Xung quanh khu vực truy cập hộp thư có một hộp thư. Gói hàng này chứa các tệp dữ liệu có thể chỉnh sửa được bởi người vận hành — danh sách người gửi (senders.txt, smtps.txt) và một tệp mẫu (functions.txt) — với các địa chỉ giữ chỗ được đọc như một bảng tuyển diễn viên đóng giả: security@apple.com, login- xác minh, dịch vụ OAuth, thanh toán và người gửi thông báo tài khoản đối với yourdomain.com Người thay thế tạm thời là người điều hành. Phía SMS có số điện thoại.ebook và cấu hình cổng. Trình gửi thư sẽ lặp lại danh sách người nhận do người vận hành cung cấp và gửi qua các máy chủ chuyển tiếp SMTP đã được cấu hình.
Để các liên kết được hiển thị, .ad/xu.js và .ad/xq.js Xây dựng các URL khai thác sự mơ hồ trong việc phân tích cú pháp URL và theo dõi lượt nhấp chuột. Các mẫu giả mạo này nhúng một địa chỉ có vẻ đáng tin cậy trước một địa chỉ thực sự. @ Vì vậy, tiền tố hiển thị khác với máy chủ thực:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Khung phần mềm này cũng lấy các biểu tượng favicon từ các nhà cung cấp lớn và enterprise Các nhà cung cấp dịch vụ thư điện tử — một kỹ thuật thông thường để tạo ra lời nhắc hoặc trang đích mang thương hiệu của nhà cung cấp một cách thuyết phục.
Trinh sát mục tiêu và cơ sở hạ tầng
Một số mô-đun thu thập ngữ cảnh trước khi gửi. .ad/x0.js phân giải tên miền qua DNS-over-HTTPS (dns[.]google/resolve), .ad/xa.js truy vấn WHOIS (api[.]whois[.]vu), Và .ad/x9.js Chạy tìm kiếm mã nguồn GitHub (api[.]github[.]com/search/code?q=) — một mô hình phù hợp với việc phát hiện cấu hình máy chủ thư bị lộ và thông tin đăng nhập SMTP để cung cấp cho danh sách chuyển tiếp. .ad/xs.js Truy vấn chỉ mục CDX của Wayback Machine.
Chỉ huy và kiểm soát
Trên toàn bộ tập hợp bị che khuất, .ad/x4.js Tham chiếu đến điểm cuối của toán tử:
text http://api[.]nolimitent[.]xyz:4100 Người chủ nhà chia sẻ thông tin của mình. không giới hạn thương hiệu với tên gọi riêng của nhà xuất bản, và : 4100 Cổng này là kênh liên lạc chính của khung phần mềm. Đây là dấu hiệu đáng tin cậy nhất đối với những người bảo mật: một gói phần mềm, một máy trạm của nhà phát triển hoặc một tác nhân xây dựng đang truy cập. api[.]nolimitent[.]xyz đã chạy đoạn mã này.
Các chỉ số thỏa hiệp
Các chỉ báo bên dưới là những chỉ báo mà người bảo vệ có thể dựa vào để hành động — tìm kiếm trong tệp khóa, chặn máy chủ hoặc tìm kiếm nhật ký proxy và DNS. Các điểm cuối của Microsoft xuất hiện vì khung phần mềm lạm dụng chúng; bản thân chúng không độc hại và không nên bị chặn.
| chỉ số | Kiểu | Ở đâu | Hành động của người phòng thủ |
|---|---|---|---|
nolimit-agent (tất cả các phiên bản 1.0.299–1.0.307) | Bưu kiện | NPM | Tìm kiếm trong tệp khóa / nhật ký cài đặt |
api[.]nolimitent[.]xyz (:4100) | Máy chủ C2 | .ad/x4.js | Chặn; tìm kiếm nhật ký DNS + proxy |
.ad/ thư mục ẩn làm đích chính/bin | Structure | package.json | Tín hiệu tĩnh trong quá trình xem xét đăng ký |
trusted[.]com@ / %40 / :80@ các dạng liên kết | Giả mạo URL | .ad/xu.js, .ad/xq.js | Kiểm tra URL thư điện tử/proxy |
Cấp mã thiết bị + Đồ thị inbox/sentitems đọc | Hành vi | .ad/x12.js | Đăng nhập M365 + Xem xét kiểm toán Graph |
Mã băm của tập tin được thu thập trong quá trình phân loại:
- package/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- gói/gói.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Một tín hiệu từ người dùng Microsoft 365 đáng để theo dõi, độc lập với gói phần mềm này: đăng nhập bằng mã thiết bị thành công, sau đó là các lần đọc dữ liệu Graph. Thư mục/hộp thư đến và Thư mục/thư mụcđặc biệt là từ một phiên mà người dùng không nhận ra.
Sự quy kết và hành vi quan sát được
Những gì có thể quan sát được vẫn tách biệt với người đứng sau nó.
Các sự thật có thể quan sát được: gói phần mềm được phát hành dưới tên người dùng là [tên người dùng]. tác nhân không giới hạn với địa chỉ Gmail chưa được xác minh và không có kho lưu trữ nguồn liên kết; package.json mô tả nó là một "công cụ gửi email nâng cao" và gắn thẻ cho nó. đội đỏ từ khóa; mã thực thi được tập trung trong một phần ẩn, bị làm mờ. .ad/ thư mục có bộ công cụ (trình làm xáo trộn javascript) là một phần phụ thuộc đã được khai báo; và máy chủ gọi về máy chủ chính api[.]nolimitent[.]xyz tái sử dụng không giới hạn Đây là một gói duy nhất với một điểm mốc cơ sở hạ tầng do nhà điều hành kiểm soát — không phải là một cụm nhiều gói, và không có sự trùng lặp nào với chiến dịch đã được đặt tên trước đó.
đội đỏ Từ khóa không làm thay đổi phân loại. Các công cụ tấn công an ninh hợp pháp có khả năng sử dụng kép đều làm như vậy một cách minh bạch: mã nguồn dễ đọc, mục tiêu do người vận hành cung cấp và không có lệnh gọi về máy chủ ẩn. Gói phần mềm này đảo ngược tất cả các đặc tính đó — mã hoạt động của nó bị làm mờ và ẩn giấu, và nó gửi tín hiệu đến cơ sở hạ tầng cố định của người vận hành thay vì mục tiêu do người dùng cung cấp. Hành vi, chứ không phải nhãn mác, quyết định kết luận, và kết luận là độc hại.
Mục đích không được nêu rõ ở đây. Bài đăng mô tả những gì đoạn mã thực hiện — yêu cầu mã thiết bị, đọc hộp thư qua Graph, gửi thư hàng loạt qua các máy chủ chuyển tiếp đã cấu hình, gửi tín hiệu đến một máy chủ cố định — và không nêu rõ động cơ.
Tác động, xu hướng và hướng dẫn phòng thủ
Có hai yếu tố ảnh hưởng đến quá trình cài đặt. Thứ nhất, bất kỳ nhà phát triển hoặc tác nhân CI nào cài đặt tác nhân không giới hạn đưa khung phần mềm lên máy chủ đó và thiết lập kết nối về máy chủ đích. api[.]nolimitent[.]xyzThứ hai, khả năng mã thiết bị mở rộng phạm vi hoạt động vượt ra ngoài máy chủ cài đặt: hộp thư Microsoft 365 mà chủ sở hữu được yêu cầu chấp thuận mã được hiển thị sẽ được đọc trực tiếp thông qua Graph, mà không cần mật khẩu nào được truyền qua mạng.
Xu hướng chung là hướng nội hóa. Tấn công lừa đảo qua mã thiết bị (AiTM) đã chuyển từ cơ sở hạ tầng lừa đảo độc lập sang một gói phần mềm trên kho lưu trữ công khai — được phân phối bởi NPM cài đặt Thay vì gửi qua đường dẫn email. Cách đóng gói bộ công cụ này giúp kẻ tấn công lừa đảo đánh đổi vấn đề lưu trữ và phân phối liên kết lấy phạm vi tiếp cận của một kho lưu trữ, đồng thời che giấu mã hoạt động đằng sau một hook cài đặt sạch sẽ và một thư mục được mã hóa bằng tên ẩn, khiến việc xem xét thủ công nhanh chóng trở nên khó khăn.
Dành cho hậu vệ:
- Xem xét đăng ký và các phụ thuộc. Hãy xử lý gói hàng có chính/bin Nó được giải quyết thành một thư mục ẩn (có tiền tố dấu chấm) chứa mã nguồn của bên thứ nhất được mã hóa đồng nhất, được coi là có rủi ro cao chỉ dựa trên cấu trúc, bất kể hook cài đặt có vẻ sạch sẽ hay không. Việc thu nhỏ mã không phải là mã hóa làm rối mã — hãy kiểm tra chữ ký của bộ giải mã mảng chuỗi, chứ không phải độ dài dòng.
- Tăng cường bảo mật cho Microsoft 365. Hạn chế luồng ủy quyền mã thiết bị bằng Truy cập có điều kiện khi không cần thiết về mặt vận hành; cấp quyền mã thiết bị là một vectơ AiTM đã biết và hiếm khi cần thiết đối với người dùng tương tác. Kiểm tra nhật ký đăng nhập bằng mã thiết bị, tiếp theo là liệt kê hộp thư Graph ngay lập tức.
- Phát hiện mạng. Chặn và cảnh báo api[.]nolimitent[.]xyzTìm kiếm nhật ký DNS và proxy đi ra trên toàn bộ cơ sở hạ tầng phát triển và xây dựng.
- Phát hiện đường dẫn thư. user @ host Các biểu mẫu giả mạo URL (trusted[.]com@…) có thể được phát hiện tại cổng thư và máy chủ proxy; gắn cờ các liên kết có thành phần xác thực đứng trước một @.
Gói phần mềm vẫn đang hoạt động trên npm tại thời điểm phân tích. Bởi vì khung phần mềm ẩn trải dài toàn bộ dòng phiên bản đã được công bố và phiên bản hiện tại. mới nhất Thẻ (1.0.307) mang khả năng mã thiết bị, việc gỡ bỏ registry nên bao gồm mọi phiên bản, không chỉ một phiên bản cũ duy nhất.




