PhantomBot a Furto Testimoniorum ad Botnet

PhantomBot: Expeditio Typosquat quae a furto credentiorum ad instrumentum Botnet paratum mutavit.

TL, DR

Unus editor npm, deadcode09284814, expeditionem typosquat contra legitimum gessit axios et chalk-template fasciculi ab medio Maio anni 2026.

Expeditio coepit ut furtum credentialium et crumenae usitatum, notitias exfiltrans ad... Cuniculus HTTPS Serveo.

On 2026-05-17, cum axois-utils:1.0.9, operator sarcinam omnino permutavit: eadem triplex structura "install-hook", idem editor, idem nomen fasciculi.

Sed scriptum institutionis nunc est conscriptum botnet DDoS trans suggestum.

Sarcina ad localhost.run cuniculum percurrit et mandata inundationis accipit, ambitus infectos in partem botnet DDoS-capacis convertens.

Operator etiam misit Binarium servi C2 Intra fasciculum tarball, manifestam augmentationem a furto credentialium ad structuram botnet activam ostendens.

Duo fasciculi, quattuor versiones adhuc activae in registro, et unus operator nunc ambos modulos simul currit.

Gravitas: alta.

Titulus IOC Quaelibet versio axois-utils vel chalk-tempalte ab editore deadcode09284814

Impetus: Quomodo Operatur

Expeditio in structura traditionis deliberate taediosa aedificatur: duo nomina fasciculorum typosquat, una littera a fasciculis cum centena milionum deductionum hebdomadalium (Axios, exemplar cretaceum), et triplicem institutionem hooks quae executionem praestant. Quod interest est quid fulcimentum peragit — et quod operator onus mutavit nihil aliud mutatum esse.

Scamnum commune

Omnis versio publicata utriusque fasciculi eosdem tres cyclos vitae declarat. hooks in package.json:

"scripts": {    "preinstall":  "node <payload>.js",    "install":     "node <payload>.js",    "postinstall": "node <payload>.js"  } 

Enumeratio sarcinae sub omnibus tribus hooks est nimium — postinstallationem solus in default curreret install npmElectio refert: npm install –ignore-scripta scripta omittit, sed plura operationes communes (restitutiones cellae CI quae cyclum vitae iterum exsequuntur) hooks selective, vel fabricatores qui solum audiunt postinstallationem) declarationem triplicem redundantem tutissimam optionem pro aggressore faciunt.

cretae template alterum mechanismum addit: declarat `axois-utils:^1.0.7` ut tempus executionis dependentiamTyposquatted instituens. exemplar cretaceum ergo typosquat fratrem quoque trahit, et ambae sarcinae currunt. Duo fasciculi par coordinatum sunt, non indices independentes.

Pars A — furator testimoniorum / crumenae (2026-05-15 → praesens)

Pars A est sarcina originalis. Sarcina brevis est. postinstall.js quod ad cuniculum reversum Serveo HTTPS spectat:

// chalk-tempalte/postinstall.js:11-13  const C2_HOST = "f04a273bd84c0622-80-200-28-28.serveousercontent.com";  const C2_PORT = 443;  const C2_PATH = '/collect'; 

Subdominium Serveo IP destinationis ( codificat)80.200.28.28) directe in nomine hospitis — conventio recognoscibilis pro illo servitio. Operator praefixum subdominii fortuitum inter versiones rotat ut indices interdictorum dominii simplices evitet, sed IP subiacens numquam movetur. (creta-template:1.0.14 Used 8a3e818ea8f11186-80-200-28-28…; usus 1.0.16 / 1.0.19 / 1.0.20 f04a273bd84c0622-….)

postinstall.js manus ad phantom.js, modulus "collectoris" fasciculatus 7,667 linearum. phantom.js hospitem deambulat per:

