TL; ड
एकल npm प्रकाशक, deadcode09284814, ले वैध विरुद्ध टाइपोस्क्वाट अभियान चलाएको छ axios र chalk-template २०२६ को मध्य मे देखि प्याकेजहरू।
यो अभियान परम्परागत प्रमाणपत्र र वालेट चोर्ने व्यक्तिको रूपमा सुरु भएको थियो, जसले डेटा चोरेर एक सर्भियो HTTPS टनेल.
On 2026-05-17, संग axois-utils:1.0.9, अपरेटरले पेलोड पूर्ण रूपमा स्वैप गर्यो: उही ट्रिपल इन्स्टल-हुक स्क्याफोल्ड, उही प्रकाशक, उही प्याकेज नाम।
तर स्थापना स्क्रिप्ट अब क्रस-प्लेटफर्म DDoS बोटनेट भर्ती हो।
पेलोडले a सँग बोल्छ localhost.run टनेल बनाउँछ र बाढी आदेशहरू स्वीकार गर्छ, संक्रमित वातावरणलाई DDoS-सक्षम बोटनेटको भागमा परिणत गर्छ।
अपरेटरले पठायो पनि C2 सर्भर बाइनरी टार्बल भित्र, प्रमाण चोरीबाट सक्रिय बोटनेट पूर्वाधारमा स्पष्ट वृद्धि देखाउँदै।
दुई प्याकेजहरू, रजिस्ट्रीमा अझै सक्रिय चार संस्करणहरू, र एउटा अपरेटरले अहिले दुवै मोड्युलहरू समानान्तर रूपमा चलाउँदैछ।
गम्भीरता: उच्च।
आक्रमण: यो कसरी काम गर्छ
यो अभियान जानाजानी बोरिंग डेलिभरी स्क्याफोल्डमा निर्मित छ: दुई टाइपोस्क्वाट प्याकेज नामहरू, लाखौं साप्ताहिक डाउनलोडहरू भएका प्याकेजहरूबाट एक अक्षर टाढा (अक्षहरू, चक-टेम्प्लेट), र ट्रिपल स्थापना hooks जसले कार्यान्वयनको ग्यारेन्टी दिन्छ। रोचक कुरा के हो भने मचान के हो बोक्छ — र अपरेटरले अरू केही परिवर्तन नगरी कार्गो परिवर्तन गरेको तथ्य।
साझा मचान
दुबै प्याकेजहरूको प्रत्येक प्रकाशित संस्करणले एउटै तीन जीवनचक्र घोषणा गर्दछ। hooks in package.json:
तीनवटै अन्तर्गत पेलोड सूचीबद्ध गर्दै hooks अति छ - स्थापना पछि एक्लै पूर्वनिर्धारित रूपमा चल्नेछ npm स्थापना। छनौटको महत्व हुन्छ: npm स्थापना गर्नुहोस् - बेवास्ता-स्क्रिप्टहरू स्क्रिप्टहरू छोड्छ, तर धेरै सामान्य कार्यप्रवाहहरू (CI क्यासले त्यो पुन: चल्ने जीवनचक्र पुनर्स्थापित गर्दछ) hooks छनौट रूपमा, वा विकासकर्ताहरू जसले केवल लेखा परीक्षण गर्छन् स्थापना पछि) आक्रमणकारीको लागि सबैभन्दा सुरक्षित शर्त ट्रिपल-रिडन्डन्ट घोषणा गर्नुहोस्।
चक-टेम्पाल्टे दोस्रो संयन्त्र थप्छ: यसले घोषणा गर्छ एक्सोइस-उपयोगिताहरू:^१.०.७ रनटाइमको रूपमा निर्भरता. टाइपोस्क्वाटेड स्थापना गर्दै चक-टेम्प्लेट त्यसैले सिबलिङ टाइपोस्क्वाटलाई पनि तान्छ, र दुवै पेलोडहरू चल्छन्। दुई प्याकेजहरू एक समन्वित जोडी हुन्, स्वतन्त्र सूचीहरू होइनन्।
चरण A — प्रमाणपत्र / वालेट चोर्ने व्यक्ति (२०२६-०५-१५ → हाल)
चरण A मूल पेलोड हो। लोडर छोटो छ पोस्टइन्स्टल.जेएस जुन Serveo HTTPS रिभर्स-टनेलमा औंल्याउँछ:
सर्भियो सबडोमेनले गन्तव्य आईपीलाई एन्कोड गर्दछ (80.200.28.28) सिधै होस्टनाममा — त्यो सेवाको लागि एक पहिचानयोग्य कन्भेन्सन। अपरेटरले भोली डोमेन ब्लकलिस्टहरूबाट बच्न संस्करणहरू बीच अनियमित सबडोमेन उपसर्ग घुमाउँछ, तर अन्तर्निहित IP कहिल्यै सर्दैन। (चक-टेम्पाल्ट:१.०.१४ प्रयोग 8a3e818ea8f11186-80-200-28-28…; १.०.१६ / १.०.१९ / १.०.२० प्रयोग f04a273bd84c0622-….)
पोस्टइन्स्टल.जेएस हात छोड्नुहोस् फ्यान्टम.जेएस, ७,६६७-लाइन बन्डल गरिएको "कलेक्टर" मोड्युल। फ्यान्टम.जेएस होस्टलाई निम्नको लागि हिँडाउँछ:
SSH निजी कुञ्जीहरू (~/.ssh/*) |
.npmrc सामग्री र कुनै पनि npm_* env टोकनहरू |
| AWS, GCP, र Azure प्रमाणपत्र फाइलहरू |
GitHub व्यक्तिगत-पहुँच-टोकन रेजेक्स (ghp_*, gho_*, ghu_*, ghs_*) |
| बिटकॉइन, एक्सोडस, इलेक्ट्रम, मोनेरो, लाइटकोइन, डोगेकोइन, जेडक्यास, ड्यासका लागि क्रिप्टो-वालेट कलाकृतिहरू |
पुनरावर्ती .env* को माध्यम बाट हिंड्नुहोस् ~/projects, ~/dev, ~/code, ~/workspace, र cwd स्थापना गर्नुहोस् |
शेल इतिहास र पूर्ण process.env |
बन्डललाई सर्भियो टनेलमा पोस्ट गरिएको छ / सङ्कलन। त्यहाँ कुनै अस्पष्टता छैन, कुनै एन्टी-VM तर्क छैन, कुनै स्टेजिङ छैन — अपरेटरको बाजी भोल्युम र गतिमा छ।
चरण B — फ्यान्टमबोट DDoS भर्ती (२०२६-०५-१७, axois-utils: १.०.९ मात्र)
चरण B ले phantom.js + postinstall.js लाई distrube.js नामक एकल फाइलले प्रतिस्थापन गर्दछ (टाइपो अपरेटरको हो)। package.json मा ट्रिपल-हुक स्क्याफोल्ड अपरिवर्तित छ; प्याकेजले उही नाम, स्कोप, र संस्करण-बम्प ढाँचा राख्छ। बाहिरबाट, axois-utils:1.0.9 १.०.६ मा सानो फलो-अन जस्तो देखिन्छ। भित्र, यो एक फरक मालवेयर परिवार हो।
डिस्ट्रुब.जेएस अपरेटरको आफ्नै ब्रान्डिङलाई नाम दिने कन्फिगरेसन ब्लकसँग खुल्छ:
// 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 प्रयोग गर्नुहोस्")। त्यो, साथै बट क्लाइन्टको छेउमा पठाइने कुराले यो केवल पीडित पेलोड मात्र होइन भन्ने संकेत गर्छ - यो किट हो।
प्रवाह:
- दृढता पहिले चल्छ। स्क्रिप्टले प्रति OS तीन फरक तरिकाले आफूलाई स्थापना गर्छ (रजिस्ट्री चलाउनुहोस् + स्टार्टअप फोल्डर + schtasks विन्डोजमा; क्रोन्ट्याब + phantom-bot.service का थप वस्तुहरू प्रणालीगत एकाइ + bashrc/.zshrc थप्नुहोस् + /आदि/rc.स्थानीय लिनक्समा; लन्चएजेन्ट com.phantom.bot.plist macOS मा)। पर्सिस्टन्स सेवा नाम र LaunchAgent लेबल दुवै हुन् फ्यान्टम-बोट / com.phantom.bot मा, जहाँबाट अभियानको नाम पनि आउँछ।
- प्रणाली जानकारी एक्सफिल एक पटक चल्छ — b94b6bcfa27554.lhr.life:443/collect मा एक-शट फिंगरप्रिन्ट POST जसमा होस्टनाम, प्लेटफर्म, आर्च, प्रयोगकर्ता नाम, CPU/RAM, नेटवर्क इन्टरफेस, process.env, cwd, homedir, नोड संस्करण, र सार्वजनिक IP हुन्छ। यो चरण 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 | TCP बाढी | ६५ केबी अनियमित-पेलोड स्प्याम |
| udp | UDP बाढी | ६५,५०७-बाइट UDP प्याकेटहरू |
| छिटो | HTTP/2 द्रुत-रिसेट DoS | २०२३ CVE-२०२३-४४४८७ प्रविधि |
सबै पाँच बाढी मोड्युलहरूले एक लिन्छन् लक्ष्य, पोर्ट, अवधि, र थ्रेडहरू तर्क — बोट एक सामान्य भाडामा लिने फ्लडर हो, कुनै विशेष पीडितलाई लक्षित गरिएको छैन। अपरेटरको पीडित सूची C2 मा रहन्छ, प्याकेजमा होइन।
यहाँ नयाँ के छ — पठाइएको C2 बाइनरी
चरण A एक परिचित आकार हो: प्रमाणपत्र चोरी, स्थापना हुक, विक्रेता-टनेल C2। चरण B हो पनि परिचित आकार — DDoS बोटनेटहरू वर्षौंदेखि दुर्भावनापूर्ण npm प्याकेजहरूको एक भाग रहेका छन्। असामान्य कुरा के हो भने अपरेटरले पठाएको सर्भर साइड npm टार्बल भित्रको किटको विवरण:
- c2 — ४-मेगाबाइट कम्पाइल गरिएको Go ELF बाइनरी
- c2.go मा जानुहोस् — त्यो बाइनरीको लागि ४२६-लाइन गो स्रोत
कुनै पनि फाइललाई कुनै पनि स्थापना हुकद्वारा आह्वान गरिएको छैन। तिनीहरू पीडित पेलोडको भाग होइनन्। तिनीहरू प्याकेज डाइरेक्टरीमा कागजात फाइल जस्तै बसिरहेका छन्। सबैभन्दा प्रशंसनीय पढाइ यो हो कि अपरेटरले फाइल सूची - वास्तविक OpSec स्लिप - क्युरेट नगरी आफ्नो विकास कार्य रूखलाई npm मा धकेल्यो र के पठाइएको छ त्यो पूर्ण दुई-पक्षीय किट हो: पीडितले चलाउने क्लाइन्ट, र अपरेटरले चलाउने सर्भर।
यो कथाको त्यो भाग हो जसले "टर्नकी बोटनेट किट" फ्रेमिङलाई औचित्य दिन्छ। डाउनलोड गर्ने जो कोहीले axois-उपयोगिताहरू: १.०.९ टेकडाउन अघि पीडितको नमुना मात्र हुँदैन - तिनीहरूसँग काम गर्ने C2 सर्भर पनि छ।
एक वाक्यमा, पिभोट
उही प्रकाशक, उही प्याकेज नाम, उही ट्रिपल-हुक स्क्याफोल्ड, उही "फ्यान्टम" ब्रान्डिङ - तर पेलोडले रातारात मुद्रीकरण मोडेल परिवर्तन गर्यो: "म पुन: बेच्न सक्ने फसलका गोप्य कुराहरू" देखि "मैले भाडामा लिन सक्ने बाढी क्षमता भाडामा लिन सक्ने" सम्म। डिफेन्डरहरूले हेर्नुपर्ने स्थापना-समय TTP हरू दुवै चरणहरूमा लगभग समान छन्; चरण A को वालेट-पथ स्ट्रिङहरूमा कुञ्जी गरिएको हस्ताक्षर-आधारित प्रतिरक्षाहरू वा फ्यान्टम.जेएसको ७,६६७-लाइन कलेक्टरले चरण B पूर्ण रूपमा छुटाउने थियो।
| मिति (UTC) | घटना |
|---|---|
| 2026-05-15 | पहिलो प्रकाशन: axois-utils:1.0.4 (ल्यान परीक्षण निर्माण, विकासकर्ता रिगमा 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 | नियमित एनपीएम स्क्यानिङको क्रममा चरण ए अभियान पत्ता लाग्यो; पुष्टि-दुर्भावनापूर्ण फैसला लागू गरियो |
| 2026-05-17 | axois-utils:1.0.9 प्रकाशित — पेलोड पिभोट: लोकलहोस्ट.रन टनेल मार्फत फ्यान्टमबोट DDoS भर्ती; अपरेटर-साइड c2 बाइनरी र c2.go स्रोत टार्बलमा पठाइयो |
| 2026-05-17 | chalk-tempalte:1.0.19 र 1.0.20 प्रकाशित — अझै पनि चरण A (चोर्ने); अपरेटरले अब दुवै मोड्युलहरू समानान्तर रूपमा चलाउँदैछ |
| 2026-05-17 | नियमित स्क्यानिङको क्रममा चरण B को खोज; सबैमा लागू गरिएको निर्णय 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 |
लेखकको पहिचान
| क्षेत्र | मूल्य |
|---|---|
| npm प्रकाशक | deadcode09284814 |
| प्रकाशकको इमेल | phantomdeadcode@tutamail.com |
| SCM प्रमाणिकरण | कुनै पनि |
आदेश र नियन्त्रण
| चरण | अन्तबिन्दु | परिवहन |
|---|---|---|
| A | f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect | सर्भियो HTTPS टनेल |
| A | 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect | सर्भियो HTTPS टनेल (अघिल्लो संस्करण) |
| A | 80.200.28.28:443/collect | अन्तर्निहित VPS अन्त्यबिन्दु |
| B | b94b6bcfa27554.lhr.life:443/ | localhost.run HTTPS रिभर्स-टनेल |
फाइल डाइजेस्टहरू (SHA-256)
| फाइल | SHA-256 | टिप्पणीहरू |
|---|---|---|
c2 (गो ELF, ४ MB) | 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 | अपरेटर-साइड C2 सर्भर, भित्र पठाइएको axois-utils:1.0.9 |
c2.go (४२६ पङ्क्तिहरू) | 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 | C2 बाइनरीको लागि स्रोत जानुहोस् |
distrube.js | 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 | चरण B बोट क्लाइन्ट |
phantom.js (chalk-tempalte:1.0.19) | 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 | चरण A प्रमाणपत्र / वालेट सङ्कलनकर्ता |
phantom.js (chalk-tempalte:1.0.20) | d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 | चरण A सङ्कलक (१.०.२० संस्करण) |
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) | ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 | फेज ए लोडर, दुबै संस्करणहरूमा बाइट-समान |
श्रेय र प्रेरणा
हामी यो अभियानलाई निम्न रूपमा ट्र्याक गर्छौं: PhantomBot, अपरेटरको आफ्नै ब्रान्डिङ लिँदै प्रयोगकर्ता-एजेन्ट: PhantomBot/1.0 मुटुको धड्कन हेडर, द phantom-bot.service का थप वस्तुहरू प्रणालीगत एकाइ, com.phantom.bot मा LaunchAgent लेबल, र फ्यान्टमडेडकोड@ इमेल ह्यान्डल। अपरेटर कम्तिमा चार कलाकृतिहरूमा यो नामको बारेमा एकरूप छ।
सिग्नल क्याटलग
- प्रकाशक - डेडकोड०९२८४८१४ npm मा। एकल-ह्यान्डल खाता, Tutamail डिस्पोजेबल इमेल, छैन SCM प्रमाणीकरण। यस अभियान बाहेक कुनै पूर्व प्रकाशन इतिहास छैन।
- ब्रान्डिङ पुन: प्रयोग — "phantom" प्रकाशकको इमेलमा, फेज A कलेक्टर फाइलनाममा देखिन्छ (फ्यान्टम.जेएस), चरण B दृढता सेवा नाममा (phantom-bot.service का थप वस्तुहरू), LaunchAgent लेबलमा (com.phantom.bot मा), र बटमा प्रयोगकर्ता-एजेन्ट (फ्यान्टमबोट/१.०).
- पूर्वाधार — मा एउटा VPS 80.200.28.28 सर्भियो सबडोमेन रोटेशन मार्फत चरण A लाई अगाडि बढाउँछ; चरण B a मा सर्छ लोकलहोस्ट.रन रिभर्स-टनेल (b94b6bcfa27554.lhr.life का थप वस्तुहरू)। दुबै विक्रेता सेवाहरू नि:शुल्क छन् र कम-बजेट, कम-OpSec सेटअपहरूसँग मिल्दोजुल्दो अपरेटरको तर्फबाट केवल आउटबाउन्ड SSH आवश्यक पर्दछ।
- कोड शैली — सबैतिर सादा जाभास्क्रिप्ट; कुनै अस्पष्टता छैन, कुनै स्ट्रिङ इन्कोडिङ छैन, कुनै एन्टी-VM जाँचहरू छैनन्। चर नामहरू वर्णनात्मक छन् (सिस्टमइन्फो चोर्नुहोस्, आदेश कार्यान्वयन गर्नुहोस्, httpबाढी). टिप्पणीहरू डिस्ट्रुब.जेएस भविष्यको अपरेटरलाई सिधै सम्बोधन गर्नुहोस् ("तपाईंको localhost.run HTTPS URL प्रयोग गर्नुहोस्"), जसले फाइललाई किटको रूपमा पुन: वितरण गर्ने उद्देश्यले गरिएको थियो, एकल आक्रमणकारीद्वारा प्रयोग नगरिएको सुझाव दिन्छ।
- OpSec स्लिप — फेज बी टार्बलले बट क्लाइन्ट र अपरेटर-साइड C2 सर्भर दुवैलाई पठाउँछ (c2 ELF + c2.go मा जानुहोस् स्रोत)। यो एक अपरेटरसँग मिल्दोजुल्दो छ जसले फाइल सूचीको अडिट नगरी आफ्नो काम गर्ने रूखलाई npm मा धकेल्यो। या त अपरेटर अनुभवहीन छ, वा किट छ मतलब सार्वजनिक रूपमा वितरण गर्न र C2 बाइनरी उत्पादनको अंश हो।
- आत्म-पुष्टि - axois-उपयोगिताहरू: १.०.९ स्रोत टिप्पणी समावेश गर्दछ // जनताको लागि '८०.२००.२८.२८' मा परिवर्तन गर्नुहोस् लाइन १२ मा, अपरेटरहरूले सामान्यतया अस्वीकार गर्ने विकास / स्टेजिङ / उत्पादन प्रगति पुष्टि गर्दै।
प्रेरणा
चरण A पेलोड भनेको सिधा वित्तीय चोरी हो: प्रमाणपत्रहरू, क्लाउड कुञ्जीहरू, GitHub टोकनहरू, र क्रिप्टो वालेटहरू सबैमा तरल पुनर्विक्रय बजारहरू छन्। चरण B पनि वित्तीय हो, तर अप्रत्यक्ष: DDoS-for-hire ("booter") सेवाहरूले मिनेटमा बाढी क्षमता भाडामा लिन्छन्, र यहाँ पठाइएको जस्तै बटहरू ती सेवाहरू चल्ने सूची हुन्। ३०-सेकेन्डको मुटुको धड्कन, सामान्य लक्ष्य/पोर्ट/अवधि कमाण्ड स्किमा, र पाँच-प्रोटोकल फ्लड आर्सेनल हुन् standard बुटर अपरेटरको उत्पादन।
दुवै मोड्युलहरू समानान्तर रूपमा चलाउँदै — चक-टेम्पाल्ट:१.०.१४ र 1.0.20 चोरलाई पठाउन जारी राख्नुहोस् जबकि axois-उपयोगिताहरू: १.०.९ बोट पठाउँछ — सुझाव दिन्छ कि अपरेटरले चरण A त्याग्नुको सट्टा राजस्व स्ट्रिमहरू हेज गरिरहेको छ। पिभोट एक हो साथै, प्रतिस्थापन होइन।
हामीले के दाबी गरिरहेका छैनौं
हामीले यसको पछाडिको वास्तविक पहिचान पुष्टि गर्न सकेका छैनौं डेडकोड०९२८४८१४ ह्यान्डल, र हामी यो अभियानलाई कुनै पनि नाम दिइएको खतरा अभिनेता, समूह, वा देशलाई श्रेय दिँदैनौं। "फ्यान्टम" ब्रान्डिङ कलाकृतिहरूमा एकल अपरेटरलाई सुझाव दिन पर्याप्त सुसंगत छ, तर C2 बाइनरीको किट-शैली ढुवानिले असंबद्ध ह्यान्डलहरूबाट भविष्यका प्याकेजहरूले उही कोड पुन: प्रयोग गर्ने सम्भावना खोल्छ।
प्रभाव, प्रवृत्ति र रक्षकहरूले के गर्नुपर्छ
प्रभाव
वैध स्क्वाट लक्ष्यहरू अक्षहरू र चक-टेम्प्लेट जाभास्क्रिप्ट इकोसिस्टममा व्यापक रूपमा निर्भर छन्; अक्षहरू एक्लै शीर्ष तीस सबैभन्दा धेरै डाउनलोड गरिएका npm प्याकेजहरूमा पर्छ। टाइपोस्क्वाट नामहरू वास्तविक नामहरूबाट एक किस्ट्रोक टाढा छन् (अक्षय ↔ अक्षहरू, टेम्पाल्टे ↔ टेम्पलेट), र दुवै भाषिक रूपमा सम्भवतः गलत हिज्जेहरू हुन्।
हामीले टेकडाउन गर्नु अघि मालिसियस संस्करणहरूको लागि भरपर्दो डाउनलोड तथ्याङ्क प्राप्त गर्न सकेनौं — प्याकेज अप्रकाशित भएपछि npm ले प्रति-संस्करण डाउनलोड गणनाहरू राख्दैन, र npms.io ले तपाईंलाई-शैली प्रोक्सीहरू यस स्केलमा हल्लाइरहेका छन्। कुनै पनि संस्था जसको लकफाइलले प्याकेज नामकमा समाधान गर्छ axois-utils का थप वस्तुहरू or चक-टेम्पाल्टे प्रकाशकबाट डेडकोड०९२८४८१४ सम्झौता गरिएको रूपमा व्यवहार गरिनु पर्छ: उपस्थित प्रत्येक प्रमाणहरू घुमाउनुहोस् process.env प्रयोग गर्न सकिन्छ प्रभावित होस्टमा, प्रति OS पर्सिस्टन्स भेक्टरहरूको अडिट गर्नुहोस् (तल "डिफेन्डर्सले के गर्नुपर्छ" हेर्नुहोस्), र निर्भरता हटाउनुहोस्।
उदीयमान ढाँचाहरू
यो अभियानले हालैका धेरै npm घटनाहरूमा हामीले देखेको परिवर्तनको उदाहरण दिन्छ: इन्स्टल-हुक स्क्याफोल्ड टिकाउ सम्पत्ति हो; पेलोड साट्न मिल्ने छ। उही प्रकाशक, उही प्याकेज, उही पूर्व-स्थापना गर्नुहोस् / स्थापित गर्नुहोस् / स्थापना पछि ट्रिपल, र उही संस्करण-बम्प ताल पनि - बीचमा परिवर्तन भएको एक मात्र चीज axois-उपयोगिताहरू: १.०.९ र axois-उपयोगिताहरू: १.०.९ फाइल के थियो? hooks चलाउनुहोस्। चरण A पेलोडमा कुञ्जी गरिएको हस्ताक्षर-आधारित पत्ता लगाउने (वालेट-पथ स्ट्रिङहरू, फ्यान्टम.जेएस(को ७,६६७-लाइन कलेक्टर, सर्भियो C2 होस्ट) ले पहिलो तीन संस्करणहरूलाई फ्ल्याग गरेको हुन्थ्यो र चरण B पूर्ण रूपमा छुटेको हुन्थ्यो।
हामीले ट्र्याक गरेका अन्य २०२६ अभियानहरूमा पनि यही ढाँचा देखिन्छ: स्थिर स्क्याफोल्ड भएको एकल अपरेटर, प्रमाणपत्र चोरी, परीक्षा-धोखाधडी गर्ने ग्राहकहरू, टेलिग्राम-बोट एक्सफिल, र अब DDoS भर्ती बीच साटासाट। पेलोड हस्ताक्षरहरूमा भर पर्ने रक्षकहरूले प्रत्येक अभियानको दोस्रो चरण हार्नेछन्।
परिणाम यो हो कि स्थापना-समय TTP हरू राम्रो संकेत हुन्. ट्रिपल स्थापना-हुक घोषणाहरू, आयात गर्ने स्क्रिप्टहरू स्थापना गर्नुहोस् https or बच्चा_प्रक्रिया, प्रयोगकर्ता-स्टार्टअप फोल्डरहरूमा लेख्ने स्क्रिप्टहरू स्थापना गर्नुहोस्, र नि:शुल्क रिभर्स-टनेल सेवाहरूमा होस्टनामहरू समाधान गर्ने स्क्रिप्टहरू स्थापना गर्नुहोस् (सर्भियो, लोकलहोस्ट.रन, ngrok, cloudflared) सबै वैध प्याकेजहरूमा दुर्लभ छन् र दुर्भावनापूर्ण प्याकेजहरूमा सामान्य छन्।
रक्षकहरूले के गर्नुपर्छ?
- लकफाइल अडिट. प्रत्येक खोज्नुहोस् package-lock.json / यार्न.लक / pnpm-lock.yaml मा तपाईंको संस्थामा सटीक स्ट्रिङहरूको लागि axois-utils का थप वस्तुहरू र चक-टेम्पाल्टेकुनै पनि जोडीलाई सम्झौताको रूपमा व्यवहार गर्नुहोस्।
- गोप्य कुराहरू घुमाउनुहोस् प्रभावित होस्टहरूमा। चरण A मा थोक-हार्वेस्ट गरिएको SSH, क्लाउड, GitHub, npm, र वालेट प्रमाणहरू। मा उपस्थित सबै प्रमाणहरू मान्नुहोस् process.env प्रयोग गर्न सकिन्छ, ~ / .ssh, ~/.aws, ~/.npmrc, ~/.कन्फिग, वा कुनै पनि .env* प्रभावित होस्टमा फाइल खुला छ।
- दृढता हटाउनुहोस् (चरण B)। विन्डोजमा, मेटाउनुहोस् HKCU\सफ्टवेयर\माइक्रोसफ्ट\विन्डोज\करेन्टभर्सन\रन\सिस्टमअपडेट, हटाउनुहोस् %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\system-update.bat, र schtasks /delete /tn प्रणाली अद्यावधिक /fलिनक्समा, crontab -e र हटाउनुहोस् @reboot नोड ..., systemctl –प्रयोगकर्ता असक्षम –अब phantom-bot.service त्यसो भए मेट्नुहोस् ~/.config/systemd/user/phantom-bot.service, स्क्रब bashrc / .zshrc / /आदि/rc.स्थानीय। macOS मा, launchctl अनलोड गर्नुहोस् ~/Library/LaunchAgents/com.phantom.bot.plist त्यसपछि plist मेटाउनुहोस्।
- C2 होस्टहरू रोक्नुहोस्। तपाईंको निकास ब्लकलिस्टमा IOC तालिकामा रहेका चार C2 अन्त्य बिन्दुहरू थप्नुहोस्। *.serveousercontent.com र *.lhr.life यदि तपाईंको वातावरणमा रिभर्स-टनेल सेवाहरूको वैध प्रयोग छैन भने थोकमा ब्लक गर्न सकिन्छ।
- स्थापना-समय TTP द्वारा खोजी गर्नुहोस्, पेलोड होइन। इन्भेन्टरी लकफाइल प्रविष्टिहरू जसको package.json घोषणा गर्दछ पूर्व-स्थापना गर्नुहोस्, स्थापित गर्नुहोस्, र स्थापना पछि सबै एउटै स्क्रिप्टमा औंल्याउँदै। प्याकेजको उमेर र प्रकाशक प्रमाणीकरण स्थिति विरुद्ध क्रस-चेक गर्नुहोस्। यो ढाँचा वैध प्याकेजहरूमा दुर्लभ छ र PhantomBot ले पुन: प्रयोग गर्ने एकल सबैभन्दा भरपर्दो संकेत हो।
- C2 बाइनरीको लागि लेखा परीक्षण। डाउनलोड गर्ने जो कोही axois-उपयोगिताहरू: १.०.९ अपरेटरको C2 सर्भर छ (c2 ELF, sha256 १६५fa९२d…) डिस्कमा। क्यासहरू र CI आर्टिफ्याक्ट स्टोरहरू स्क्यान गर्नुहोस्। बाइनरी आफैंमा निष्क्रिय छ, तर वर्कस्टेशनमा यसको उपस्थिति प्याकेज स्थापना भएको स्पष्ट प्रमाण हो।
बन्द लाइन
एउटै अपरेटर, एउटै प्याकेज, र एउटै स्थापना हुकले ४८ घण्टा भित्र पूर्ण रूपमा फरक खतराहरू प्रदान गर्न सक्छ। स्क्याफोल्ड हेर्नुहोस्, पेलोड होइन।




