PhantomBot-ը վկայականի գողությունից մինչև բոտնետ

PhantomBot. Typosquat արշավ, որը վկայականների գողությունից վերածվեց պատրաստի բոտնետային հավաքածուի

TL. DR

Մեկ npm հրատարակիչ, deadcode09284814, վարել է տպագրական կեղծիքների արշավ օրինականության դեմ axios և chalk-template փաթեթներ 2026 թվականի մայիսի կեսերից։

Արշավը սկսվեց որպես ավանդական վկայականների և դրամապանակների գողություն՝ տվյալները արտահոսելով դեպի… Serveo HTTPS թունել.

On 2026-05-17Հետ axois-utils:1.0.9, օպերատորն ամբողջությամբ փոխեց օգտակար բեռը. նույն եռակի տեղադրման կեռիկային կառուցվածքը, նույն հրատարակիչը, նույն փաթեթի անունը։

Սակայն տեղադրման սկրիպտն այժմ խաչաձև հարթակային DDoS բոտնետի հավաքագրման գործիք է։

Բեռը խոսում է մի բանի մասին localhost.run թունել և ընդունում է ջրհեղեղի հրամաններ՝ վարակված միջավայրերը վերածելով DDoS-ունակ բոտնետի մի մասի։

օպերատորը նույնիսկ առաքեց C2 սերվերի երկուական ֆայլ tarball-ի ներսում, ինչը ցույց է տալիս տվյալների գողությունից մինչև ակտիվ բոտնետային ենթակառուցվածքի հստակ էսկալացիա։

Երկու փաթեթ, չորս տարբերակ դեռևս ակտիվ են գրանցամատյանում, և մեկ օպերատոր այժմ զուգահեռաբար գործարկում է երկու մոդուլները։

Լարվածություն՝ բարձր։

Վերնագիր ՄՕԿ Հրատարակչի deadcode09284814 ցանկացած axois-utils կամ chalk-tempalte տարբերակ

Հարձակումը. Ինչպես է այն գործում

Արշավը կառուցված է միտումնավոր ձանձրալի առաքման սխեմայի վրա. երկու տառասխալ փաթեթների անուններ, մեկ տառով տարբերվող փաթեթներից, որոնք ունեն շաբաթական հարյուր միլիոնավոր ներբեռնումներ (axios, կավիճի ձևանմուշ), և եռակի տեղադրում hooks որոնք երաշխավորում են կատարումը։ Հետաքրքիրն այն է, թե ինչ է կառամատույցը կրում է — և այն փաստը, որ օպերատորը փոխել է բեռը՝ առանց որևէ այլ բան փոխելու։

Համատեղ կառամատույց

Երկու փաթեթների յուրաքանչյուր հրապարակված տարբերակ հայտարարում է նույն երեք կյանքի ցիկլը hooks in package.json:

Բեռի ցուցակագրումը բոլոր երեքի ներքո hooks չափազանց է — հետինստալյացիա միայնակ կաշխատեր լռելյայն npm տեղադրելԸնտրությունը կարևոր է. npm install –ignore-scripts բաց է թողնում սկրիպտները, բայց մի քանի տարածված աշխատանքային հոսքեր (CI քեշի վերականգնումներ, որոնք վերագործարկում են կյանքի ցիկլը) hooks ընտրողաբար, կամ մշակողներ, որոնք միայն աուդիտ են անում հետինստալյացիա) եռակի ավելորդ հայտարարությունն ամենաապահով տարբերակն է հարձակվողի համար։

կավիճ-շաբլոն ավելացնում է երկրորդ մեխանիզմ՝ այն հայտարարում է axois-utils:^1.0.7 որպես գործարկման ժամանակ կախվածություն. Տիպոսքվատվածի տեղադրում կավիճի ձևանմուշ հետևաբար, ներառում է նաև single typosquat-ը, և երկու բեռներն էլ աշխատում են։ Երկու փաթեթներն էլ համակարգված զույգ են, այլ ոչ թե անկախ ցուցակներ։

A փուլ — հավատարմագրեր / դրամապանակի գող (2026-05-15 → մինչ օրս)

A փուլը սկզբնական օգտակար բեռն է։ Բեռնիչը կարճատև է։ հետինստալյացիա.js որը մատնացույց է անում Serveo HTTPS հակադարձ թունելին՝

