TL; ডিআর
একটি একক এনপিএম প্রকাশক, deadcode09284814বৈধটির বিরুদ্ধে একটি টাইপোস্কোয়াট প্রচারণা চালিয়েছে axios এবং chalk-template ২০২৬ সালের মে মাসের মাঝামাঝি থেকে প্যাকেজসমূহ।
অভিযানটি একটি প্রচলিত পরিচয়পত্র ও ওয়ালেট চোর হিসেবে শুরু হয়েছিল, যা ডেটা পাচার করে একটি সার্ভিও এইচটিটিপিএস টানেল.
On 2026-05-17, সঙ্গে axois-utils:1.0.9অপারেটরটি পেলোডটি পুরোপুরি পাল্টে দিয়েছে: একই ট্রিপল ইনস্টল-হুক স্কাফোল্ড, একই প্রকাশক, একই প্যাকেজের নাম।
কিন্তু ইনস্টল স্ক্রিপ্টটি এখন একটি ক্রস-প্ল্যাটফর্ম ডিডস বটনেট সদস্যে পরিণত হয়েছে।
পেলোডটি একটির সাথে কথা বলে localhost.run টানেল তৈরি করে এবং ফ্লাড কমান্ড গ্রহণ করে, যার ফলে আক্রান্ত পরিবেশগুলো একটি ডিডস-সক্ষম বটনেটের অংশে পরিণত হয়।
অপারেটর এমনকি পাঠিয়েছে C2 সার্ভার বাইনারি টারবলটির ভিতরে, ক্রেডেনশিয়াল চুরি থেকে সক্রিয় বটনেট পরিকাঠামো পর্যন্ত পরিস্থিতির স্পষ্ট অবনতি দেখা যাচ্ছে।
দুটি প্যাকেজ, চারটি সংস্করণ এখনও রেজিস্ট্রিতে সক্রিয় রয়েছে, এবং একজন অপারেটর এখন উভয় মডিউল সমান্তরালভাবে চালাচ্ছেন।
তীব্রতা: উচ্চ।
আক্রমণ: এটি কীভাবে কাজ করে
এই প্রচারণাটি ইচ্ছাকৃতভাবে একঘেয়ে একটি উপস্থাপনা কাঠামোর উপর নির্মিত: দুটি বানান ভুলের মিশ্রণযুক্ত প্যাকেজের নাম, যা প্রতি সপ্তাহে কোটি কোটি ডাউনলোড হওয়া প্যাকেজগুলো থেকে মাত্র একটি অক্ষর আলাদা।axios, চক-টেমপ্লেট), এবং ট্রিপল ইনস্টল hooks যা কার্যকরীকরণ নিশ্চিত করে। মজার বিষয় হলো কাঠামোটি কী। বহন করে এবং এই বিষয়টি যে, অপারেটর অন্য কিছু পরিবর্তন না করেই কার্গোটি পরিবর্তন করেছিল।
ভাগ করা মাচা
উভয় প্যাকেজের প্রতিটি প্রকাশিত সংস্করণ একই তিনটি জীবনচক্র ঘোষণা করে। hooks in package.json:
তিনটির অধীনেই পেলোড তালিকাভুক্ত করা hooks বাড়াবাড়ি — পোস্টইনস্টল একাই ডিফল্টে চলবে npm ইনস্টল করুনপছন্দটি গুরুত্বপূর্ণ: npm install –ignore-scripts স্ক্রিপ্টগুলি এড়িয়ে যায়, কিন্তু বেশ কিছু সাধারণ ওয়ার্কফ্লো (CI ক্যাশে পুনরুদ্ধার যা লাইফসাইকেল পুনরায় চালায়) এড়িয়ে যায়। hooks বাছাই করে, অথবা যে ডেভেলপাররা শুধুমাত্র নিরীক্ষা করে পোস্টইনস্টলএকটি ট্রিপল-রিডানড্যান্ট ডিক্লারেশনকে আক্রমণকারীর জন্য সবচেয়ে নিরাপদ উপায় করে তোলে।
খড়ি-টেম্পল একটি দ্বিতীয় প্রক্রিয়া যোগ করে: এটি ঘোষণা করে axois-utils:^1.0.7 রানটাইম হিসাবে বশ্যতাটাইপোস্কোয়াটেড ইনস্টল করা হচ্ছে চক-টেমপ্লেট ফলে এটি এর সহযোগী প্যাকেজ typosquat-কেও অন্তর্ভুক্ত করে, এবং উভয় পেলোডই চলে। প্যাকেজ দুটি একটি সমন্বিত জোড়া, কোনো স্বাধীন তালিকা নয়।
পর্যায় A — পরিচয়পত্র / ওয়ালেট চোর (২০২৬-০৫-১৫ → বর্তমান)
ফেজ A হলো মূল পেলোড। লোডারটি একটি ছোট পোস্টইনস্টল.জেএস যা একটি Serveo HTTPS রিভার্স-টানেলের দিকে নির্দেশ করে:
Serveo সাবডোমেইন গন্তব্য আইপি এনকোড করে (80.200.28.28হোস্টনেমের মধ্যেই সরাসরি — যা ঐ পরিষেবার জন্য একটি স্বীকৃত রীতি। অপারেটর অনভিজ্ঞ ডোমেইন ব্লক-লিস্ট এড়ানোর জন্য বিভিন্ন সংস্করণের মধ্যে র্যান্ডম সাবডোমেইন প্রিফিক্সটি পরিবর্তন করে, কিন্তু মূল আইপি কখনও স্থানান্তরিত হয় না।চক-টেমপ্লেট:১.০.১৯ ব্যবহৃত 8a3e818ea8f11186-80-200-28-28…১.০.১৬ / ১.০.১৯ / ১.০.২০ ব্যবহার করুন f04a273bd84c0622-….)
পোস্টইনস্টল.জেএস হাত বন্ধ করে দিন ফ্যান্টম.জেএস, একটি ৭,৬৬৭ লাইনের বান্ডেল করা “কালেক্টর” মডিউল। ফ্যান্টম.জেএস আয়োজকের জন্য হাঁটে:
SSH ব্যক্তিগত কী (~/.ssh/*) |
.npmrc বিষয়বস্তু এবং যেকোনো npm_* পরিবেশ টোকেন |
| AWS, GCP, এবং Azure ক্রেডেনশিয়াল ফাইল |
গিটহাব ব্যক্তিগত-অ্যাক্সেস-টোকেন রেজেক্স (ghp_*, gho_*, ghu_*, ghs_*) |
| বিটকয়েন, এক্সোডাস, ইলেক্ট্রাম, মোনেরো, লাইটকয়েন, ডোজকয়েন, জিক্যাশ, ড্যাশ-এর জন্য ক্রিপ্টো-ওয়ালেট সামগ্রী |
একটি পুনরাবৃত্তিমূলক .env* মাধ্যমে চলুন ~/projects, ~/dev, ~/code, ~/workspaceএবং ইনস্টল সিডব্লিউডি |
শেলের ইতিহাস এবং সম্পূর্ণ process.env |
বান্ডেলটি সার্ভিও টানেলে পোস্ট করা হয়েছে / সংগ্রহ করুনএখানে কোনো ধোঁয়াশা নেই, ভিএম-বিরোধী কোনো যুক্তি নেই, কোনো স্টেজিংও নেই — অপারেটরের মূল লক্ষ্য হলো পরিমাণ এবং গতি।
পর্যায় বি — ফ্যান্টমবট ডিডিওএস রিক্রুট (২০২৬-০৫-১৭, শুধুমাত্র অ্যাক্সোইস-ইউটিলস:১.০.৯ এর জন্য)
ফেজ B-তে phantom.js ও postinstall.js-কে distrube.js নামের একটিমাত্র ফাইল দিয়ে প্রতিস্থাপন করা হয় (বানান ভুলটি অপারেটরের)। package.json-এর ট্রিপল-হুক স্কাফোল্ডটি অপরিবর্তিত থাকে; প্যাকেজটি একই নাম, স্কোপ এবং ভার্সন-বাম্প প্যাটার্ন বজায় রাখে। বাইরে থেকে, axois-utils:1.0.9-কে 1.0.6-এর একটি ছোটখাটো ফলো-অন সংস্করণ বলে মনে হয়। কিন্তু ভেতরে এটি একটি ভিন্ন ম্যালওয়্যার পরিবার।
distrube.js একটি কনফিগারেশন ব্লক দিয়ে খোলে যা অপারেটরের নিজস্ব ব্র্যান্ডিংয়ের নাম উল্লেখ করে:
// 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')}`; |
মন্তব্যগুলো কিটটি চালনাকারী একজন ভবিষ্যৎ অপারেটরকে উদ্দেশ্য করে করা হয়েছে (“আপনার localhost.run HTTPS URL ব্যবহার করুন”)। এই বিষয়টি এবং বট ক্লায়েন্টের সাথে পরবর্তীতে যা পাঠানো হয়, তা থেকেই স্পষ্ট বোঝা যায় যে এটি শুধু একটি ভিকটিম পেলোড নয় — এটিই সেই কিট।
প্রবাহ:
- অধ্যবসায় প্রথমে চলে। স্ক্রিপ্টটি প্রতিটি অপারেটিং সিস্টেমের জন্য তিনটি ভিন্ন উপায়ে নিজেকে ইনস্টল করে (রেজিস্ট্রি)। চালান + স্টার্টআপ ফোল্ডার + schtasks উইন্ডোজে; ক্রনট্যাব + ফ্যান্টম-বট.সার্ভিস সিস্টেমডি ইউনিট + .bashrc/.zshrc যুক্ত করুন + /etc/rc.local লিনাক্সে; LaunchAgent com.phantom.bot.plist ম্যাকওএস-এ)। পার্সিস্টেন্স সার্ভিস নেম এবং লঞ্চএজেন্ট লেবেল উভয়ই ফ্যান্টম-বট / com.phantom.botযেখান থেকে প্রচারণার নামটিও এসেছে।
- সিস্টেম তথ্য বহির্গমন এটি একবার চলে — b94b6bcfa27554.lhr.life:443/collect-এ একটি ওয়ান-শট ফিঙ্গারপ্রিন্ট POST রিকোয়েস্ট পাঠায়, যাতে হোস্টনেম, প্ল্যাটফর্ম, আর্কিটেকচার, ইউজারনেম, সিপিইউ/র্যাম, নেটওয়ার্ক ইন্টারফেস, process.env, cwd, homedir, নোড ভার্সন এবং পাবলিক আইপি থাকে। এটি ফেজ A-এর চেয়ে অনেক কম আগ্রাসী: এতে কোনো SSH, ওয়ালেট বা .env রিকারশন নেই। বটটির কাজ হলো এনরোল করা, চুরি করা নয়।
- হৃদস্পন্দনের লুপ প্রতি ৩০ সেকেন্ডে b94b6bcfa27554.lhr.life:443/ ঠিকানায় একটি HTTPS POST অনুরোধ পাঠানো হয়। ইউজার-এজেন্ট হলো PhantomBot/1.0। TLS যাচাইকরণ স্পষ্টভাবে নিষ্ক্রিয় করা আছে (rejectUnauthorized: false)। C2 প্রতিক্রিয়াটি {type, target, port, duration, threads, method} ফর্ম্যাটের JSON হিসাবে পার্স করা হয় এবং প্রেরণ করা হয়।
- বন্যা অস্ত্রাগার ছয়টি কমান্ডের সাথে সংযুক্ত:
| কমান্ডের ধরণ | মডিউল | নোট |
|---|---|---|
| পিং | লাইভনেস উত্তর | বটটি নিজেকে শনাক্ত করে। |
| HTTP | HTTP ফ্লাড | স্তর-৭ অনুরোধের বন্যা |
| HTTPS দ্বারা | HTTPS ফ্লাড | http-এর মতোই, TLS-আবৃত |
| TCP | টিসিপি ফ্লাড | ৬৫ কেবি র্যান্ডম-পেলোড স্প্যাম |
| UDP | ইউডিপি বন্যা | ৬৫,৫০৭-বাইট ইউডিপি প্যাকেট |
| দ্রুত | HTTP/2 দ্রুত-রিসেট DoS | ২০২৩ CVE-2023-44487 কৌশল |
পাঁচটি বন্যা মডিউলই একটি গ্রহণ করে লক্ষ্য, বন্দর, স্থিতিকাল, এবং থ্রেড যুক্তি — বটটি একটি সাধারণ ভাড়া করা ফ্লাডার, যা কোনো নির্দিষ্ট শিকারকে লক্ষ্য করে তৈরি নয়। অপারেটরের শিকারের তালিকাটি C2-তে থাকে, প্যাকেজে নয়।
এখানে নতুন কী আছে — প্রেরিত C2 বাইনারি
ফেজ A একটি পরিচিত কাঠামো: ক্রেডেনশিয়াল চুরি, ইনস্টল হুক, ভেন্ডর-টানেলড C2। ফেজ B হলো এছাড়াও একটি পরিচিত আকৃতি — ডিডিওএস বটনেটগুলো বছরের পর বছর ধরে ক্ষতিকারক এনপিএম প্যাকেজগুলোর একটি অবিচ্ছেদ্য অংশ। অস্বাভাবিক ব্যাপার হলো যে অপারেটরটি এটি সরবরাহ করেছে সার্ভার সাইড npm tarball-এর ভিতরে থাকা কিটটির:
- c2 — একটি ৪-মেগাবাইটের কম্পাইল করা Go ELF বাইনারি
- সি২.গো — সেই বাইনারিটির ৪২৬-লাইনের গো সোর্স কোড
কোনো ইনস্টল হুক দ্বারা ফাইল দুটির কোনোটিই কল করা হয় না। এগুলো ভিকটিম পেলোডের অংশ নয়। এগুলো প্যাকেজ ডিরেক্টরিতে ঠিক সেভাবেই রয়েছে, যেভাবে একটি ডকুমেন্টেশন ফাইল থাকে। সবচেয়ে সম্ভাব্য ব্যাখ্যা হলো, অপারেটর ফাইল তালিকাটি পরিমার্জন না করেই তাদের ডেভেলপমেন্ট ওয়ার্কিং ট্রি npm-এ পুশ করেছে — যা একটি গুরুতর OpSec ত্রুটি — এবং এর ফলে যা পাঠানো হয়েছে তা হলো একটি সম্পূর্ণ দ্বি-পার্শ্বযুক্ত কিট: ভিকটিমের চালানো ক্লায়েন্ট এবং অপারেটরের চালানো সার্ভার।
গল্পের এই অংশটিই “টার্নকি বটনেট কিট” আখ্যাটিকে যৌক্তিকতা দেয়। যে কেউ ডাউনলোড করেছে অ্যাক্সোইস-ইউটিলস:১.০.৯ টেকডাউনের আগে তাদের কাছে শুধু ভুক্তভোগীর নমুনাই ছিল না, একটি সক্রিয় সি২ সার্ভারও ছিল।
মূল বিষয়, এক বাক্যে
একই প্রকাশক, একই প্যাকেজের নাম, একই ট্রিপল-হুক কাঠামো, একই “ফ্যান্টম” ব্র্যান্ডিং — কিন্তু পেলোডটি রাতারাতি নগদীকরণ মডেল বদলে দিয়েছে।: “পুনরায় বিক্রি করার মতো গোপনীয় তথ্য সংগ্রহ করা” থেকে “লিজ নেওয়ার মতো ফ্লাড ক্যাপাসিটি ভাড়া করা” পর্যন্ত। ইনস্টল-টাইমের যে TTP-গুলোর ওপর ডিফেন্ডারদের নজর রাখা উচিত, সেগুলো উভয় পর্যায়েই প্রায় অভিন্ন; ফেজ A-এর ওয়ালেট-পাথ স্ট্রিং বা এর সাথে সম্পর্কিত সিগনেচার-ভিত্তিক প্রতিরক্ষা ব্যবস্থা। ফ্যান্টম.জেএসএর ৭,৬৬৭-লাইনের কালেক্টরটি ফেজ বি পুরোপুরিই এড়িয়ে যেত।
| তারিখ (UTC) | ঘটনা |
|---|---|
| 2026-05-15 | প্রথম প্রকাশনা: axois-utils:1.0.4 (ল্যান টেস্ট বিল্ড, ডেভ রিগ-এ) 192.168.129.19) |
| 2026-05-15 | axois-utils:1.0.6 প্রকাশিত — ফেজ এ সি২ পরিবর্তন করা হয়েছে 80.200.28.28 সার্ভিও টানেলের মাধ্যমে; উৎসের মন্তব্য // Change to '80.200.28.28' for public ডেভ→প্রোড অদলবদল নিশ্চিত করে |
| 2026-05-16 | chalk-tempalte:1.0.14 এবং 1.0.16 প্রকাশিত — চেইনড লোডার ঘোষণা করছে axois-utils:^1.0.7 রানটাইম নির্ভরতা হিসাবে; Serveo সাবডোমেন ঘোরানো হয়েছে |
| 2026-05-16 | নিয়মিত এনপিএম স্ক্যানিংয়ের সময় ফেজ এ ক্যাম্পেইন শনাক্ত হয়েছে; ক্ষতিকর হিসেবে নিশ্চিত রায় প্রদান করা হয়েছে। |
| 2026-05-17 | axois-utils:1.0.9 প্রকাশিত — পেলোড পিভট: লোকালহোস্ট.রান টানেলের মাধ্যমে ফ্যান্টমবট ডিডিওএস রিক্রুট; অপারেটর-সাইড c2 বাইনারি এবং c2.go টারবলে পাঠানো উৎস |
| 2026-05-17 | chalk-tempalte:1.0.19 এবং 1.0.20 প্রকাশিত — এখনও ফেজ এ (স্টিলার); অপারেটর এখন উভয় মডিউল সমান্তরালভাবে চালাচ্ছে। |
| 2026-05-17 | নিয়মিত স্ক্যানিংয়ের সময় ফেজ বি-এর আবিষ্কার; রায় সকলের ক্ষেত্রে প্রযোজ্য 2026-05-17 সংস্করণ |
| (চলমান) | অপসারণের প্রতিবেদন প্রক্রিয়াধীন; এই প্রতিবেদন লেখার সময় পর্যন্ত প্রকাশিত চারটি প্যাকেজই রেজিস্ট্রি-তে উপলব্ধ রয়েছে। |
সমঝোতার সূচক
প্যাকেজ
| ইকোসিস্টেম | প্যাকেজ | সংস্করণ |
|---|---|---|
| npm | axois-utils (টাইপোস্কোয়াট অফ অ্যাক্সিওস) | 1.0.4, 1.0.6, 1.0.9 |
| npm | chalk-tempalte (চক-টেমপ্লেটের টাইপোস্কোয়াট) | 1.0.14, 1.0.16, 1.0.19, 1.0.20 |
লেখকের পরিচয়
| ক্ষেত্র | মূল্য |
|---|---|
| এনপিএম প্রকাশক | deadcode09284814 |
| প্রকাশকের ইমেল | phantomdeadcode@tutamail.com |
| SCM প্রতিপাদন | না |
কমান্ড-এন্ড-কন্ট্রোল
| ফেজ | শেষপ্রান্ত | পরিবহন |
|---|---|---|
| A | f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect | সার্ভিও এইচটিটিপিএস টানেল |
| A | 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect | সার্ভিও HTTPS টানেল (পূর্ববর্তী সংস্করণ) |
| A | 80.200.28.28:443/collect | অন্তর্নিহিত ভিপিএস এন্ডপয়েন্ট |
| B | b94b6bcfa27554.lhr.life:443/ | লোকালহোস্ট.রান HTTPS রিভার্স-টানেল |
ফাইল সারসংক্ষেপ (SHA-256)
| ফাইল | রয়েছে SHA-256 | নোট |
|---|---|---|
c2 (গো ইএলএফ, ৪ এমবি) | 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 | অপারেটর-সাইড C2 সার্ভার, ভিতরে পাঠানো হয়েছে axois-utils:1.0.9 |
c2.go (৪২৬ লাইন) | 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 | C2 বাইনারির জন্য সোর্সে যান। |
distrube.js | 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 | ফেজ বি বট ক্লায়েন্ট |
phantom.js (chalk-tempalte:1.0.19) | 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 | ফেজ এ পরিচয়পত্র / ওয়ালেট সংগ্রাহক |
phantom.js (chalk-tempalte:1.0.20) | d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 | ফেজ এ কালেক্টর (১.০.২০ সংস্করণ) |
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) | ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 | ফেজ এ লোডার, যা উভয় সংস্করণে বাইট-অভিন্ন। |
আরোপণ এবং প্রেরণা
আমরা এই প্রচারাভিযানটি অনুসরণ করি ফ্যান্টমবটঅপারেটরের নিজস্ব ব্র্যান্ডিং গ্রহণ করে ব্যবহারকারী-এজেন্ট: ফ্যান্টমবট/১.০ হৃদস্পন্দন হেডার, ফ্যান্টম-বট.সার্ভিস সিস্টেমডি ইউনিট, com.phantom.bot লঞ্চএজেন্ট লেবেল, এবং ফ্যান্টমডেডকোড@ ইমেইল হ্যান্ডেল। অপারেটর অন্তত চারটি আর্টিফ্যাক্ট জুড়ে এই নামটি ব্যবহারে ধারাবাহিকতা বজায় রেখেছেন।
সংকেত ক্যাটালগ
- প্রকাশক - ডেডকোড০৯২৮৪৮১৪ এনপিএম-এ। একক-হ্যান্ডেল অ্যাকাউন্ট, টুটামেইল ডিসপোজেবল ইমেল, না SCM যাচাইকরণ। এই প্রচারণার বাইরে কোনো পূর্ববর্তী প্রকাশনার ইতিহাস নেই।
- ব্র্যান্ডিং পুনঃব্যবহার — “ফ্যান্টম” শব্দটি পাবলিশারের ইমেইলে, ফেজ এ কালেক্টর ফাইলের নামে দেখা যায় (ফ্যান্টম.জেএসফেজ বি পারসিস্টেন্স সার্ভিসের নামে (ফ্যান্টম-বট.সার্ভিস), লঞ্চএজেন্ট লেবেলে (com.phantom.bot), এবং বট ইউজার-এজেন্ট-এ (ফ্যান্টমবট/১.০).
- পরিকাঠামো — একটি একক ভিপিএস-এ 80.200.28.28 সার্ভিও সাবডোমেন ঘূর্ণনের মাধ্যমে ফেজ A সামনে আসে; ফেজ B একটিতে চলে যায় লোকালহোস্ট.রান বিপরীত-টানেল (b94b6bcfa27554.lhr.lifeউভয় ভেন্ডরের পরিষেবা বিনামূল্যে এবং এর জন্য অপারেটরের পক্ষ থেকে শুধুমাত্র আউটবাউন্ড SSH প্রয়োজন, যা স্বল্প-বাজেট ও স্বল্প-অপারেশনাল-সেক সেটআপের সাথে সামঞ্জস্যপূর্ণ।
- কোড শৈলী — সম্পূর্ণ সাধারণ জাভাস্ক্রিপ্ট; কোনো দুর্বোধ্যতা, স্ট্রিং এনকোডিং বা অ্যান্টি-ভিএম চেক নেই। ভেরিয়েবলের নামগুলো বর্ণনামূলক (স্টিলসিস্টেমইনফো, executeCommand, httpFloodমন্তব্যসমূহ distrube.js সরাসরি একজন ভবিষ্যৎ অপারেটরকে উদ্দেশ্য করে বলা হয়েছে (“আপনার localhost.run HTTPS URL ব্যবহার করুন”), যা থেকে বোঝা যায় যে ফাইলটি কোনো একক আক্রমণকারীর ব্যবহারের জন্য নয়, বরং একটি কিট হিসেবে পুনঃবিতরণের উদ্দেশ্যে তৈরি করা হয়েছিল।
- OpSec স্লিপ — ফেজ বি টারবলটিতে বট ক্লায়েন্ট এবং অপারেটর-সাইডের C2 সার্ভার উভয়ই অন্তর্ভুক্ত থাকে (c2 এলফ + সি২.গো এটি এমন একজন অপারেটরের সাথে সামঞ্জস্যপূর্ণ যিনি ফাইল তালিকা নিরীক্ষা না করেই তাদের ওয়ার্কিং ট্রি npm-এ পুশ করেছেন। হয় অপারেটরটি অনভিজ্ঞ, অথবা কিটটি ত্রুটিপূর্ণ। অভিপ্রেত সর্বসমক্ষে বিতরণ করা হবে এবং C2 বাইনারিটি এই পণ্যের একটি অংশ।
- আত্ম-নিশ্চয়তা - অ্যাক্সোইস-ইউটিলস:১.০.৯ উৎস মন্তব্য ধারণ করে // সর্বসাধারণের জন্য '80.200.28.28'-এ পরিবর্তন করুন লাইন ১২-এ, ডেভ / স্টেজিং / প্রোডাকশন পর্যায়ক্রম নিশ্চিত করা হচ্ছে, যা অপারেটররা সাধারণত অস্বীকার করে থাকেন।
প্রেরণা
ফেজ A-এর মূল উদ্দেশ্য হলো সরাসরি আর্থিক চুরি: ক্রেডেনশিয়াল, ক্লাউড কী, গিটহাব টোকেন এবং ক্রিপ্টো ওয়ালেট—এই সবকিছুরই সহজে পুনঃবিক্রয়ের বাজার রয়েছে। ফেজ B-ও আর্থিক, তবে পরোক্ষ: ভাড়ায় ডিডিওএস (“বুটার”) পরিষেবাগুলো প্রতি মিনিটে ফ্লাড ক্যাপাসিটি ভাড়া নেয়, এবং এখানে পাঠানো বটের মতো বটগুলোই হলো সেই ইনভেন্টরি যার ওপর ভিত্তি করে ঐ পরিষেবাগুলো চলে। ৩০-সেকেন্ডের হার্টবিট, সাধারণ লক্ষ্য/বন্দর/স্থিতিকাল কমান্ড স্কিমা, এবং পাঁচ-প্রোটোকল ফ্লাড আর্সেনাল হল standard একজন বুটার অপারেটরের উৎপাদিত পণ্য।
উভয় মডিউল সমান্তরালভাবে চালানো — চক-টেমপ্লেট:১.০.১৯ এবং 1.0.20 চোরকে পাঠানো চালিয়ে যান যখন অ্যাক্সোইস-ইউটিলস:১.০.৯ বটটি চালু করা — ইঙ্গিত দেয় যে অপারেটর ‘ফেজ এ’ পরিত্যাগ না করে বরং আয়ের উৎস সুরক্ষিত করছেন। এই কৌশলগত পরিবর্তনটি হলো... যোগ, কোনও প্রতিস্থাপন নয়।
আমরা যা দাবি করছি না
আমরা এর পেছনের বাস্তব পরিচয় নিশ্চিত করতে পারিনি। ডেডকোড০৯২৮৪৮১৪ এবং আমরা এই অভিযানটিকে কোনো নির্দিষ্ট হুমকি সৃষ্টিকারী পক্ষ, গোষ্ঠী বা দেশের সাথে যুক্ত করছি না। বিভিন্ন আর্টিফ্যাক্ট জুড়ে “ফ্যান্টম” ব্র্যান্ডিংটি এতটাই সামঞ্জস্যপূর্ণ যে তা একজন একক অপারেটরের ইঙ্গিত দেয়, কিন্তু C2 বাইনারিটির কিট-স্টাইলে শিপিং এই সম্ভাবনাটি উন্মুক্ত রাখে যে ভবিষ্যতে সম্পর্কহীন হ্যান্ডেলগুলো থেকে আসা প্যাকেজগুলো একই কোড পুনরায় ব্যবহার করতে পারে।
প্রভাব, প্রবণতা এবং ডিফেন্ডারদের কী করা উচিত
প্রভাব
বৈধ স্কোয়াট লক্ষ্য axios এবং চক-টেমপ্লেট জাভাস্ক্রিপ্ট ইকোসিস্টেমে এগুলোর ওপর ব্যাপকভাবে নির্ভর করা হয়; axios একাই সর্বাধিক ডাউনলোড হওয়া শীর্ষ ত্রিশটি এনপিএম প্যাকেজের মধ্যে রয়েছে। টাইপোস্কোয়াট নামগুলো আসল নামগুলো থেকে মাত্র একটি কীস্ট্রোক দূরে (অ্যাক্সোইস ↔ axios, টেমপ্লেট ↔ টেমপ্লেট), এবং উভয়ই ভাষাগতভাবে সম্ভাব্য ভুল বানান।
প্যাকেজটি সরিয়ে ফেলার আগে আমরা ক্ষতিকর সংস্করণগুলোর নির্ভরযোগ্য ডাউনলোড পরিসংখ্যান সংগ্রহ করতে পারিনি — কারণ কোনো প্যাকেজ অপ্রকাশিত হয়ে গেলে npm প্রতি-সংস্করণের ডাউনলোড সংখ্যা সংরক্ষণ করে না, এবং npms.ioএই স্কেলে -স্টাইল প্রক্সিগুলো নয়েজি। যেকোনো সংস্থা যার লকফাইল একটি প্যাকেজে রিজলভ হয় যার নাম অ্যাক্সোইস-ইউটিলস or খড়ি-টেম্পল প্রকাশকের পক্ষ থেকে ডেডকোড০৯২৮৪৮১৪ আপোসকৃত হিসাবে বিবেচনা করা উচিত: উপস্থিত প্রতিটি পরিচয়পত্র ঘুরিয়ে দিন প্রক্রিয়া.এনভ প্রভাবিত হোস্টে, প্রতিটি অপারেটিং সিস্টেমের জন্য পার্সিস্টেন্স ভেক্টর নিরীক্ষা করুন (নিচে “ডিফেন্ডারদের কী করা উচিত” অংশটি দেখুন), এবং নির্ভরতাটি অপসারণ করুন।
উদীয়মান নিদর্শন
এই প্রচারণাটি সাম্প্রতিক বেশ কয়েকটি npm ঘটনায় আমরা যে পরিবর্তন দেখেছি তার একটি দৃষ্টান্ত: ইনস্টল-হুক স্ক্যাফোল্ডটি একটি টেকসই সম্পদ।পেলোডটি পরিবর্তনযোগ্যএকই প্রকাশক, একই প্যাকেজ, একই প্রি-ইনস্টল / ইনস্টল / পোস্টইনস্টল তিনগুণ, এবং এমনকি একই সংস্করণ-পরিবর্তনের ধারা — একমাত্র যে জিনিসটি পরিবর্তিত হয়েছিল অ্যাক্সোইস-ইউটিলস:১.০.৯ এবং অ্যাক্সোইস-ইউটিলস:১.০.৯ ফাইলটি কি ছিল hooks চালান। ফেজ A পেলোডের (ওয়ালেট-পাথ স্ট্রিং) উপর ভিত্তি করে স্বাক্ষর-ভিত্তিক সনাক্তকরণ। ফ্যান্টম.জেএসএর ৭,৬৬৭-লাইনের কালেক্টর, সার্ভিও সি২ হোস্ট) প্রথম তিনটি সংস্করণকে ফ্ল্যাগ করত এবং ফেজ বি পুরোপুরি এড়িয়ে যেত।
আমরা ট্র্যাক করেছি এমন অন্যান্য ২০২৬ ক্যাম্পেইনগুলোতেও একই প্যাটার্ন দেখা যাচ্ছে: একজন একক অপারেটর একটি স্থিতিশীল কাঠামো নিয়ে ক্রেডেনশিয়াল চুরি, পরীক্ষায় নকল করা ক্লায়েন্ট, টেলিগ্রাম-বট এক্সফিল এবং এখন ডিডস রিক্রুটমেন্টের মধ্যে অদলবদল করছে। যে ডিফেন্ডাররা পেলোড সিগনেচারের উপর নির্ভর করে, তারা প্রতিটি ক্যাম্পেইনের দ্বিতীয় রাউন্ডে হারতেই থাকবে।
এর ফলস্বরূপ যা দাঁড়ায় তা হলো ইনস্টল-টাইম TTP-গুলো আরও ভালো সংকেত দেয়।ট্রিপল ইনস্টল-হুক ডিক্লারেশন, ইনস্টল স্ক্রিপ্ট যা ইম্পোর্ট করে HTTPS দ্বারা or শিশু_প্রক্রিয়াব্যবহারকারীর স্টার্টআপ ফোল্ডারে লেখার স্ক্রিপ্ট ইনস্টল করুন, এবং বিনামূল্যের রিভার্স-টানেল পরিষেবাগুলিতে (যেমন সার্ভিও) হোস্টনেম রিজলভ করার স্ক্রিপ্ট ইনস্টল করুন। লোকালহোস্ট.রানngrok, cloudflared-এর মতো উপাদানগুলো বৈধ প্যাকেজগুলোতে বিরল, কিন্তু ক্ষতিকারক প্যাকেজগুলোতে এগুলো সচরাচর দেখা যায়।
ডিফেন্ডারদের কী করা উচিত
- লকফাইল অডিট. প্রতিটি অনুসন্ধান করুন প্যাকেজ-lock.json / সুতার লক / pnpm-lock.yaml আপনার সংস্থায় সঠিক স্ট্রিংগুলির জন্য অ্যাক্সোইস-ইউটিলস এবং খড়ি-টেম্পলযেকোনো মিলকে একটি আপস হিসেবে বিবেচনা করুন।
- গোপনীয়তা ঘোরান আক্রান্ত পোষকদেহে। ফেজ A-তে SSH, ক্লাউড, GitHub, npm, এবং ওয়ালেট ক্রেডেনশিয়ালসমূহ একসাথে সংগ্রহ করা হয়েছে। ধরে নিন, এখানে উপস্থিত প্রতিটি ক্রেডেনশিয়াল... প্রক্রিয়া.এনভ, ~ / .ssh, ~/.aws, ~/.npmrc, ~ / .কনফিগ, বা কোন .env* আক্রান্ত হোস্টের ফাইলটি উন্মুক্ত হয়ে গেছে।
- অধ্যবসায় দূর করুন (পর্যায় বি)। উইন্ডোজে, মুছে ফেলুন HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdate, অপসারণ %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\system-update.bat, এবং schtasks /delete /tn SystemUpdate /fলিনাক্সে, crontab -e এবং অপসারণ @রিবুট নোড …, systemctl –user disable –now phantom-bot.service তারপরে মুছুন ~/.config/systemd/user/phantom-bot.service, ঘষা .bashrc / .zshrc / /etc/rc.localম্যাকওএস-এ, launchctl unload ~/Library/LaunchAgents/com.phantom.bot.plist তারপর plist ফাইলটি মুছে ফেলুন।
- C2 হোস্টগুলোকে ব্লক করুন। IOC টেবিলে থাকা চারটি C2 এন্ডপয়েন্ট আপনার ইগ্রেস ব্লক লিস্টে যোগ করুন। *.serveousercontent.com এবং *.lhr.life আপনার পরিবেশে রিভার্স-টানেল পরিষেবার কোনো বৈধ ব্যবহার না থাকলে এটিকে সম্পূর্ণভাবে ব্লক করা যেতে পারে।
- ইনস্টল-টাইম TTP দ্বারা অনুসন্ধান করুন, পেলোড নয়। ইনভেন্টরি লকফাইল এন্ট্রিগুলো যাদের package.json ঘোষণা প্রি-ইনস্টল, ইনস্টল, এবং পোস্টইনস্টল সবকিছু একই স্ক্রিপ্টের দিকে নির্দেশ করছে। প্যাকেজের বয়স এবং প্রকাশকের যাচাইকরণ স্থিতির সাথে মিলিয়ে দেখুন। বৈধ প্যাকেজগুলিতে এই প্যাটার্নটি বিরল এবং এটিই ফ্যান্টমবট যে পুনঃব্যবহার করে তার সবচেয়ে নির্ভরযোগ্য সংকেত।
- C2 বাইনারির জন্য নিরীক্ষা। যে কেউ ডাউনলোড করেছে অ্যাক্সোইস-ইউটিলস:১.০.৯ অপারেটরের C2 সার্ভার আছে (c2 ELF, sha256 165fa92d…ডিস্কে। ক্যাশে এবং সিআই আর্টিফ্যাক্ট স্টোর স্ক্যান করুন। বাইনারিটি নিজে থেকে নিষ্ক্রিয় থাকে, কিন্তু একটি ওয়ার্কস্টেশনে এর উপস্থিতিই অকাট্য প্রমাণ যে প্যাকেজটি ইনস্টল করা হয়েছিল।
শেষ লাইন
একই অপারেটর, একই প্যাকেজ এবং একই ইনস্টল হুক ৪৮ ঘণ্টার মধ্যে সম্পূর্ণ ভিন্ন ধরনের হুমকি ছড়াতে পারে। পেলোডের দিকে নয়, বরং কাঠামোর দিকে নজর রাখুন।




