Featured image of post Suýt Dính Trojan Vì Một Thằng Trên LinkedIn

Suýt Dính Trojan Vì Một Thằng Trên LinkedIn

Remote job lương $20k/tháng? Hóa ra là virus. Đây là cách mình phát hiện ra trước khi dính chưởng.

Tin Nhắn Khởi Đầu Mọi Chuyện 💼

Đang ngồi lướt “Threads city” phiên bản công sở như mọi ngày, xem hôm nay chiến sĩ nào lại nằm xuống.

Rồi thằng mặt lìn này xuất hiện:

Jefferson Vinícius - profile Brazil, chẳng dính dáng gì đến Livepeer cả. Có thể nó lấy avatar của người khác, nhưng nói chung vẫn mặt lìn:

“Hey! Livepeer đang tuyển với mức lương 15-20k USD/tháng, giờ làm linh hoạt, 100% remote. Bạn quan tâm không?”

Phải đọc lại 2 lần.

$15-20k. Một tháng. Remote. Muốn làm lúc nào thì làm.

Mình biết Livepeer, công ty crypto về video infrastructure nổi tiếng đấy. Suýt mua token của họ hồi FOMO uptrend mấy mùa trước.

Nhưng mà… $20k/tháng!!! Bằng lương mấy GURU ở FAANG chứ nhiu, ít vậy mà dám mời KOL HoangYell? nực cười 🐧 Khác gì mời cầu thủ V-League về gánh hàng công Man Utd!

Nghe là thấy bịp rồi, nhưng mấy sách self-help hay bảo phải biết nắm bắt cơ hội. Nhiều khi phú quý nó vận vào người thì sao? Hoặc mấy công ty crypto, tiền bạc với họ đâu phải vấn đề. Thôi cứ thử, đôi khi chó táp phải ruồi. OK, chơi thử xem…


Red Flag #1: Cái Vụ Múi Giờ ⏰

Hắn bảo có bài test kỹ thuật. OK, làm thì làm, mình rớt hoài nên quen rồi. Mình hẹn 2:00 UTC thứ Bảy.

Hắn đồng ý liền. Không “để tui check lịch.” Chỉ “OK!” Nhanh vãi.

Profile ghi Brazil. Brazil là UTC-3. Tính nhanh: 2:00 UTC = 11 giờ đêm thứ Sáu bên đó.

Lão này hoặc là recruiter tâm huyết nhất hành tinh, hoặc… méo ở Brazil.

Mình còn xin ý kiến ChatGPT xem profile có legit không. Nó trả lời kiểu qua loa, nói chung GPT cũng chẳng biết gì.


Red Flag #2: Biến Mất Không Một Dấu Vết 👻

Thứ Bảy tới. Mình nhắn đúng 2:00 UTC: “Sẵn sàng rồi nè!”

Im lặng.

Đợi. Pha cà phê. Đi pee & poo. Quay lại. Vẫn im.

12 tiếng sau, Hắn mới gửi link như không có gì xảy ra:

“Đây là bài assessment: https://bitbucket.org/livepeer-labs/technical-assessment

Không xin lỗi gì hết, gởi cái link tỉnh bơ.

Tuyển nhân viên cho công việc $20k/tháng mà làm việc chuyên nghiệp ghê… 🤡

Tip nhỏ: Mấy thằng lừa đảo thường rất dở trong việc giả làm người bình thường.


Red Flag #3: Sao Lại Bitbucket? 🎣

Repo thật của Livepeer? github.com/livepeer - hơn 200 cái, tất cả trên GitHub.

Nhưng “bài test kỹ thuật” của họ? Lại host trên một account Bitbucket random. Ừ được, coi như tin đi. 🙄

⚠️ CẢNH BÁO

Repo này chứa malware thật. Đừng chạy trừ khi bạn thích cho người lạ vào máy bạn chơi.

(Repo gốc bị xóa rồi. Đây là fork của mình nếu muốn xem hiện trường.)


Red Flag #4: “Clone Rồi Chạy Đi” 🚨

Hắn bảo mình pull repo về rồi chạy local để làm bài test.

Mình làm coding challenge cả đống rồi. Chưa bao giờ công ty legit nào bảo “download code bí ẩn của tụi tao về rồi chạy đi.”

Công ty thật họ dùng:

  • Mô tả task đơn giản: “Build X từ đầu”
  • IDE online (HackerRank, CodeSignal)
  • Platform riêng của họ

Không ai bảo “chạy cái project này trên máy mày đi, tin tao.”

Đó không phải test. Đó là phương thức giao hàng lậu.


Red Flag #5: Bài Test Vô Lý 🎭

Task:

“Khi dừng recording, hiển thị canvas drawing dưới dạng video.”

Frontend challenge hay đấy. Một vấn đề nhỏ: toàn bộ profile mình ghi backend developer. APIs, databases, system design. CV? Backend. Projects? Backend.

Họ không đọc gì cả. Họ chỉ cần một thằng chạy npm install.

Bọn này có bị ngu không mà đưa cái đề frontend cho backend dev?

Mình có 2 lựa chọn:

  1. Chạy trên máy chính như thằng ngu
  2. Hoài nghi nhân sinh liền

Mình chọn hoài nghi nhân sinh liền. Bật con laptop sandbox lên - con máy chứa mấy game crack, file download lung tung, và không có gì mình care. Nếu nó muốn ăn cắp gì thì cứ lấy mấy file save CS 1.6 từ 2008 đi.


Red Flag #6: execp Làm Cái Gì Ở Đây? 🔍

Việc đầu tiên mình làm: check package.json.

Một app canvas đơn giản chỉ cần vài dependencies cơ bản. Nhưng cái này có:

