Bối cảnh
Tải về một mô hình lớn mã nguồn mở, bạn thường lo lắng liệu nó có hoạt động bình thường không, trọng số có thật không. Lần này, điều thực sự cần lo lắng lại ẩn ở nơi khác: một kho lưu trữ ghi là 27B tham số, nhưng khi bạn nhận về lại chỉ có 487 KB—bên trong không phải là trọng số, mà là một mã độc đánh cắp thông tin.
Vào ngày 20 tháng 8 năm 2026, kho lưu trữ GitHub unburdened-jackinthebox365/qwen38-uncensored đã gửi một tệp có tên uncensored_qwen_v2.6.zip vào thư mục assets/, với dung lượng 487.153 byte. Kho lưu trữ này đóng gói nó một cách gần như hoàn hảo: trang chủ tuyên bố cung cấp trọng số lượng tử hóa cục bộ cho Qwen 3.8 27B, README nhấn mạnh việc chạy hoàn toàn ngoại tuyến, không có telemetry và dữ liệu không bao giờ rời khỏi máy tính của bạn—mỗi câu đều trúng tâm lý của người dùng mô hình cục bộ. Bốn ngày sau, vào ngày 24 tháng 8, README được chỉnh sửa lại lần nữa—nút tải xuống, các liên kết tải xuống trong nội dung, cùng với hai liên kết bên ngoài ban đầu dẫn đến trang web chính thức của Ollama và LM Studio, đều được thay đổi để trỏ đến địa chỉ raw của cùng một tệp ZIP.

Tới lúc này, điểm yếu đã rõ ràng. Một mô hình lượng tử hóa Q4_K_M với 27 tỷ tham số, khi lưu trữ thường vượt quá 16 GB, và thông báo được in ra bởi bin/install.cjs đi kèm trong kho cũng ghi rõ khoảng 16,8 GB. Tuy nhiên, tài sản thực tế nhận được chỉ có 487 KB, sau khi giải nén chỉ gồm ba tệp—Application.cmd, util.exe và cert.txt—không có bất kỳ trọng số GGUF nào.
Chúng tôi kết luận đây là một kho giả mạo mạo danh Qwen để phân phối tệp, dự án chính thức của Qwen không bị xâm nhập. Script cài đặt Node.js trong kho này trông giống như thực hiện quy trình “viết Modelfile → gọi ollama create”, nhưng chưa được xác minh động trong đợt này; mã chính của kho vẫn giữ ngoại hình của một dự án bình thường, trong khi ZIP độc hại được nộp dưới dạng tài sản trong thư mục assets/. Việc chỉ kiểm tra mã nguồn thông thường mà không giải nén tài sản tải về có thể bỏ sót lối vào này.
Bài viết này chủ yếu dựa trên bằng chứng tĩnh và không thực thi bất kỳ mẫu nào. Các yêu cầu C2 được tái tạo bằng dữ liệu máy chủ mô phỏng, chỉ đọc phản hồi và tải xuống payload, không thực thi nội dung đã tải về, cũng không truy cập điểm cuối tải lên cuối cùng; các mô tả hành vi trong bài viết chỉ chỉ ra rằng mã có triển khai hoặc đường dẫn gọi tương ứng, không có nghĩa là các thao tác này đã xảy ra trên máy chủ thực tế.
MistEye phản hồi
MistEye là hệ thống giám sát an ninh động và tình báo mối đe dọa Web3 do SlowMist tự phát triển, tích hợp khả năng giám sát an ninh và tổng hợp tình báo, cung cấp cảnh báo rủi ro thời gian thực và bảo vệ tài sản cho người dùng.
Trong sự kiện này, MistEye đã thực hiện phân tích tĩnh đối với kho bẫy, tài nguyên tải về và tải trọng tiếp theo, sử dụng thông tin máy chủ mô phỏng để tái tạo yêu cầu C2, lưu lại phản hồi và bằng chứng tải về, khôi phục chuỗi phân phối đa giai đoạn và trích xuất IOC mạng và tệp tin. Vào ngày 26 tháng 8, đã kiểm tra lại tình trạng hoạt động của C2 và việc luân chuyển cơ sở phân phối, đồng thời thực hiện so sánh hành vi ngoại tuyến đối với 29 tệp ZIP tương tự được phân bố trong 23 kho lưu trữ. Các IOC liên quan đã được tích hợp vào công cụ phát hiện mối đe dọa MistEye.