Claves privatae SSH (~/.ssh/*)
.npmrc contenta et quaelibet npm_* tesserae ambitus
Fasciculi credentialibus AWS, GCP, et Azure
Regularis formae tesserae accessus personalis GitHub (ghp_*, gho_*, ghu_*, ghs_*)
Artefacta crumenae cryptographicae pro Bitcoin, Exodus, Electrum, Monero, Litecoin, Dogecoin, Zcash, Dash
Recursivum .env* per ambulare ~/projects, ~/dev, ~/code, ~/workspace, et cwd institutionis
Historiae concharum et plenae process.env

Fasciculus ad cuniculum Serveo mittitur apud /collectioNulla obscuratio est, nulla logica anti-VM, nulla scaena — operatoris spes in volumine et celeritate est.

Pars B — PhantomBot DDoS conscriptor (die XVII mensis Maii anni MMXXVI, axois-utils:1.0.9 tantum)

Pars B phantom.js + postinstall.js uno fasciculo nomine distrube.js substituit (error typographicus operatoris est). Schema tripliciter hamatis in package.json immutatum manet; fasciculus idem nomen, ambitum, et exemplar version-bump retinet. Extrinsecus, axois-utils:1.0.9 quasi continuatio minor versionis 1.0.6 apparet. Intrinsecus, familia programmatum malignorum diversa est.

distrube.js Aperit cum sectione configurationis quae propriam notam operatoris nominat:

// 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')}`;

Adnotationes ad futurum operatorem qui instrumentum exsequetur diriguntur ("Utere URL HTTPS tua localhost.run"). Hoc, una cum eo quod iuxta clientem automatici includitur, indicium est hoc non solum sarcinam victimae esse, sed ipsum instrumentum.

Fluxus:

  1. perseverantia primum currit. Scriptum se tribus modis diversis per systema operandi (registrum) instituit Curre + Fasciculus initialis + schtasks in Fenestris; crontab + phantom-bot.service unitas systematis + .bashrc/.zshrc addere + /etc/rc.local in Linux; LaunchAgent com.phantom.bot.plist (in macOS). Nomen servitii persistentiae et titulus LaunchAgent ambo sunt robot phantasma / com.phantom.bot, unde etiam nomen expeditionis originem trahit.
  2. Informationes systematis exfil semel currit — vestigium digitale semel missum ad b94b6bcfa27554.lhr.life:443/collect portans nomen hostis, suggestum, architecturam, nomen usoris, CPU/RAM, interfaces retiales, process.env, cwd, directorium domesticum, versionem nodi, et IP publicum. Haec multo minus aggressiva est quam Pars A: nulla SSH, nullae crumenae, nulla recursio .env. Munus automati est inscribere, non furari.
  3. Circuitus pulsus cordis HTTPS POST singulis triginta secundis ad b94b6bcfa27554.lhr.life:443/ aperit. Agens Usoris est PhantomBot/1.0. Verificatio TLS explicite inactiva est (rejectUnauthorized: false). Responsio C2 ut JSON formae {type, target, port, duration, threads, method} interpretatur et mittitur.
  4. Arsenal inundationis sex mandatis conexum est:
Typus mandati Module Notes
Ping Responsum Vivitatis Bot se ipsum identificat
http Inundatio HTTP Inundatio petitionum Strati VII
http Inundatio HTTPS Idem ac http, TLS-involutum
TCP Inundatio TCP Spam fortuitam sarcinam 65 KB
udp Inundatio UDP Fasciculi UDP 65 507 octetorum
celeri HTTP/2 cito remittens DoS Ars CVE-2023-44487 anni 2023

Omnes quinque moduli inundationis accipiunt scopum, portum, tempusEt relatorum argumentum — bot est genericus inundator mercennarius, non ad ullam victimam particularem destinatus. Index victimarum operatoris in C2 residet, non in fasciculo.

Quid Novi Hic — binarium C2 emissum

Pars A forma nota est: furtum credentiale, hamus institutionis, C2 a venditore pervagatus. Pars B est... etiam forma nota — retia DDoS iam annis inter fasciculos npm maliciosos numerantur. Quod insolitum est, operator distribuisse... latus servitoris Instrumenti intra fasciculum tarball npm:

  • c2 — binarium Go ELF compilatum quattuor megabytorum
  • c2.go — fons Go 426 linearum pro illo binario

Neuter fasciculus ab ullo hook institutionis evocatur. Non sunt pars sarcinae victimae. In directorio fasciculi sedent eodem modo quo fasciculus documentationis. Lectio maxime probabilis est operatorem arborem suam evolutionis ad npm impulisse sine curatione indice fasciculorum — verum vitium OpSec — et quod inclusum est est apparatus completus duplex: cliens quem victima currit, et servitor quem operator currit.

Haec est pars fabulae quae formulam "instrumenti botnet clauditi in manu" iustificat. Quicumque detraxit axois-utils:1.0.9 Antequam deletio fiat, non solum exemplum victimae habet — sed etiam servitorem C2 operantem habent.

Cardo, una sententia

Idem editor, eadem nomina fasciculorum, eadem structura tripliciter hamata, eadem insignia "phantasmatica" — sed sarcina exemplar monetizationis per noctem mutavit: a "secreta messis quae revendere possum" ad "capacitatem inundationis locandam quam conducere possum". TTPs temporis institutionis quos defensores observare debent fere idem sunt per ambas phases; defensiones subscriptionibus fundatae ad series itineris crumenae Phase A vel ad... phantom.jsCollector 7,667 linearum Phase B omnino omisisset.

Dies (UTC) Event
2026-05-15 Prima publicatio: axois-utils:1.0.4 (Aedificatio probationis LAN, apparatus evolutionis apud) 192.168.129.19)
2026-05-15 axois-utils:1.0.6 publicatum — Phase A C2 mutatum est ad 80.200.28.28 per cuniculum Serveo; commentarium fontis // Change to '80.200.28.28' for public commutationem inter evolutionem et productionem confirmat
2026-05-16 chalk-tempalte:1.0.14 et 1.0.16 publicatum — onerator catenatus declarans axois-utils:^1.0.7 ut dependentia temporis executionis; subdominium Serveo rotatum est
2026-05-16 Expeditio Phase A detecta per scrutationem npm ordinariam; iudicia confirmata-malicia adhibita.
2026-05-17 axois-utils:1.0.9 publicatum — pivot sarcinae: PhantomBot DDoS conscriptor per cuniculum localhost.run; a latere operatoris c2 binarium et c2.go fons in fasciculo tar missus
2026-05-17 chalk-tempalte:1.0.19 et 1.0.20 publicatum — adhuc Phase A (fur); operator nunc ambos modulos simul currit
2026-05-17 Inventio Phase B per inspectionem ordinariam; sententiae per omnes adhibitae sunt. 2026-05-17 versiones
(permanens) Relationes de detractione pendentes; omnes quattuor fasciculi editi in registro tempore scribendi manent.

Indicia Compromissionis

Packages

ecosystem sarcina versions
npm axois-utils (typosquat axii) 1.0.4, 1.0.6, 1.0.9
npm chalk-tempalte (typosquat formae cretae) 1.0.14, 1.0.16, 1.0.19, 1.0.20

Identitas auctoris

Field Value
editor npm deadcode09284814
Inscriptio electronica editoris phantomdeadcode@tutamail.com
SCM verificationem nihil

Imperium et imperium

tempus endpoint Transport
A f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect Cuniculus HTTPS Serveo
A 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect Cuniculus HTTPS Serveo (versio prior)
A 80.200.28.28:443/collect Finis terminalis VPS subiacens
B b94b6bcfa27554.lhr.life:443/ cuniculum inversum HTTPS localhost.run

Compendia fasciculorum (SHA-256)

file HA-256 Notes
c2 (Ad ELF accede, 4 MB) 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 Servus C2 a latere operatoris, intus missus axois-utils:1.0.9
c2.go (lineae 426) 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 Ire ad fontem binarii C2
distrube.js 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 Cliens automaticus Phase B
phantom.js (chalk-tempalte:1.0.19) 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 Collector tesserarum / crumenae Phase A
phantom.js (chalk-tempalte:1.0.20) d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 Collector Phase A (varians 1.0.20)
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 Operator Phase A, octetis identicis per ambas versiones

Attributio et Motivatio

Hanc expeditionem sequimur ut PhantomBot, propriam operatoris notam ab Usor-Agens: PhantomBot/1.0 caput cordis cordis, phantom-bot.service unitas systematis com.phantom.bot titulus "LaunchAgent" et phantomdeadcode@ Inscriptio electronica. Operator de hoc nomine per saltem quattuor artefacta constans est.

Catalogus signorum

  • Publisher: - codice mortuo09284814 in npm. Ratio unius administratoris, inscriptio electronica Tutamail abicienda, non. SCM verificatio. Nulla historia publicationum prior ultra hanc expeditionem.
  • Reusatio insignium — "phantom" in epistula electronica editoris, in nomine fasciculi collectoris Phase A (phantom.js), in nomine servitii persistentiae Phase B (phantom-bot.service), in inscriptione LaunchAgent (com.phantom.bot), et in agente usoris automatario (PhantomBot/1.0).
  • Infrastructure — Unum VPS apud 80.200.28.28 Frontem Phase A per rotationem subdominii Serveo tenet; Phase B ad movetur localhost.run cuniculus inversus (b94b6bcfa27554.lhr.vitaAmbae officia venditoris gratuita sunt et solum SSH exeuntem ex parte operatoris requirunt, quod congruit cum configurationibus parvi sumptus et parvae OpSec.
  • Code style — JavaScript simplex per totum; nulla obscuratio, nulla codificatio litterarum, nullae probationes anti-VM. Nomina variabilium descriptiva sunt (furariSystematisInformationem, Mandatum exsequi, httpFlood). Commentarii in distrube.js operatorem futurum directe alloqui ("Utere URL HTTPS tua localhost.run"), suggerens fasciculum destinatum fuisse ad redistribuendum tamquam instrumentum, non ad usum ab uno aggressore.
  • Schedula OperationSec — Archivum compactum Phase B et clientem automaticum et servitorem C2 a latere operatoris continet (c2 ELF + c2.go (fons). Hoc congruit cum operatore qui arborem suam operantem ad npm impulit sine indice fasciculorum inspiciendo. Aut operator imperitus est, aut instrumentum est... quod publice distribuendum et binarium C2 pars producti est.
  • Autoconfirmatio - axois-utils:1.0.4 commentarium fontis continet // Mutatio ad '80.200.28.28' pro publico In linea duodecima, progressionem evolutionis / staging / productionis confirmans quem operatores typice negant.

Cognition

Onus Phase A furtum pecuniarium directum est: documenta, claves nubis, tesserae GitHub, et crumenae cryptographicae omnes mercatus revenditionis liquidos habent. Phase B etiam pecuniaria est, sed indirecta: officia DDoS-pro-conductio ("booter") capacitatem inundationis per minutum conducunt, et automata sicut hic missa sunt inventarium quo illa officia currunt. Pulsus cordis triginta secundorum, genericus... scopum/portum/tempus schema mandati, et armamentarium inundationis quinque protocollorum sunt standard productum operatoris initialis.

Utrumque modulum in parallelo currere — creta-template:1.0.19 et 1.0.20 furem navificem pergere dum axois-utils:1.0.9 automatum mittit — suggerit operatorem reditus circumspicere potius quam Phase A deserere. Cardo est praeter, non substitutum.

Quod non vindicamus

Identitatem in mundo reali post id confirmare non potuimus. codice mortuo09284814 "handle" appellatur, neque hanc expeditionem ulli nominati actori minarum, gregi, aut patriae tribuimus. Inscriptio "phantom" satis constans est per artefacta ut unum operatorem suggerat, sed distributio binarii C2, quasi instrumentum ad res gerendas pertinentis, possibilitatem relinquit ut fasciculi futuri ex "handles" non conexis eundem codicem iterum utantur.

incussus

Scopi legitimi occupationis occupatae Axios et exemplar cretaceum late in oecosystemate JavaScript pendent; Axios solus inter triginta fasciculos npm maxime receptos numeratur. Nomina typosquat uno ictu clavis a veris absunt (axoisAxios, templatetemplate), et ambo sunt errores orthographici secundum linguam probabiles.

Statisticas certas deductionum pro versionibus malignis ante remotionem obtinere non potuimus — npm numeros deductionum per versionem non retinet postquam fasciculus publicatus est, et npms.ioprocuratores generis -strepitum habent hac magnitudine. Quaevis organizatio cuius fasciculus clausus resolvitur ad fasciculum nomine axois-utils or cretae template ab editore codice mortuo09284814 quasi compromissa habenda sunt: ​​omnes credentiales praesentes in rotatione processus.ambitus In hospite affecto, vectores persistentiae per systema operandi inspice (vide "Quid defensores facere debent" infra), et dependentiam remove.

Exempla emergentia

Haec expeditio mutationem quam in nonnullis recentibus casibus NPM vidimus exemplificat: Structura hami installata est res durabilis; onus permutabile estIdem editor, eadem sarcina, eadem praeinstallatio / install / postinstallationem triplex, et etiam eadem versio-cadenza impulsus — sola res quae mutata est inter axois-utils:1.0.6 et axois-utils:1.0.9 erat fasciculus hooks Currere. Detectio subscriptionis fundata in sarcina Phase A coniuncta (stringae semitae crumenae, phantom.jsCollector 7,667 linearum, hospes Serveo C2) primas tres versiones notavisset et Phase B omnino omisisset.

Idem exemplum in aliis expeditionibus anni 2026 quas observavimus conspicitur: operator singularis cum stabili structura, inter furtum credentialium, clientes in examinibus fraudantes, exsilium automatorum Telegram, et nunc conscriptionem DDoS alternans. Defensores qui in subscriptionibus oneris utilis nituntur secundum circulum cuiusque expeditionis perdent.

Corollarium est quod TTP tempore institutionis melius signum praebent.Declarationes triplices hook-install, scripta install quae important. http or child_process, scripta instituere quae in fasciculos ab usoribus incipientibus scribunt, et scripta instituere quae nomina computatrorum in officiis gratuitis cuniculi inversi (Serveo, localhost.run, ngrok, cloudflared) omnia rara sunt in fasciculis legitimis et communia in fasciculis malitiosis.

Quod defensores facere debent

  • Revisio fasciculi clausi. Quaerere omne lock.json sarcina, / filum.serra / pnpm-lock.yaml in vestra societate pro exactis filis axois-utils et cretae templateQuemvis certamen quasi compromissum tracta.
  • Secreta rotare in hospitibus affectis. Testimonia SSH, nubis, GitHub, npm, et crumenae in massa collecta Phase A. Omnem testimonia umquam praesentia in... processus.ambitus, ~/.ssh, ~/.aws, ~/.npmrc, ~/.configAut quis .env* Fasciculus in hospite affecto patefiit.
  • Persistentiam remove (Phase B). In Windows, dele HKCU\Programmatura\Microsoft\Windows\VersioPraeses\Executus\RenovatioSystematis, eripite %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\system-update.batEt `schtasks /delete /tn SystemUpdate /f`In Linux, crontab -i qui eripiat avertet @nodus denuo incipiens …, systemctl –user disable –now phantom-bot.service tunc delete ~/.config/systemd/user/phantom-bot.servicefrica .bashrc / .zshrc / /etc/rc.localIn macOS, `launchctl unload` ~/Library/LaunchAgents/com.phantom.bot.plist deinde plist dele.
  • Hospites C2 obstrue. Quattuor extremos C2 in tabula IOC ad indicem obstructorum egressus tui adde. *.serveousercontent.com et *.lhr.vita impediri potest permagnarie si ambitus tuus nullum usum legitimum pro officiis cuniculi inversi habet.
  • Venatio per TTP temporis institutionis, non onus utile. Inscriptiones fasciculi clausi inventarii quarum package.json declaravit praeinstallatio, installEt postinstallationem Omnia ad idem scriptum spectant. Cum aetate fasciculi et statu verificationis editoris compara. Hoc exemplum rarum est in fasciculis legitimis et est signum certissimum quod PhantomBot iterum utitur.
  • Revisio pro binario C2. Quicumque detraxit axois-utils:1.0.9 servatorem C2 operatoris habet (c2 ELF, sha256 165fa92d…) in disco. Cellas celatas et repositoria artefactorum CI perscrutari. Binarium per se dormiens est, sed praesentia eius in statione laboris indicium certum est fasciculum installatum esse.

Linea claudens

Idem operator, idem fasciculus, et idem hook institutionis minas omnino diversas intra 48 horas inferre possunt. Observa structuram, non sarcinam.

Instrumenta sca-programmata-ad-compositionem-analysim-instrumenta
Pericula programmatum tuorum secundum prioritatem, emendationem, et tutelam constitue.
Rationem tuam gratuitam accipe.
Non credit card requiritur.

Securatio Evolutionis et Traditionis Programmatum Tuorum

cum Xygeni Product Suite