execp là cái gì? Module để thực thi system commands.

Trong. Một. App. Vẽ. Canvas.

App frontend cơ bản mà cần chạy system commands làm cái quần què gì?

Mùi cớt hơi đậm đà rồi đó.


AI Thấy Ngay Lập Tức 🤖

Mình hỏi thèng đệ mới nổi của nhà Google: “mày nói xem cái này làm gì.”

Trả lời:

“Ừ, đây là malware. Đây là những gì nó đang làm…”

Không phải “project thú vị.” Không phải “trông bình thường.” Thẳng thắn: malware.


Phát Hiện: Hàng Trăm Dòng Code Ẩn 🧬

Mở next.config.js. Nhìn vô tội:

Rồi mình bật word wrap.

Đù má …

Cái tưởng chỉ 5 dòng thực ra là hàng trăm dòng JavaScript đã obfuscate, nhét hết vào một dòng. Trick cổ điển.

Sau khi deobfuscate, đây là những gì malware làm:

  • Gọi về http://45.43.11.248:1244
  • Lấy thông tin máy nạn nhân (username, hostname)
  • Download malware tiếp theo
  • Lưu vào ~/.vscode/ để trông legit
  • Thực thi payload
  • Thử lại mỗi 10 phút nếu thất bại
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
               ┌────────────┐
               │   BẮT ĐẦU  │
               └─────┬──────┘
          ┌──────────┴──────────┐
          │ Giải mã strings và  │
          │ modules đã obfuscate│
          └──────────┬──────────┘
          ┌──────────┴──────────┐
          │ Lấy thông tin máy   │
          │ Gọi về server C2    │
          └──────────┬──────────┘
          ┌──────────┴──────────┐
          │ Download payload    │
          │ Ẩn trong ~/.vscode/ │
          └──────────┬──────────┘
          ┌──────────┴──────────┐
          │ Thực thi payload    │
          │ Thử lại mỗi 10 phút │
          └─────────────────────┘

Cái repo chỉ là bước một. Một thằng đưa thư. Thiệt hại thật sẽ đến từ cái được download tiếp theo.

Thôi, hiểu rồi, làm éo gì có cục vàng nào trên trời rơi xuống. Đúng là chỉ có cứt chim với nước mưa thôi.


Mình Troll Lại Tí 😈

Mình bảo Jefferson làm xong rồi, hỏi có cần gửi PR không.

Trả lời của hắn? Hắn không care code gì cả. Hắn chỉ muốn video app đang chạy - bằng chứng mình đã execute package của hắn.

Mày nghĩ mày lừa được tao hả ku, thằng chó đẻ. 😏

Mình không gửi. Im luôn.

Mình định gửi bài blog này cho hắn để “đánh giá assessment.” Tiếc là hắn biến mất khỏi LinkedIn trước khi mình kịp viết xong. Tiếc thật. 🤷


TL;DR: Những Red Flag 🚩

#Red FlagTại Sao Sus
1Timing lộn xộnĐồng ý 11 giờ đêm thứ Bảy theo timezone của hắn, rồi biến mất 12 tiếng
2Hosting không khớpCông ty thật dùng GitHub, “assessment” lại trên Bitbucket random
3“Clone rồi chạy đi”Không ai legit bảo bạn execute code bí ẩn
4Assessment không phù hợpFrontend task cho backend dev? Tào lao
5execp trong canvas appSystem commands trong frontend code?
6Config đã obfuscateHàng trăm dòng ẩn trong next.config.js

Attack Này Gọi Là Gì? 🎓

Hai kỹ thuật cổ điển, một combo attack:

1. Spear Phishing 🎯

Phishing thường = spam 1,000 người random với email “bạn trúng thưởng rồi.”

Spear phishing = có mục tiêu. Thằng này nhìn profile mình, thấy “developer”, rồi craft tin nhắn cá nhân hóa (Livepeer, remote, $20k). Phishing nhưng có ngắm.

2. Trojan Horse 🐴

Nhớ quân Hy Lạp giấu lính trong con ngựa gỗ làm “quà tặng” không?

Cái repo “Technical Assessment” này là Trojan. Nhìn như coding challenge bình thường. Thực ra chứa malware chờ execute lúc bạn chạy npm install.

Cheat sheet nhanh:

Thuật NgữNó Là GìTự Lây Không?
MalwareThuật ngữ chung cho software độc hại-
VirusMalware tự nhân bản✅ Có
TrojanMalware đội lốt software legit❌ Không, bạn chạy nó

Làm Sao Để Không Dính 🛡️

  1. Dùng sandbox. VM, laptop cũ, gì cũng được. Đừng bao giờ chạy code lạ trên máy chính.
  2. Đọc package.json trước. Mất 30 giây. Có thể cứu mạng bạn.
  3. Tin vào linh cảm. Nếu thấy sai sai, chắc là sai thật.
  4. Không có offer $20k nào chết chỉ vì bạn từ chối chạy cái repo Bitbucket lạ.

Cái Gì Thật Sự Cứu Mình

Không phải kỹ năng hacking elite gì đâu. Chỉ là:

  • 🧠 Paranoid ở mức độ lành mạnh
  • 💻 Laptop sandbox
  • ⏱️ 30 giây đọc dependencies trước khi chạy
  • 🤖 AI để decode cái đống obfuscated code
  • 🚶 Tỉnh táo trước mấy miếng mồi thơm quá mức

Nhớ nhé: Nếu nó ngon một cách bất thường, thì 99% là lừa đảo. Đừng có tham.

Được tạo với sự lười biếng 🦥
bởi một anh chàng bận rộn

Subscribe to My Newsletter