Dưới đây là phân tích kỹ thuật chi tiết.
Ba tệp trong gói tải về 487 KB
Nội dung toàn bộ Application.cmd là một lệnh:
start util.exe cert.txt
Tổng cộng 25 byte, bao gồm ký tự xuống dòng. Nó không giải nén mô hình và cũng không gọi Ollama, chỉ đơn giản để util.exe cùng thư mục đọc một tệp văn bản, sau đó chuyển quyền điều khiển cho script Lua trong cert.txt. Không có tệp nào khác trong gói nén, ba tệp này là toàn bộ nội dung.
util.exe có dung lượng 759.808 byte, là trình thông dịch LuaJIT 2.1 đã được đổi tên. LuaJIT bản thân nó là runtime Lua được sử dụng rộng rãi trong nhiều phần mềm hợp pháp. Đường dẫn PDB còn sót lại trong PE ghi D:\a\defold\...\luajit.pdb, chỉ đến sản phẩm đóng gói của động cơ trò chơi Defold. Phân tích tĩnh không phát hiện hành vi độc hại nào trong util.exe không phụ thuộc vào script; tệp này chỉ chịu trách nhiệm thực thi Lua đã làm rối trong cùng thư mục.
Tệp cert.txt có tên giống như một chứng chỉ, nội dung là một dòng Lua dài 182.116 byte. Toàn bộ script không có bất kỳ dấu ngắt dòng nào, tất cả chuỗi đều được chia thành các ký tự trốn thoát thập phân và gọi bảng tra cứu, nên khi đọc trực tiếp chỉ thấy toàn số và tên biến ngắn. Dưới đây là một đoạn nhỏ ở đầu tệp, được ngắt dòng để dễ đọc hơn, và bị cắt bỏ ở cuối bằng dấu chấm lửng:

Hai hàm đầu tiên chịu trách nhiệm lấy ký tự theo chỉ số và sắp xếp lại thứ tự, từ dòng thứ ba trở đi là bảng chuỗi đã bị xáo trộn. Hàng trăm chuỗi văn bản rõ trong script được lưu trữ dưới dạng này và chỉ được ghép lại thành dạng ban đầu khi chạy.
Do đó, điểm nhập rủi ro không nằm trong các chương trình mô hình. Tệp nén cung cấp một trình thông dịch chung cùng một tệp văn bản, với toàn bộ logic độc hại nằm trong cert.txt.
C2 đã hoàn thiện chuỗi phân phối tiếp theo
Sau khi giải mã ngoại tuyến, cấu trúc của cert.txt trở nên rõ ràng. Nó duy trì một bảng chuỗi gồm vài trăm mục, toàn bộ văn bản rõ được tách thành các ký tự số hóa, sau đó được phục hồi từng byte khi chạy. Script sử dụng LuaJIT FFI để phân tích và gọi các API Windows như VirtualAlloc, CreateThread.
Bộ tải có mã số 845. Sau khi khởi động, nó thu thập tên máy chủ, tên người dùng, GUID và phiên bản hệ thống, chụp một màn hình bằng BitBlt và lưu dưới dạng BMP, sau đó gửi một yêu cầu đến giao diện xác định vị trí IP để lấy thông tin địa lý, rồi gộp tất cả dữ liệu này thành một yêu cầu multipart và POST đến địa chỉ IP cố định 217[.]119[.]129[.]122. Dưới đây là yêu cầu thực tế mà chúng tôi đã tái tạo theo kịch bản:

Sau /api/ trong đường dẫn, chuỗi được giải mã là mã khách hàng 517b7c5e5663656a057f.Ảnh chụp màn hình được đặt trong phần file, phần bắt đầu bằng BM chính là tiêu đề BMP; thông tin máy chủ được đặt trong phần data, cả hai nằm trong cùng một yêu cầu. Sau khi giải mã data, nó là các giá trị mô phỏng như computer=SIMULATED-PC&user=simulated-user&query=203.0.113.10, không tương ứng với bất kỳ máy chủ thực tế nào.
Các nhiệm vụ do máy chủ gửi xuống được xử lý riêng biệt theo phần mở rộng, bao gồm bốn loại tải trọng: tải trọng thực thi trực tiếp trong bộ nhớ, chương trình độc lập, DLL và script. Một trình tải duy nhất có thể xử lý hầu hết các định dạng tải trọng phổ biến. Trong script còn có các chức năng loại trừ Defender, duy trì thông qua tác vụ lên lịch và gửi lại xác nhận hoàn thành nhiệm vụ; cả ba chức năng này đều nằm trong các nhánh điều kiện và được kích hoạt dựa trên cấu hình trình tải từ máy chủ và điều kiện cục bộ. Cấu hình lần này chỉ bật tính năng duy trì, các tính năng còn lại bị tắt. Đây là các chức năng kích hoạt theo điều kiện, không có nghĩa là các thao tác tương ứng đã được thực hiện trên máy chủ thực tế.
Khi địa chỉ mã cứng không còn hiệu lực, trình tải vẫn có một đường dẫn thay thế. Nó sẽ thực hiện một eth_call trên chuỗi Polygon để đọc giá trị trả về của selector 0x3bc5de30 từ hợp đồng 0x1823A9a0Ec8e0C25dD957D0841e3D41a4474bAdc, từ đó phân tích C2 thay thế; trong lần kiểm tra thực tế này, kết quả thu được là 194[.]48[.]248[.]94:
Tiền tố độ dài 0x14 là 20, đúng bằng số ký tự của địa chỉ đã giải mã, hai nơi xác nhận lẫn nhau. Đoạn hex này không cần phụ thuộc vào script giải mã của chúng tôi, chỉ cần tra một lần bảng ASCII là có thể tự kiểm tra lại. Trong năm điểm cuối RPC được cấu hình trong script, ba điểm trả về dữ liệu trên và trùng khớp từng byte, một điểm yêu cầu đăng ký trả phí, một điểm từ chối trực tiếp. Sau khi ghi địa chỉ vào hợp đồng trên chuỗi công khai, việc thay đổi máy chủ chỉ cần thực hiện một giao dịch; việc chặn riêng IP dự phòng hiện tại không thể ngăn hợp đồng trả về địa chỉ mới trong tương lai.
Sau khi sửa định dạng yêu cầu theo kịch bản, beacon mô phỏng 845 đã nhận được HTTP 200, JSON 1248 byte.
Các trường phản hồi được mã hóa ba lớp, hướng giải mã là Base64 → hex viết thường → XOR vòng 32 byte, khóa XOR ECe6VGLRJum2qYtl79OiOU7aHot7Zhbn được viết trực tiếp trong script. Hai đoạn dưới đây là nội dung phản hồi trước và sau khi giải mã, mỗi đoạn cắt 56 ký tự đầu tiên:

