🚨 Cảnh báo job “siêu ngon” – Mồi nhử để dev bị lừa tải và giải nén malware
Hôm nay mình share tình huống lừa đảo thâm hiểm mà một bạn dev trong nhóm mới gặp – có nhiều yếu tố technical nên anh em chăm dev sẽ hiểu nhanh. Mình không bị dính, nhưng mất cả buổi mổ xẻ mã độc. Mong anh em đọc cảnh giác, đừng đi theo con đường này!
🚨 Cảnh báo job “siêu ngon” – Mồi nhử để dev bị lừa tải và giải nén malware
Chào anh em,
Hôm nay mình share tình huống lừa đảo thâm hiểm mà một bạn dev trong nhóm mới gặp – có nhiều yếu tố technical nên anh em chăm dev sẽ hiểu nhanh. Mình không bị dính, nhưng mất cả buổi mổ xẻ mã độc. Mong anh em đọc cảnh giác, đừng đi theo con đường này!

🚨 Cái bẫy quá ngon để tin
Tự nhiên có người lạ inbox: “Anh ơi, em có đoạn code chạy không được, fix giùm em nhé, trả 15 triệu.”
Quả thật nghe hấp dẫn, chỉ cần sửa code mà có 15 củ? Người thuê trả lời rất thật, gửi zip kèm password cũng nhanh lẹ.
📦 File ZIP – Có gì bên trong?
Sau khi tải về và giải nén (có pass luôn), mình mở ra thấy:
app.jsimport 3 file.js, mình chú ý filehelper/css.js?. CSS mà.jsthì đáng nghi rồi đó.
Trong đó gọi hàm
site_version(...), load file.txt, rồi dùngeval(...)– tức là thực thi code JS nghi vấn.
.txtđi kèm toàn khoảng trắng với một dòngempty, còn code JS thì obfuscated – dùng biến, hàm lóng, không thể đọc ngay.
Quan trọng: không hề có task gì rõ ràng cho dev, tất cả chỉ là mồi câu.
🛠️ Phân tích mã độc JS – Quá trình bóc tách
1. Entry point: AQNoc()
Mình tìm được hàm này là entry point – nơi bước đầu mã độc khởi chạy.

js
for (const cSqoc of cmwb) {
await wtUnc(cSqoc);
} 
Biến
cmwbchứa danh sách zip cần xử lý (hai filejs.zip,node.zip, với đường dẫn Desktop →/public/js/*.zip).
2. Lần theo wtUnc(...)
Trong đó có quá nhiều hàm obfuscate như b12mb.rbIkb(...), nhưng điểm mấu chốt là:
js
const gBjoc = ${...};
await ksIb(gBjoc); 
ksIb()thực tế làexeccommand line – mình log ra thì giá trị:
python
.\7za.exe x js.zip -o"C:\...\init" -p<JNFWEIUFNW...>
.\7za.exe x node.zip -o"C:\...\init" -p<JNFWEIUFNW...> 


✅ Bingo! Lệnh này chính là cách mã độc giải nén zip và password nằm ngay trong đó.
📦 Trong ZIP có gì?
Mình thử unzip 2 file lúc đầu chưa biết pass – đều bị kẹt. Sau khi công khai password từ lệnh, mình giải nén và thu được:
app.exenode.dll
➡️ Đây chính là payload thực thi sau phần JS giải nén.
🧪 Tóm quá trình
Xác định entry point
AQNoc().Lần theo
wtUnc(...), log ra command exec.Lộ ra password giải nén zip từ runtime.
Giải nén hoàn chỉnh, thu được các file thực thi nghi vấn.
⚠️ Về payload .exe
Mình đã test dynamic analysis, hành vi tương tự bài trước – file JavaScript chạy unzip trong
public/js, sau đó chạyapp.exe.Payload sẽ thu thập dữ liệu trình duyệt (Chrome/Edge/Brave/Opera...), gửi về server ở Nga.
Chỉ chạy
node(chưa cần admin), nên dễ dàng ăn dữ liệu trình duyệt.
Kết luận: Đây không phải job, mà là bẫy malware. Chỉ cần chạy zip hoặc script, bạn dễ:
Mất dữ liệu trình duyệt (cookies, mật khẩu),
Bị cài keylogger/backdoor,
Mất toàn bộ quyền trên máy.
🛡️ Dev cần lưu ý gì?
Không chạy file lạ:
.exe,.bat,.ps1, hoặc script yêu cầu quyền hệ thống.Không ham job quá ngon, đặc biệt khi người thuê không rõ background, không có profile.
Nếu nhận ZIP có pass lạ: phân tích tĩnh trước (đọc file JS/log console) – đừng unzip và chạy ngay.
Check file bằng Windows Defender, Malwarebytes, hoặc upload lên VirusTotal đầu tiên.
💡 Note:
Mình chỉ là web dev bình thường, không chuyên phân tích mã độc – mình dùng cả ChatGPT để viết lại đoạn technical cho dễ hiểu. Ai còn thắc mắc cứ comment mình giải đáp. Nếu thấy bài hữu ích, share để mọi người tránh rủi ro nhé.
Cảm ơn anh em đã đọc!