Serveo ենթադոմենը կոդավորում է նպատակակետի IP հասցեն (80.200.28.28) անմիջապես հոսթի անվան մեջ՝ ճանաչելի կոնվենցիա այդ ծառայության համար։ Օպերատորը պատահական ենթադոմեյնի նախածանցը փոխում է տարբերակների միջև՝ խուսափելու համար պարզունակ դոմեյնի բլոկների ցուցակներից, բայց հիմքում ընկած IP-ն երբեք չի փոխվում։ (կավիճ-շաբլոններ՝ 1.0.14 սովոր 8a3e818ea8f11186-80-200-28-28…; 1.0.16 / 1.0.19 / 1.0.20 օգտագործում f04a273bd84c0622-….)

հետինստալյացիա.js ձեռքերը հեռու phantom.js, 7,667 տողանոց միացված «հավաքիչ» մոդուլ։ phantom.js տանտիրոջը քայլում է հետևյալի համար՝

SSH մասնավոր բանալիներ (~/.ssh/*)
.npmrc պարունակությունը և ցանկացած npm_* env տոկեններ
AWS, GCP և Azure հավատարմագրերի ֆայլեր
GitHub անձնական մուտքի նշանի կանոնավոր կոդ (ghp_*, gho_*, ghu_*, ghs_*)
Bitcoin, Exodus, Electrum, Monero, Litecoin, Dogecoin, Zcash, Dash կրիպտո-դրամապանակների արտեֆակտներ
Ռեկուրսիվ .env* անցնել ~/projects, ~/dev, ~/code, ~/workspace, և install cwd-ն
Shell-ի պատմությունները և ամբողջականը process.env

Փաթեթը ուղարկվում է Սերվեո թունել՝ / հավաքելՉկա որևէ խճճվածություն, հակա-VM տրամաբանություն, ոչ մի բեմականացում՝ օպերատորի խաղադրույքը ծավալի և արագության վրա է։

B փուլ — PhantomBot DDoS նորակոչիկ (2026-05-17, միայն axois-utils:1.0.9)

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-ը»): Դա, գումարած այն, ինչ հայտնվում է բոտ-հաճախորդի կողքին, այն է, որ սա պարզապես զոհի բեռ չէ, այլ հավաքածուն է։

Հոսքը՝

  1. Համառություն առաջինը գործարկվում է։ Սկրիպտը տեղադրվում է երեք տարբեր եղանակներով՝ յուրաքանչյուր օպերացիոն համակարգի համար (ռեգիստր Վազում + Գործարկման թղթապանակ + schtasks Windows-ի վրա; crontab + phantom-bot.service համակարգային միավոր + .bashrc/.zshrc ավելացնել + /etc/rc.local Linux-ի վրա; LaunchAgent com.phantom.bot.plist macOS-ում): Համառության ծառայության անունը և LaunchAgent պիտակը երկուսն էլ ուրվական-ռոբոտ / com.phantom.bot, որտեղից էլ ծագում է արշավի անվանումը։
  2. Համակարգի տեղեկատվության exfil աշխատում է մեկ անգամ՝ մեկանգամյա մատնահետքի POST-ով b94b6bcfa27554.lhr.life:443/collect-ին, որը պարունակում է hostname, platform, arch, username, CPU/RAM, network interfaces, process.env, cwd, homedir, node version և public IP: Սա շատ ավելի քիչ ագրեսիվ է, քան A փուլը. չկա SSH, չկա wallets, չկա .env ռեկուրսիա: Բոտի աշխատանքը գրանցումն է, այլ ոչ թե գողանալը:
  3. Սրտի զարկերի ցիկլ Յուրաքանչյուր 30 վայրկյանը մեկ բացում է HTTPS POST ֆայլ b94b6bcfa27554.lhr.life:443/ հասցեով: Օգտատիրոջ գործակալը PhantomBot/1.0 է: TLS ստուգումը հստակորեն անջատված է (rejectUnauthorized: false): C2 պատասխանը վերլուծվում է որպես {type, target, port, duration, threads, method} ձևի JSON և ուղարկվում:
  4. Ջրհեղեղի զինանոց միացված է վեց հրամանների՝
Հրամանի տեսակը Մոդուլներ Նշումներ
սուլոց Liveness-ի պատասխանը Բոտը ինքն իրեն նույնականացնում է
HTTP HTTP ջրհեղեղ 7-րդ մակարդակի հարցման հեղեղում
https HTTPS ջրհեղեղ Նույնը, ինչ http-ը, TLS-ով փաթեթավորված
tcp TCP ջրհեղեղ 65 ԿԲ պատահական բեռնման սպամ
udp UDP ջրհեղեղ 65,507 բայթանոց UDP փաթեթներ
արագ HTTP/2 արագ վերագործարկման DoS 2023 CVE-2023-44487 տեխնիկան

Բոլոր հինգ ջրհեղեղի մոդուլները ընդունում են թիրախ, նավահանգիստ, տեւողությունը, եւ Թեմաներ փաստարկ՝ բոտը վարձու flooder-ի ընդհանուր տեսակ է, որը նախատեսված չէ որևէ կոնկրետ զոհի համար։ Օպերատորի զոհերի ցուցակը գտնվում է C2-ում, այլ ոչ թե փաթեթում։

Ի՞նչ նորություն կա այստեղ՝ առաքվող C2 բինար համակարգը

A փուլը ծանոթ ձև ունի՝ վկայականի գողություն, տեղադրման կեռիկ, մատակարարի կողմից թունելավորված C2: B փուլը նույնպես ծանոթ ձև՝ DDoS բոտնետերերը տարիներ շարունակ վնասակար npm փաթեթների մշտական ​​​​բնակիչ են եղել։ Անսովորն այն է, որ օպերատորն է ուղարկել սերվերի կողմը npm tarball-ի ներսում գտնվող հավաքածուի մասին՝

  • c2 — 4 մեգաբայթանոց կոմպիլյացված Go ELF երկուական ֆայլ
  • c2.go — այդ բինար ֆայլի 426 տողանոց Go աղբյուրը

Ոչ մի ֆայլ չի կանչվում որևէ տեղադրման կեռիկի կողմից։ Դրանք զոհի բեռի մաս չեն կազմում։ Դրանք գտնվում են փաթեթների գրացուցակում այնպես, ինչպես փաստաթղթերի ֆայլը։ Ամենահավանական ընթերցումն այն է, որ օպերատորը իր մշակման աշխատանքային ծառը տեղափոխել է npm՝ առանց ֆայլերի ցանկը կազմելու (իրական OpSec սլիպ), և այն, ինչ ուղարկվել է, ամբողջական երկկողմանի հավաքածուն է. զոհի կողմից գործարկվող հաճախորդը և օպերատորի կողմից գործարկվող սերվերը։

Սա պատմության այն մասն է, որը արդարացնում է «պատրաստի բոտնետային հավաքածուի» ձևակերպումը։ Ամեն ոք, ով ներբեռնել է axois-utils:1.0.9 Ջնջումից առաջ ոչ միայն զոհի նմուշ կա, այլև գործող C2 սերվեր։

Շրջադարձը՝ մեկ նախադասությամբ

Նույն հրատարակիչը, նույն փաթեթների անունները, նույն եռակի կեռիկով կառուցվածքը, նույն «ուրվական» ապրանքանիշը, բայց բեռնափոխադրումը մեկ գիշերվա ընթացքում փոխեց դրամայնացման մոդելը«բերքի գաղտնիքներից, որոնք կարող եմ վերավաճառել» մինչև «վարձակալել ջրհեղեղի հզորություն, որը կարող եմ վարձակալել»։ Պաշտպանները պետք է հետևեն տեղադրման ժամանակի TTP-ներին, որոնք գրեթե նույնական են երկու փուլերում էլ. ստորագրության վրա հիմնված պաշտպանություններ, որոնք կապված են A փուլի դրամապանակի ուղու տողերի հետ կամ phantom.js-ի 7,667 տողանոց հավաքորդը լիովին բաց կթողներ B փուլը։

Ամսաթիվ (UTC) իրադարձություն
2026-05-15 Առաջին հրապարակումը՝ axois-utils:1.0.4 (LAN թեստային կառուցվածք, մշակողների համար նախատեսված համակարգ 192.168.129.19)
2026-05-15 axois-utils:1.0.6 հրապարակված — A փուլ C2-ը փոխարինվեց 80.200.28.28 Սերվեո թունելով; աղբյուրի մեկնաբանությունը // Change to '80.200.28.28' for public հաստատում է dev → prod փոխարինումը
2026-05-16 chalk-tempalte:1.0.14 և 1.0.16 հրապարակված՝ շղթայված բեռնիչը հայտարարում է axois-utils:^1.0.7 որպես կատարման ժամանակի կախվածություն; Serveo ենթատիրույթը պտտվեց
2026-05-16 A փուլի արշավը հայտնաբերվել է npm սկանավորման ընթացքում։ Կիրառվել են հաստատված չարամիտ դատավճիռներ։
2026-05-17 axois-utils:1.0.9 հրապարակված — բեռի կենտրոն. PhantomBot DDoS հավաքագրում localhost.run թունելի միջոցով; օպերատորի կողմից c2 երկուական և c2.go աղբյուրը ուղարկվել է tarball-ում
2026-05-17 chalk-tempalte:1.0.19 և 1.0.20 հրապարակված՝ դեռևս A փուլ (գողացող); օպերատորն այժմ զուգահեռաբար աշխատեցնում է երկու մոդուլները
2026-05-17 B փուլի հայտնաբերումը սովորական սկանավորման ընթացքում. դատավճիռները կիրառվում են բոլորի համար 2026-05-17 տարբերակները
(շարունակական) Հեռացման մասին հաղորդագրությունները սպասվում են. բոլոր չորս հրապարակված փաթեթները գրառման պահին մնում են գրանցամատյանում հասանելի։

Փոխզիջման ցուցանիշներ

Փաթեթներ

էկոհամակարգը Փաթեթ Versions
npm axois-utils (axios-ի typosquat) 1.0.4, 1.0.6, 1.0.9
npm chalk-tempalte (կավիճ-շաբլոնի typosquat) 1.0.14, 1.0.16, 1.0.19, 1.0.20

Հեղինակի ինքնությունը

Դաշտ Արժեք
npm հրատարակիչ deadcode09284814
Հրատարակչի էլ. փոստը phantomdeadcode@tutamail.com
SCM ստուգում ոչ մեկը

Հրաման և կառավարում

Փուլ Վերջնակետ տրանսպորտային
A f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect Serveo HTTPS թունել
A 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect Serveo HTTPS թունել (ավելի վաղ տարբերակ)
A 80.200.28.28:443/collect Հիմքում ընկած VPS վերջնակետ
B b94b6bcfa27554.lhr.life:443/ localhost.run HTTPS հակադարձ թունել

Ֆայլերի ամփոփագրեր (SHA-256)

Ֆայլ ՊԱԳ - 256 Նշումներ
c2 (Գնալ ELF, 4 ՄԲ) 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 Օպերատորի կողմից C2 սերվեր, առաքվում է ներսում axois-utils:1.0.9
c2.go (426 տող) 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 Գնալ C2 բինար ֆայլի աղբյուրի վրա
distrube.js 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 B փուլի բոտի հաճախորդ
phantom.js (chalk-tempalte:1.0.19) 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 A փուլի որակավորում / դրամապանակի հավաքորդ
phantom.js (chalk-tempalte:1.0.20) d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 A փուլի կոլեկտոր (1.0.20 տարբերակ)
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 A փուլի բեռնիչ, բայթերի նույնական երկու տարբերակներում էլ

Վերագրում և մոտիվացիա

Մենք հետևում ենք այս արշավին որպես PhantomBot, օպերատորի սեփական ապրանքանիշը վերցնելով Օգտատիրոջ գործակալ՝ PhantomBot/1.0 սրտի բաբախյունի վերնագիր, the phantom-bot.service համակարգված միավոր, com.phantom.bot LaunchAgent պիտակը և phantomdeadcode@ էլ. փոստի հասցե։ Օպերատորը հետևողական է այս անվանման հարցում առնվազն չորս արտեֆակտների դեպքում։

Սիգնալների կատալոգ

  • Հրատարակիչ - մեռած կոդ 09284814 npm-ում։ Միակողմանի հաշիվ, Tutamail միանգամյա օգտագործման էլ. փոստ, ոչ SCM ստուգում: Այս արշավից հետո նախորդ հրապարակումների պատմություն չկա:
  • Բրենդինգի վերօգտագործում — «phantom»-ը հայտնվում է հրատարակչի էլեկտրոնային նամակում, A փուլի հավաքորդի ֆայլի անվան մեջ (phantom.js), B փուլի կայունության ծառայության անվան մեջ (phantom-bot.service), LaunchAgent պիտակում (com.phantom.bot), և bot User-Agent-ում (PhantomBot/1.0).
  • Ենթակառուցվածքներ — Մեկ VPS հասցեով 80.200.28.28 A փուլը առջևում է Serveo ենթատիրույթի ռոտացիայի միջոցով. B փուլը տեղափոխվում է a localhost.run հակադարձ թունել (b94b6bcfa27554.lhr.life)։ Երկու մատակարարների ծառայություններն էլ անվճար են և պահանջում են միայն արտագնա SSH օպերատորի կողմից, ինչը համապատասխանում է ցածր բյուջեով և ցածր OpSec պահանջող կարգավորումներին։
  • Կոդի ոճը — Պարզ JavaScript ամբողջ տարածքում. առանց խճճվածքի, առանց տողերի կոդավորման, առանց հակավիրուսային ստուգումների։ Փոփոխականների անունները նկարագրական են (գողանալ համակարգի տեղեկատվություն, կատարելՀրաման, httpFloodՄեկնաբանություններ distrube.js ուղղակիորեն դիմել ապագա օպերատորին («Օգտագործեք ձեր localhost.run HTTPS URL-ը»), ինչը ենթադրում է, որ ֆայլը նախատեսված էր վերաբաշխվելու որպես հավաքածու, այլ ոչ թե մեկ հարձակվողի կողմից օգտագործվելու համար։
  • OpSec-ի կտրոն — B փուլի tarball-ը ներառում է և՛ բոտ-հաճախորդը, և՛ օպերատորի կողմից C2 սերվերը (c2 Էլֆ + c2.go աղբյուր): Սա համապատասխանում է օպերատորի հետ, ով իր աշխատանքային ծառը տեղափոխել է npm՝ առանց ֆայլերի ցանկը աուդիտի ենթարկելու: Կամ օպերատորը անփորձ է, կամ հավաքածուն նշանակում հրապարակայնորեն տարածվելու համար, և C2 բինար ֆայլը արտադրանքի մի մասն է։
  • Ինքնահաստատում - axois-utils:1.0.4 պարունակում է աղբյուրի մեկնաբանությունը // Հանրայինի համար փոխեք «80.200.28.28»-ի 12-րդ տողում, որը հաստատում է մշակման / փուլավորման / արտադրության առաջընթացը, որը օպերատորները սովորաբար հերքում են։

Մոտիվացիա

Ա փուլի բեռը ուղղակի ֆինանսական գողություն է. մուտքային տվյալները, ամպային բանալիները, GitHub տոկենները և կրիպտո դրամապանակները՝ բոլորը, ունեն հեղուկ վերավաճառքի շուկաներ: Բ փուլը նույնպես ֆինանսական է, բայց անուղղակի. DDoS-ի վարձույթով («booter») ծառայությունները րոպե առ րոպե վարձակալում են ջրհեղեղի հզորություն, իսկ այստեղ ներկայացվածի նման բոտերը այն պաշարներն են, որոնց վրա աշխատում են այդ ծառայությունները: 30 վայրկյան տևողությամբ սրտի բաբախյունը, ընդհանուր թիրախ/նավահանգիստ/տեւողությունը հրամանի սխեման և հինգ արձանագրություններից բաղկացած ջրհեղեղի զինանոցը standard բեռնիչ օպերատորի արտադրանք։

Երկու մոդուլների զուգահեռ աշխատեցում — կավիճ-շաբլոններ՝ 1.0.19 և 1.0.20 շարունակել գողացողին տեղափոխել, մինչդեռ axois-utils:1.0.9 բոտի առաքումը ենթադրում է, որ օպերատորը ապահովագրում է եկամտի հոսքերը, այլ ոչ թե հրաժարվում է A փուլից: Շրջադարձը ժամանակը, ոչ թե փոխարինող։

Ինչը մենք չենք պնդում

Մենք չկարողացանք հաստատել իրական ինքնությունը, որը կանգնած է դրա հետևում։ մեռած կոդ 09284814 բռնակ, և մենք այս արշավը չենք վերագրում որևէ անվանական սպառնալիքի գործողի, խմբի կամ երկրի: «Ֆանտոմ» ապրանքանիշը բավականին հետևողական է բոլոր արտեֆակտների մեջ՝ մեկ օպերատոր ենթադրելու համար, բայց C2 բինար ֆայլի հավաքածուի ոճով առաքումը բաց է թողնում այն ​​​​հնարավորությունը, որ ապագա փաթեթները կապ չունեցող բռնակներից կրկին կօգտագործեն նույն կոդը:

Ազդեցություն, միտումներ և ինչ պետք է անեն պաշտպանները

հարված

Օրինական զավթողական թիրախները axios և կավիճի ձևանմուշ լայնորեն կախված են JavaScript էկոհամակարգից։ axios մենակ երեսուն ամենաշատ ներբեռնված npm փաթեթների շարքում է։ typosquat անունները մեկ ստեղնի հարվածով հեռու են իրականներից (աքսոիսaxios, շաբլոնԿաղապար), և երկուսն էլ լեզվական առումով հավանական ուղղագրական սխալներ են։

Մենք չկարողացանք ստանալ վնասակար տարբերակների հուսալի ներբեռնման վիճակագրություն՝ հեռացումից առաջ. npm-ը չի պահպանում յուրաքանչյուր տարբերակի ներբեռնումների քանակը փաթեթի հրապարակումը չեղարկելուց հետո, և npms.io-ոճի պրոքսիները աղմկոտ են այս մասշտաբով։ Ցանկացած կազմակերպություն, որի կողպված ֆայլը լուծվում է որպես անունով փաթեթ։ աքսոիս-ուտիլս or կավիճ-շաբլոն հրատարակչից մեռած կոդ 09284814 պետք է դիտարկվի որպես խախտված. փոխեք առկա յուրաքանչյուր լիազորագիր process.env ազդակիր հոսթի վրա, աուդիտի ենթարկեք համառության վեկտորները յուրաքանչյուր օպերացիոն համակարգի համար (տե՛ս ստորև «Ինչ պետք է անեն պաշտպանները») և հեռացրեք կախվածությունը։

Զարգացող օրինաչափություններ

Այս արշավը օրինակ է այն տեղաշարժի, որը մենք տեսել ենք վերջին մի քանի npm միջադեպերում. տեղադրման կեռիկով կառամատույցը դիմացկուն ակտիվ է; օգտակար բեռը փոխարինելի էՆույն հրատարակիչը, նույն փաթեթը, նույնը նախնական տեղադրում / տեղադրել / հետինստալյացիա եռակի, և նույնիսկ նույն տարբերակի բումային ռիթմը՝ միակ բանը, որ փոխվեց axois-utils:1.0.6 և axois-utils:1.0.9 ֆայլն էր hooks գործարկել։ Ստորագրության վրա հիմնված հայտնաբերում, որը բանալիավորված է A փուլի բեռի համար (դրամապանակի ուղու տողեր, phantom.js-ի 7,667 տողանոց հավաքորդը՝ Serveo C2 հոսթը), կհայտարարեր առաջին երեք տարբերակների մասին և ամբողջությամբ կբաց թողներ B փուլը։

Նույն օրինաչափությունը տեսանելի է նաև մեր կողմից հետևած մյուս 2026 թվականի արշավներում. մեկ օպերատոր՝ կայուն կառուցվածքով, որը փոխում է տվյալները գողանալու, քննությունների խաբեությամբ զբաղվող հաճախորդների, Telegram-bot exfil-ի և այժմ DDoS հավաքագրման միջև։ Պաշտպանները, որոնք հույսը դնում են բեռնվածության ստորագրությունների վրա, կշարունակեն պարտվել յուրաքանչյուր արշավի երկրորդ փուլում։

Հետևանքն այն է, որ տեղադրման ժամանակի TTP-ները ավելի լավ ազդանշան ենԵռակի տեղադրման կեռիկի հայտարարագրեր, ներմուծող տեղադրման սկրիպտներ https or երեխա_գործընթաց, տեղադրել սկրիպտներ, որոնք գրում են օգտատիրոջ գործարկման թղթապանակներում, և տեղադրել սկրիպտներ, որոնք լուծում են հոսթ անունները անվճար հակադարձ թունելային ծառայություններում (Serveo, localhost.run, ngrok, Cloudflared) բոլորն էլ հազվադեպ են հանդիպում օրինական փաթեթներում և տարածված են վնասակար փաթեթների մոտ։

Ինչ պետք է անեն պաշտպանները

  • Lockfile աուդիտ. Որոնել ամեն package-lock.json / մանվածք.կողպեք / pnpm-lock.yaml ձեր կազմակերպությունում ճշգրիտ տողերի համար աքսոիս-ուտիլս և կավիճ-շաբլոն. Ցանկացած համընկնում վերաբերվեք որպես փոխզիջման։
  • Գաղտնիքների պտտում ազդակիր հոսթերի վրա։ Ա փուլի SSH, ամպային, GitHub, npm և դրամապանակի մեծածախ հավաքագրման տվյալներ։ Ենթադրեք բոլոր առկա տվյալները։ process.env, / .սշ, ~/.aws, ~/.npmrc, ~/.config, կամ որևէ այլ .env* տուժած հոսթի վրա գտնվող ֆայլը բացահայտված է։
  • Հեռացրեք համառությունը (B փուլ): Windows-ում ջնջել HKCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemUpdate, հեռացնել %APPDATA%\Microsoft\Windows\Սկսել ցանկ\Ծրագրեր\Սկսել\system-update.bat, եւ schtasks /delete /tn Համակարգի թարմացում /fLinux-ում, crontab -e և հեռացնել @reboot հանգույց …, systemctl –օգտատիրոջ անջատում –այժմ phantom-bot.service ապա ջնջել ~/.config/systemd/user/phantom-bot.service, մացառ .bashrc / .zshrc / /etc/rc.local. macOS-ի վրա, launchctl unload ~/Library/LaunchAgents/com.phantom.bot.plist ապա ջնջեք ցանկը։
  • Արգելափակել C2 հոսթերը։ IOC աղյուսակի չորս C2 վերջնակետերը ավելացրեք ձեր ելքի արգելափակված ցանկին։ *.serveousercontent.com և *.lhr.life կարող է մեծածախ արգելափակվել, եթե ձեր միջավայրը չունի հետադարձ թունելային ծառայությունների օրինական օգտագործում։
  • Որոնում տեղադրման ժամանակի TTP-ով, ոչ թե օգտակար բեռ։ Գույքագրման կողպեքի ֆայլերի գրառումներ, որոնց package.json հայտարարված նախնական տեղադրում, տեղադրել, եւ հետինստալյացիա բոլորը նույն սկրիպտին են մատնացույց անում։ Համեմատեք փաթեթի տարիքի և հրատարակչի ստուգման կարգավիճակի հետ։ Այս օրինաչափությունը հազվադեպ է հանդիպում օրինական փաթեթներում և PhantomBot-ի կողմից վերօգտագործվող ամենահուսալի ազդանշանն է։
  • C2 բինար սկավառակի աուդիտ։ Ամեն ոք, ով ներբեռնել է axois-utils:1.0.9 ունի օպերատորի C2 սերվերը (c2 ELF, sha256 165fa92d…) սկավառակի վրա։ Սկանավորեք քեշերը և CI արտեֆակտների պահեստները։ Երկուական ֆայլը ինքնուրույն անգործուն է, բայց դրա ներկայությունը աշխատանքային կայանում միանշանակ ապացույց է, որ փաթեթը տեղադրվել է։

Վերջնական գիծ

Նույն օպերատորը, նույն փաթեթը և նույն տեղադրման գործիքը կարող են 48 ժամվա ընթացքում ներկայացնել բոլորովին այլ սպառնալիքներ: Ուշադրություն դարձրեք կառուցվածքին, այլ ոչ թե օգտակար բեռին:

sca-tools-software-composition-analysis-tools
Առաջնահերթություն տվեք, շտկեք և պաշտպանեք ձեր ծրագրային ռիսկերը
Ստացեք ձեր անվճար հաշիվը։
Ոչ մի վարկային քարտ չի պահանջվում:

Ապահովեք ձեր ծրագրային ապահովման մշակումը և մատակարարումը

Xygeni Product Suite-ի հետ