Giải ra là một chiến lược loader và một nhiệm vụ:

Trường pump kiểm soát việc có sử dụng dữ liệu ngẫu nhiên để mở rộng tệp xuống đến kích thước được chỉ định trên máy chủ hay không, công tắc này hiện đang tắt trong nhiệm vụ hiện tại.
Tải xuống tệp có tên `tool.log` và lưu vào `%TEMP%\dist.lua`, sau đó thực thi. Tệp này có dung lượng 396.616 byte, hoàn toàn là mã ASCII hex; sau khi giải mã hex và thực hiện XOR, thu được tệp Lua bị làm rối với dung lượng 198.308 byte. Đây là trình tải thứ hai, mã số 847, với C2 ban đầu được thay đổi thành `217[.]119[.]129[.]97`, bố cục làm rối giống hệt với 845. Sau khi thực thi trình tải 847 bằng dữ liệu máy chủ mô phỏng tương tự, nó gửi beacon đến `217[.]119[.]129[.]97`, và máy chủ trả về hai nhiệm vụ.
Trong hai tác vụ, một vẫn là `tool.log`, tác vụ còn lại trỏ đến `verb.log` trong cùng kho lưu trữ, đường dẫn lưu được ghi là `AppData\..\Local\Programs\Chromium\Application\Chromium.exe`. Phần `..` ở giữa làm cho đường dẫn vượt qua đến LocalAppData, cuối cùng tên tệp được ngụy trang thành chương trình chính của trình duyệt Chromium.
tool.log, verb.log và hai PE tiếp theo đều đến từ phản hồi C2 và quá trình tải về lưu trữ, các tệp này không có trong ZIP gốc. ZIP本身 chỉ chứng minh rằng trình tải có khả năng tải về và thực thi; các phản hồi C2 được lưu lại cho thấy, tại thời điểm thu thập, máy chủ đã gửi nhiệm vụ tải về tiếp theo đến loaderId 845.
Payload StealC do verb.log giải mã
Giải nén và tải
verb.log 3.089.408 byte, cũng là ASCII hex, chuỗi biến đổi là hex/XOR → PE ngoài → Base64URL/AES → PE trong. Dùng cùng một khóa XOR để giải mã sẽ nhận được PE ngoài 64-bit dài 1.544.704 byte, văn bản Base64URL trong đoạn tài nguyên của nó được giải mã thành bản mã AES-256-ECB dài 797.728 byte. Khóa bFYh8UMQGZOBUlvrpS3M4ZJybbubVbvg được suy ra từ PE ngoài dựa trên hai mảng hằng số, có thể phục hồi tĩnh, sau khi giải mã sẽ nhận được PE thứ hai cũng là 64-bit dài 797.728 byte.
PE ngoài tự ánh xạ PE trong tại tiến trình của chính nó: cấp phát bộ nhớ, sao chép tiêu đề và các phân vùng, sửa đổi định vị và bảng nhập, tạo luồng và khởi động tại điểm vào. Chuỗi gọi tĩnh không chứa các API tiêm xuyên tiến trình như CreateProcess, WriteProcessMemory, SetThreadContext, ResumeThread — toàn bộ quá trình là tải phản chiếu trong tiến trình.
Kiểm tra môi trường
Tải trọng bên trong trước tiên kiểm tra môi trường: nếu ngôn ngữ mặc định của hệ thống là tiếng Nga, tiếng Ukraine, tiếng Belarus, tiếng Kazakhstan hoặc tiếng Uzbekistan thì sẽ thoát ra; sau đó sử dụng tên Event được tạo từ thông tin máy chủ để kiểm soát đơn thể, rồi xác minh ngày hết hạn nhúng vào, chỉ khi tất cả các bước này đều thành công thì mới tiến vào logic chính.
Mục tiêu thu thập
Trình duyệt: Chrome, Edge, Brave lấy dữ liệu đăng nhập, cookie, lịch sử và các cơ sở dữ liệu liên quan; Firefox gọi giao diện NSS để giải mã thông tin đăng nhập đã lưu. Khi cơ sở dữ liệu bị khóa, sử dụng Restart Manager để kết thúc các tiến trình đang chiếm dụng.
Email và vận hành: Thông tin xác thực tài khoản Foxmail và Outlook, thông tin phiên WinSCP, trong đó các phiên WinSCP trực tiếp tương ứng với các máy chủ mà nạn nhân có thể truy cập.
Steam: Đăng nhập, cấu hình, token và tệp sentinel.
Từ Chrome 127 trở đi, cookie và mật khẩu đã lưu được bảo vệ bởi App-Bound Encryption, khóa được lưu trữ trong dịch vụ cấp hệ thống, chỉ sao chép tệp cơ sở dữ liệu sẽ không thể lấy được văn bản rõ. Tải trọng này tích hợp một PE phụ trợ, sử dụng Early-bird APC để tiêm vào chrome.exe, brave.exe hoặc msedge.exe đang ở trạng thái treo; module phụ trợ đọc khóa App-Bound đã mã hóa trong tiến trình trình duyệt, thông qua các giao diện dịch vụ Elevation COM tương ứng của từng trình duyệt để xuất ra khóa rõ 32 byte, giúp các tệp cơ sở dữ liệu đã thu thập trước đó có thể đọc lại được.
Việc thu thập ví hoàn toàn do máy chủ điều khiển: trình thu thập đệ quy phân phối các tác vụ tệp do C2 gửi xuống theo loại, trong đó nhánh wallets tìm kiếm thư mục cục bộ theo tên tác vụ và tên tệp; C2 cũng có thể gửi ID mở rộng để thu thập dữ liệu lưu trữ và IndexedDB của phần mở rộng Chromium tương ứng. Trong mã mẫu ở dạng văn bản rõ, không có tên thương hiệu ví hay đường dẫn cài đặt, cũng không có bất kỳ triển khai nào để phân tích từ mật khẩu BIP39 hoặc khóa riêng secp256k1—việc thu thập ví nào được xác định bởi nhiệm vụ do máy chủ gửi xuống, và danh sách mục tiêu của đợt này không thể liệt kê từ mã mẫu tĩnh.
Tải lên và gán nguồn
Tải trọng còn bao gồm các chức năng như chụp màn hình, thu thập thông tin hệ thống và danh sách tiến trình, tải và thực thi thêm bằng PowerShell, nâng quyền, cũng như tự xóa khi thoát.
Dữ liệu được tải lên thông qua JSON POST với phân đoạn 512 KiB. Điểm cuối tải lên được lưu trong tệp dưới dạng mã hóa RC4 rồi mã hóa Base64, giải mã bằng khóa cấu hình 55uUe45tr1x1xy1lSK sẽ được http[:]//89[.]169[.]12[.]194, nội dung yêu cầu được mã hóa thêm bằng một khóa RC4 khác.
StealC là một loại mã độc đánh cắp thông tin Windows chuyên đánh cắp thông tin đăng nhập trình duyệt, cookie, ví tiền điện tử và các dữ liệu nhạy cảm khác, sau đó gửi chúng đến C2 của kẻ tấn công. Các đặc điểm như phạm vi thu thập tải trọng lõi, công cụ giải mã App-Bound, nhánh ví và mã hóa RC4 để tải lên đều phù hợp với các đặc trưng đã biết của StealC, do đó chúng tôi phân loại nó là StealC.
Nếu các tài liệu này bị lấy thành công, hậu quả sẽ khác nhau: cookie trình duyệt dẫn đến việc phiên đăng nhập bị chiếm quyền kiểm soát, thông tin email và Steam dẫn đến mất tài khoản, phiên WinSCP dẫn đến máy chủ do nạn nhân vận hành; nếu khóa riêng hoặc từ phục hồi ví bị rò rỉ, việc chuyển tài sản sẽ không thể hoàn tác.
Re kiểm tra để xác nhận cơ sở phân phối đang được luân chuyển
Vào ngày 26 tháng 8, chúng tôi đã gửi lại ba beacon với cùng dữ liệu máy chủ mô phỏng. Cả ba điểm cuối đều trả về HTTP 200, trường chính sách loader không thay đổi chút nào. Sự thay đổi xuất hiện ở địa chỉ tải về trong nhiệm vụ.

vs.log giống từng byte với tool.log cũ, chỉ thay đổi tên, bộ tải 847 không thay đổi. ssl.log sau khi giải mã là PE lớp ngoài phiên bản mới, dung lượng 1.539.072 byte, địa chỉ nhập và kích thước ảnh đều thay đổi, khóa AES được xoay thành yK8-eM8KFA8Hl8cCybERmOLZupFvfCNZ.
Payload bên trong được giải mã bằng khóa mới vẫn là 797.728 byte. So sánh từng byte với phiên bản cũ, toàn bộ tệp chỉ có một sự khác biệt, nằm trong đoạn dữ liệu chỉ đọc, số bản dựng được gửi lên máy chủ đã thay đổi từ build5 thành build1. Điểm cuối tải lên, khóa cấu hình RC4 và khóa thân yêu cầu đều giống nhau.
Việc thay đổi kho, đổi tên tệp, cập nhật PE bên ngoài và thay đổi khóa AES khiến hash chính xác của tệp cũ trở nên không hợp lệ. Việc các đặc điểm cấu trúc và hành vi ổn định vẫn có thể được phát hiện hay không cần được xác minh bởi các quy tắc cụ thể. Phần thân tải độc hại đánh cắp thông tin trong hai ngày qua duy trì ổn định, chỉ thay đổi một nhãn phiên bản; đây là quan sát giữa hai ngày thu thập, chưa đủ để đánh giá liệu nó có duy trì ổn định trong thời gian dài hơn hay không.
Nhiều kho lưu trữ GitHub độc hại hơn
Chúng tôi còn thu thập thêm 29 mẫu ZIP độc hại được phân bố trong 23 kho GitHub. Kiểm tra sơ bộ cho thấy tất cả các mẫu này đều sử dụng Lua như một phần trong chuỗi thực thi, với hình thức phổ biến là các trình khởi động .cmd hoặc .bat gọi LuaJIT cục bộ hoặc trình thông dịch đã đổi tên, sau đó thực thi các tập lệnh Lua trong cùng thư mục. Các chủ đề bẫy trong các kho liên quan bao gồm nhiều danh mục như mô hình và công cụ AI, dịch vụ MCP, tập lệnh phát triển và dự án ví.
Cần lưu ý rằng hiện tại chưa thực hiện việc khôi phục mã đầy đủ và phân tích chuỗi tấn công chi tiết cho từng trong số 29 mẫu này, do đó bằng chứng hiện có chỉ xác nhận rằng tất cả các mẫu đều có hành vi độc hại và cùng sử dụng stack Lua, nhưng không thể kết luận rằng tất cả các mẫu đều sử dụng phương pháp làm rối giống nhau, quy trình thực thi, cơ sở hạ tầng C2 hoặc tải trọng cuối cùng.
Summary
Một kho GitHub giả mạo Qwen hướng người dùng tải về một tệp ZIP 487 KB, bên trong không chứa trọng số mô hình, mà chỉ có trình thông dịch LuaJIT và một tập lệnh bị làm rối. Phản hồi C2 được lưu trữ liên quan đến tải trọng đánh cắp thông tin bên trong, chúng tôi phân loại nó là StealC.
Rủi ro liên quan đến phiên trình duyệt, email và thông tin xác thực vận hành, mã xác thực Steam và tài liệu liên quan đến ví, với điều kiện các tài liệu tương ứng đã được thu thập thành công. Giữa hai lần thu thập, kho phân phối, tên tệp, PE lớp ngoài và khóa AES đã thay đổi, trong khi tải trọng bên trong chỉ khác một ký tự trong số phiên bản xây dựng; 29 tệp ZIP tương tự được phân bố trong 23 kho cho thấy bộ khung phân phối này đã được tái sử dụng hàng loạt, nhưng chuỗi tiếp theo đầy đủ của từng biến thể vẫn cần được xác nhận từng mẫu một.
Khuyến nghị
1. Cô lập và thu thập bằng chứng: Khi máy chủ trùng khớp với các ZIP, hash script, C2 hoặc URL tải về được liệt kê trong bài viết này, hãy lưu trữ nguồn tải về, cây tiến trình, nhật ký kết nối mạng và tệp được giải nén trước khi tiến hành dọn dẹp.
2. Kiểm tra thay đổi trên máy chủ: Nếu phát hiện hồ sơ thực thi trình khởi động hoặc hồ sơ LuaJIT, trình thông dịch đã đổi tên tải văn bản bị làm rối với kích thước lớn, hãy kiểm tra các tác vụ lên lịch, khóa Run, mục StartupApproved và xác nhận xem ổ hệ thống hoặc các phần mở rộng .exe, .dll có bị thêm vào danh sách loại trừ của Defender hay không.
3. Xử lý chứng nhận: Khi xác nhận việc thực thi mẫu hoặc phát hiện tải trọng liên quan, hãy đặt lại phiên trình duyệt và các thông tin đăng nhập đã lưu như mật khẩu, tài khoản email, mã xác thực Steam và chứng nhận phiên WinSCP; nếu trên máy chủ từng lưu trữ khóa riêng hoặc cụm từ phục hồi ví, hãy chuyển tài sản sang địa chỉ mới trước, sau đó mới xử lý máy chủ.
4. Tăng cường phát hiện tổ hợp: Thêm chuỗi hành vi “Bộ khởi động nhỏ → LuaJIT cục bộ hoặc trình thông dịch đã đổi tên → Văn bản một dòng dung lượng lớn trong cùng thư mục → Gửi yêu cầu HTTP hoặc ghi vào bộ nhớ có thể thực thi” vào quy tắc giám sát. Chuỗi này sử dụng các dịch vụ hợp lệ, nên việc xác định phải dựa trên tổ hợp hành vi và kết hợp với các URL độc hại chính xác được liệt kê trong bài viết này, không cấm vô差别 các URL như GitHub Raw hoặc RPC công cộng của Polygon.
IOC
IP
217[.]119[.]129[.]122
194[.]48[.]248[.]94
217[.]119[.]129[.]97
89[.]169[.]12[.]194
URL
http[:]//217[.]119[.]129[.]122/api/NTE3YjdjNWU1NjYzNjU2YTA1N2Y=
http[:]//217[.]119[.]129[.]97/api/NTE3YjdjNWU1NjYzNjU2YTA1N2Y=
https[:]//raw[.]githubusercontent[.]com/unburdened-jackinthebox365/qwen38-uncensored/main/assets/uncensored_qwen_v2[.]6[.]zip
https[:]//github[.]com/Minaadelfouad64/tools/raw/refs/heads/main/verbose/tool[.]log
https[:]//github[.]com/Minaadelfouad64/tools/raw/refs/heads/main/verbose/verb[.]log
https[:]//github[.]com/fuhuhlatoogan/mtp/raw/refs/heads/main/p/vs[.]log
https[:]//github[.]com/fuhuhlatoogan/mtp/raw/refs/heads/main/p/ssl[.]log
Malicious dependency
https[:]//github[.]com/unburdened-jackinthebox365/qwen38-uncensored
https[:]//github[.]com/Minaadelfouad64/tools
https[:]//github[.]com/fuhuhlatoogan/mtp
https[:]//github[.]com/0ogata0/qwen-php-client
https[:]//github[.]com/115th-discomfited211/Awesome-Harness-Engineering
https[:]//github[.]com/123affano1/claudetrack
https[:]//github[.]com/1sustgmboab/nexonco-mcp
https[:]//github[.]com/2josEx/claude-brain
https[:]//github[.]com/428alexander9/claude-skills-marketplace
https[:]//github[.]com/45d5r/databricks-mcp-server
https[:]//github[.]com/7ossamfarid/mcp-mindmesh
https[:]//github[.]com/Bean5789/bbd2api
https[:]//github[.]com/CleverPortal/CollabNote-Fullstack-App
https[:]//github[.]com/Juanvil9941/AI-Invoice-System
https[:]//github[.]com/Kalainilavann/takeout_downloader_script
https[:]//github[.]com/Prestonflatfooted659/Void-Tools-v2.0
https[:]//github[.]com/Walloperlioncub193/Canva-Resource
https[:]//github[.]com/archontelemetered604/clash-for-windows
https[:]//github[.]com/fantastic-interpolation620/ctx-wire
https[:]//github[.]com/mikenob39wang/phone-number-location-tracking-tool
https[:]//github[.]com/recognisable-riddance165/Portable-Offline-LLM
https[:]//github[.]com/sociologisttentcaterpillarmoth213/100xdev-ci-cd
https[:]//github[.]com/soldat-panther/qq-farm-cdp-auto
https[:]//github[.]com/thaddeusprobabilistic193/Xault-Wallet
https[:]//github[.]com/twelfth-puerperium297/tokenoptim
https[:]//github[.]com/wasila7220/multi-model-router
Tập tin độc hại
tên tệp: uncensored_qwen_v2.6.zip
MD5: bf21a07ad5743d3ae9f55ff526428a0a
SHA1: 8e3391c17c3f4fb6f42594de7425df96dbbbc01e
SHA256: 36d0bac5743ed9c6858258f28f2c2f9161dc06c4d5af73eb7eda1211ea610758
tên tệp: Application.cmd
MD5: 17d94f34b9d15449b03bc099a637782b
SHA1: eb474f898256e8e7baaf0d63b306d1169e637c73
SHA256: 7c4f3e09c6428d0a0d7d85615695f5fedb35bb4e7180d31e1f8a1bacf22e5639
tên tệp: cert.txt
MD5: ccfc0f145861f23c6850c691c4be54b9
SHA1: b88ac887493f31cf9f160ddbc6bc3a2aa298a0ca
SHA256: a75561a3224d9f836058a6d0204ed2e6c1f638275a59495935cd2a5e46fd28ca
tên tệp: tool.log, vs.log
MD5: 8063ba8ec896b52e5e6d435cc60e82f7
SHA1: f445bd4c5b65b7e013ec518f34f4cd64676201d2
SHA256: 7ebbb61733d8aefcf9401f00e8ff7e593c9f0edecb6609675aebd3eb78a5ae2d
tên tệp: verb.log
MD5: 650a8ee5d091275040ae4dd02dcdd806
SHA1: 343d819ceb63c742912723c42fd158b82d0a90be
SHA256: 699af883d862d8949a494f69e2d300142ce506a0ac6c7a239193c111dfed241e
tên tệp: inner-payload.aes256-ecb-decrypted.bin
MD5: 01e433263a7fd50e812195ff4c11cc90
SHA1: ea53a41c53181374cade8d69882bb1390f0c2562
SHA256: ec981c45d494896037583c746543490176c9ce9a1482e62c4e8ab189c2650b1c
tên tệp: ssl.log
MD5: 9d11bce9c213924b53bcb986f07945c6
SHA1: 2abf1436933dc6b63a016661d5d16f1eda303b59
SHA256: 7b0d919bd510cbcc587cca4b74aad1e086fb1fc34882a39946e6db7d4361a746
tên tệp: inner-payload.build1.bin
MD5: 370f95bf40a9c9fe852b2e4bdd95689f
SHA1: 219a0e7c3907bb65ef7db7428400745570d4e105
SHA256: 5d63f3dc9371d4496ca0e728a794151978e94b69ae4b3c705cea4e67cc6cf208
tên tệp: client_qwen_php_v2.4.zip
SHA256: 073c6192ab4c2d5d25fc13acab4c216c96f9d5926064c534e3803bb31d527b28
tên tệp: Engineering_Harness_Awesome_1.9.zip
SHA256: 0870fe8a4d9e64e335047e16ed1d6b0805beab9686495a1e8c247cf2e1a8e930
tên tệp: Software_v1.6.zip
SHA256: 71b37b48f80106fc864be7e82481cd1a2f7decfeaf1dce45abb924d7f32da933
tên tệp: nexonco-mcp-v3.0-alpha.1.zip
SHA256: a866d90d6f1dd82ddcd2cbef4f5550c77bb58dbda87c02eedb441a117b7d89b9
tên tệp: claude-brain-v1.4-alpha.3.zip
SHA256: a271231ebf6174b11aeb3337c238abc0eac44b48b5fa8d2b168883601d8cc3a5
tên tệp: brain_claude_2.2-alpha.1.zip
SHA256: ca4babb4444af81cf93b34436de7a4a3c8e1a93f6233bcc8753ddd868b4c9eaa
tên tệp: claude-skills-marketplace_v3.4.zip
SHA256: 438033226b1bd1e26db8ab71a777e74cc90b5c31310139269fe8e52308f6c938
tên tệp: skills-marketplace-claude-2.9.zip
SHA256: f07a4eadd43513f56ae4fdf6f6dfc966de17f06093c75c1dec0dd426668779f9
tên tệp: server_databricks_mcp_1.6.zip
SHA256: 66afc7d87d10dbe392898c4e5c613e0442fabb396415c2bef3a5ef2ac752c5ad
tên tệp: mindmesh_mcp_1.0-alpha.5.zip
SHA256: e8da8c82ccb1c6fd68e7c03187485d6ebbd07a4946a7f07cac54fef65b00d2bf
tên tệp: bbd-api-3.1.zip
SHA256: 3524dc4a232c76067f8b2df9adf34ae1106dcc1528e5467c1abc285fc51d1e82
tên tệp: Note-Collab-App-Fullstack-v3.6-alpha.5.zip
SHA256: 6f823d15658b07d6d90f292848fcdd30fe840f83d653cc34966e2fd61d9c3117
tên tệp: Invoice_A_System_3.9.zip
SHA256: 8332d91619563e46e248f427cf489f8bd61a83124eb4c95749ce284b443a2803
tên tệp: downloader-script-takeout-v1.1.zip
SHA256: 8412f2d2b47181f272b0c0e02fe619331e0c2c8d3b90f32e8ce08ac98aaec3f6
tên tệp: downloader_takeout_script_v3.8.zip
SHA256: b781102c6ff857fb45089a6b3d30c5ebb7699ec7e8771bfa0039bef28de782bd
tên tệp: takeout-downloader-script-galvanocauterization.zip
SHA256: 13dc7623c66d1fed51ae94b0d96e8ed45c93d893afabf9aceb4ef0a8da0243ee
tên tệp: Void-v-Tools-v1.7.zip
SHA256: 841d0c25137f35b60d940705ab7b5dc3e9936f37e0561934e72c5dafe93466d8
tên tệp: Resource-Canva-2.2.zip
SHA256: ac6a24d02209df94f56f67e7f3f19dc997f7a2625b91add1dd10cdec0a06d392
tên tệp: for-clash-windows-3.2.zip
SHA256: 036062622f3a1fa2718afc91f8fe4edc693b757365dfc2c0958b70fe8c84c20d
tên tệp: wire-ctx-2.6-alpha.1.zip
SHA256: db0640eb414a89bb62953f0aa7603557f3b8de515e7c3696156abc10f835ecef
tên tệp: location-tracking-tool-phone-number-v3.3.zip
SHA256: 3fc5816afde3e58bf9fcaa1b3873f2d4bc8629ee7a8341a4a4979d2729cad5e6
tên tệp: location_number_tracking_tool_phone_v2.5.zip
SHA256: 398ea394f9a4242ebe9fd67a5ca62445fc4a34b1731d4f99b8eea5e65a98ddcb
tên tệp: tracking-tool-location-number-phone-3.2.zip
SHA256: b6e81d95c0c336e8b8bde3889f4df4ee17639f6ff055c631de19cab3c7efb63b
tên tệp: Offline_LLM_Portable_v2.1-alpha.1.zip
SHA256: 1313b6cfb1ea43367fdd845f64526b4972a3a345bb8b13cef7ebb678d59b5f55
tên tệp: ci_cd_xdev_v2.3-alpha.3.zip
SHA256: ed1ae6799ecb1fc7c5239c4ab95b3b9de9462f21219f144a25b91b6fd430a2c2
tên tệp: farm-cdp-qq-auto-1.1.zip
SHA256: 6145aeacba6533e10dcea287d0fff64c48a790c58ae266ed18ea5d13c36d27ca
tên tệp: v3.9.zip
SHA256: a0dd4924bec9bc077b1f98ddcb45b4e07b01e63ad703c2507d822b5b5130a077
tên tệp: Software-Lithodes.zip
SHA256: 40c2b7b8dcfa6bfe0a199af9ea4baa00a4b8ecd73afa326702cdc4197d64bdef
tên tệp: model-multi-router-v3.5-beta.1.zip
SHA256: 152929ae778e6ed9f358ca8590d2155e1a04137b109a5442891e1ba3fe1a7f82
Về MistEye
MistEye là nền tảng giám sát an ninh động và tình báo mối đe dọa Web3 do SlowMist tự phát triển, cung cấp khả năng phát hiện hoạt động độc hại và cảnh báo rủi ro chuỗi cung ứng cho hệ sinh thái gói nguồn mở thông qua API.
Toàn bộ các gói độc hại và IOC liên quan đến chiến dịch này đã được tích hợp vào công cụ phát hiện mối đe dọa MistEye. Các nhà phát triển có thể sử dụng API để tự động hóa việc kiểm tra các phụ thuộc của dự án, nhanh chóng xác định xem có trùng với các gói độc hại đã biết hay không và nhận đề xuất xử lý.
📖 Tài liệu API: https://app.misteye.io/api-docs
🛠️ MistEye-DepScan: https://github.com/slowmist/MistEye-DepScan
Công cụ CLI nhẹ, quét các gói độc hại đã biết trong phụ thuộc dự án và các gói cài đặt toàn cầu chỉ với một lệnh, hỗ trợ hệ sinh thái npm / PyPI / Cargo / Go / RubyGems
🛠️ MistEye-Skills: https://github.com/slowmist/misteye-skills
Bộ kỹ năng bảo mật AI Code Assistant tự động kích hoạt kiểm tra bảo mật MistEye trước khi cài đặt phụ thuộc và truy cập URL
🛠️ MistEye-DNS-Guard: https://github.com/slowmist/MistEye-DNS-Guard
Công cụ bảo vệ an toàn DNS, phát hiện tên miền độc hại và truy cập rủi ro, nhận diện các mối đe dọa mạng như lừa đảo, C2
Bài viết này được đội ngũ tình báo đe dọa SlowMist biên soạn dựa trên hệ thống tình báo đe dọa MistEye và phân tích do SlowMist Agent AI hỗ trợ. Mọi thắc mắc vui lòng liên hệ để phản hồi.
Tham khảo
[1]https://x.com/OpcodeIntel/status/2091578565628502324
[2]https://www.microsoft.com/en-us/security/blog/2026/06/24/stealc-and-amadey-breaking-down-infostealers-and-the-cybercrime-services-that-deliver-them/
[3]https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html
