Ectoplasma npm Installatio Hooks Quae Testimonia AWS Furantur

Ectoplasma: npm installatio hooks quae credentiales AWS post impulsum in receptaculo tantum colligunt

TL, DR

Coetus quinque fasciculi npm, per duas rationes publicavit, misit postinstall hamus qui testimonia nubis ab hospite legit et extra receptaculum mittit. Fasciculi nomina phantasmatum et piratarum ferunt — coral-wraith, ecto-corsair-whisper-6f3b9, ecto-corsair-flag-x9m4, ecto-rust-read-f3a9c1, ecto-nightly-spirit — et quidquid colligunt in falsum serializant ecto_module: Manifestum YAML antequam transmittatur. Gregem sequimur ut Ectoplasma.

Sarcina tantum currit cum ambitum specificum detegit: hospitem cuius nomen est a Series hexadecimalis duodecim characterum et directorium operans sub /app/node_modules — forma structurae in receptaculis vel operarii CI. Cum porta illa transit, hamus interrogat Servitium metadatarum instantiae AWS (IMDSv2) pro testimoniis muneris IAM, enumerat Administrator Secretorum AWS per tres regiones, variabiles ambientales effundit, fasciculos sub /app...et series "capture-the-flag" quaerit. Deinde resultat duobus modis exfiltrat: signum ad ... webhook.site collector et manifestum PUT ad terminum IP crudum, cum indice substitutionum localhost-first.

Descriptiones fasciculorum posteriores "CTF payload for verdaccio supply chain testing" legunt. Hanc auto-descriptionem ut rem observabilem referimus. Ipsum actum — egressus vivus ad IP publicum, verae lectiones credential IMDS, verae vocationes Secrets Manager — est quod est, quacumque inscriptione, et est causa cur hae versiones malignae classificatae sint.

Unum nomen in grege, coral-wraith...non ad unam editionem substitit. Per decenas versiones celeriter et celeriter intra paucas horas iterum edidit — 1.0.0 ascendens ad 6.0.0 — et cursus prior eiusdem nominis inflatos usus erat 9999.0.x numeri versionum, forma classica conatus confusionis dependentiaeTrans illam perturbationem, sarcina visibiliter maturavit: a signo enumerationis hospitis semel facto in plenum cardine credential AWS, incluso probationibus ambitus quae eam extra scopum destinatum silentium servant.

Packages Quinque nomina; coral-wraith solus per decenas versiones iterum editus
ecosystem npm
Vectorem instituere postinstall scriptum cycli vitae
Scopus primarius Testimonia muneris AWS IAM + valores secreti Secrets Manager, variabiles ambitus, /app files
Exfil webhook.site signum + IP crudum C2 PUT
Porta impulsiva nomen hospitis duodecim hexadecimale + /app/node_modules `cwd`, ​​una cum probatione ambitus quae onus extra illum contextum supprimit.
severitas altum — divulgatio credentialium nubis et secretorum administratorum ex ambitus constructionis et executionis in receptaculis

Anatomia impetus

Omnis fasciculus in grege eodem modo constructus est: paene vacuus index.js (`modulus.exportationes = {}`), linea unius package.json scriptum — "postinstall": "nodus postinstall.js" — et onus in postinstall.jsInstallatio fasciculi sufficit ad hamum exsequendum; nulla importatio aut invocatio requiritur.

Porta designationis. Antequam quicquam agat, sarcina ecto-familiae circumstantias inspicit:

function isAppWorker():   host = os.hostname()   if host does NOT match /^[0-9a-f]{12}$/  -> exit   if cwd does NOT contain "/app/node_modules" -> exit   if cwd contains "/tmp/npm-safe"            -> exit   otherwise -> proceed

Nomen hospitis duodecim hexadecimale est forma implicita quam Docker continenti assignat, et /app/node_modules Via institutionis intra receptaculum consueta est. Tertia clausula exsilit si via directorium extractionis in forma sandbox apparet. Effectus finalis est ut sarcina in computatro portatili fabricatoris vel sandbox analysis dormiat et tantum intra operarium constructionis vel runtime in receptaculo activatur — genus ambitus qui maxime verisimiliter testimonia nubis viva feret. Primum fasciculum in grege, corallii spectrum, talem portam non habet et collectionem suam (simpliciorem) sine conditione currit.

CollectionCum porta transit, hamus per eam erumpit. execFileSync("/b/sh", ["-c", ...]) et mandatum compositum singulare exsequitur, quod, hoc ordine:

1. PUT /latest/api/token to 169.254.169.254          (IMDSv2 token request) 2. GET .../iam/security-credentials/                  (IAM role name) 3. GET .../iam/security-credentials/<role>            (temporary credentials) 4. dump env | sort                                    (environment variables) 5. list /app (excl. node_modules) + cat first 15      (application files) 6. aws secretsmanager list-secrets                    (us-east-1, eu-west-1, eu-central-1) 7. scrape readable files for HTB{...}                 (capture-the-flag strings)

Gradus 1–3 sunt recuperatio IMDSv2 secundum exemplar: tessera sessionis pete, deinde eam ut... Tessera metadata X-aws-ec2 caput ad munus IAM instantiae et claves accessus temporales illius muneris extrahendas. Optio IMDSv2 implementandi potius quam simpliciorem IMDSv1 non authenticatum. aDEPTO Notandum est — significat sarcinam etiam in casibus configuratis ut accessum ad metadatas tesserae fundatum requirant, quod est duriorem statum ab AWS commendatum. Testimonia a gradu tertio reddita brevia sunt. Identificatio Clavis Accessus/Clavis Accessus Secreta/Thochen tripleta ad munus instantiae pertinent; quidquid munus illud facere potest, possessor illarum clavium per totam vitam credentialis facere potest.

Gradus 4–6 interpretationem dilatant. [The] env `dump` quidquid processus constructionis vel executionis hereditavit capit — in praxi hic est ubi tesserae registri, series connexionum basis datorum, et claves API saepissime resident. / app Ambulatio fasciculorum usque ad quindecim fasciculos applicationis extra legit node_modules, quae configurationem superficiei ostendere potest, .env fasciculi, vel fons. Gradus 6 invocat Index Secretorum AWS (AWS Secretmanager) in tribus regionibus; testimonia in gradibus 1-3 extracta sunt quae illas vocationes authentificant, ita lectio IMDS et enumeratio Secrets Manager in unum gradum coniunguntur: munus instantiae → inventarium secretorum administratorum. Gradus 7 est allusio ad structuram captandi vexillum — cum... HTB{…} Si vexillum invenitur, per se mittitur, alioquin massa cruda collecta in quattuor partes dividitur et mittitur.

Versiones posteriores in grege ulterius amplificationem perferunt. Potius quam ad inventarium consistere, responsum IMDS resolvunt, claves temporales exportant ut... AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN variabiles ambientales, identitatem confirma cum `aws sts get-caller-identity`, deinde per singula secreta a index secretorum vocans `AWS SecretManager` acquire-valorem-secret in singulis — contenta secreta recuperando, non solum nomina eorum. Eaedem versiones etiam binaria vexillorum a processu substitutorum legunt (/vexillum lege et amici) et tentare cursus mercium contra quodlibet proiectum Rust sub quo inventum est / app, messem ultra credentiales nubis in quidquid ambitus constructionis patefacit amplificans.

Hae versiones posteriores etiam se ipsas vehementius claudunt. Praeter nomen duodecim hexadecimale et /app/node_modules In probationibus, sarcina configurationem registri fasciculi activi et viam directorii operandi inspicit et tacite exit cum contextum analysis vel speculi potius quam scopum vivum indicant. Effectus coniunctus est sarcina quae nihil observabile in plerisque ambitus inspectionis agit et collectionem suam totam tantum ubi se in vero hospite continenti esse iudicat.

ExfiltrationData collecta hospitem per duos canales relinquunt. Primo, signum (vel signum signum) STIPES ad fixum situs interretialis collector, nomen machinae, UID numericum, directorium laboris, et usque ad 120 KB notitiarum collectarum portans. Deinde, notitiae in falsum "manifestum moduli" YAML includuntur et CONLOCO ut /api/moduli/ in servo destinato:

ecto_module:   name: "<flag-or-chunk-0>"   version: "1.0.0"   power_level: "<chunk-1>"   ship_deck: "<chunk-2>"   cargo_hold: "<chunk-3>"

Nomina agrorum manifestorum (gradus_potentiae, ponte navis, receptaculum) ornatus sunt — data furata intra valores litterarum vehuntur, quam ob rem monitor retialis videt quod videtur esse benigna immissio manifesti registri fasciculi potius quam manifesta effusio datorum. Canalis beacon plus portat: STIPES corpus ad situs interretialis nomen computatri, UID numericum, directorium laboris, et usque ad 120 KB massae collectae includit, ita ut etiam unus signum prospere detectus imaginem plenam praebeat. situs interretialis Est officium gratuitum inspectionis petitionum; eo utendo ut collectore, operator numquam propriam infrastructuram recipiendi pro illo canali sustinere debet, et petitiones relatae in arca servitii manent.

Manifestum CONLOCO indicem subsidiorum percurrit qui a pluribus incipit 127.0.0.1/localhost portus et deinde ad tres inscriptiones publicas in ` cadit154.57.164.0/24` spatium, subsistens ad primum terminum quod respondet cum statu 2xx. Ordo "localhost-first" congruens est cum descriptione propria "verdaccio testing" (registrum locale in loopback), sed receptacula publici-IP significant data relinquere hospitem quotiescumque loopback non auscultat — id est, in quavis machina quae non est propria machina probationum auctoris.

Timeline

Greges incrementum capacitatis incrementale potius quam detrimentum singulare ostendit. Secundum observationem actionum, non secundum horologium publicationis, eum ordinamus:

Training Sarcinae / Versiones MORES
Cursus matutinus coral-wraith 9999.0.x Numeri versionum inflati congruentes cum confusionis dependentiarum consiliis; enumeratio et exfil tempore institutionis.
Semen coral-wraith 1.0.0 Postinstallationem fasciculos id/env/flag colligit; unum PUT ad 154[.]57[.]164[.]71:30782signum ECT-472839
Celeris iteratio coral-wraith 1.0.1 → 6.0.0 Decenae emissiones intra horas; onus lucratur isAppWorker() porta, extractio credentialis IMDSv2, plena get-secret-value pivot, inspectio ambitus registri/viae, et indices duplicis receptaculi
Nomina parallela ecto-corsair-whisper-6f3b9 1.0.14–1.0.18 Eadem sarcina portata; webhook.site Index substitutionis pharorum et punctorum terminalium multiplex
Variantes ecto-rust-read-f3a9c1 1.0.1–1.0.2 Signa lavacri addita ECT-987654, ECT-654321, ECT-839201
Variantes ecto-corsair-flag-x9m4 1.0.0, ecto-nightly-spirit 1.1.0 Eadem sarcina portata, eadem C2 et signum

Proprietas propria gregis est eius celeritas edendi: potius quam unum fasciculum et unam versionem, idem nomen iterum atque iterum celeriter editur, unaquaeque versio parva variatione prioris, una cum paucis fratribus et sororibus aliter nominatis eundem onus portantibus. Intra... vix parvam stillam familia, codex in duas proximas vestigia divisus est — una series duas detectiones criticas excitans, altera tres (addita receptaculum lectionis fasciculorum) — sed ambae ad eandem sarcinam resolvuntur; differentia est derivatio codicis, non furca behavioralis. Versiones... vix parvam stillam ultra ambitum analysatum (usque ad minimum 1.0.25 tempore scribendi) in registro vivo observatae sunt, et corallii spectrum nomen suam scalam versionis per eandem fenestram ascendere pergebat.

Indicia compromissi

Omnes indices infra ex fonte fasciculi in disco extracti sunt. Indices retiales deactivati ​​sunt.

Network

Indicis Partes
hxxp://154[.]57[.]164[.]71:30782 Scopus C2 PUT (coral-wraith)
hxxp://154[.]57[.]164[.]80:30543 C2 PUT subsidium (ecto-*)
hxxp://154[.]57[.]164[.]82:31250 C2 PUT subsidium (ecto-*)
hxxp://154[.]57[.]164[.]71:31289 C2 PUT subsidium (ecto-*)
hxxps://webhook[.]site/602a4c72-7033-4e28-92ea-dc66e59206e5 Collector pharorum
169[.]254[.]169[.]254/latest/... Lectio credentialis IMDSv2 (a parte scopi, metadata AWS)

Comportamentalis/fasciculus

Indicis Partes
"postinstall": "node postinstall.js" Vectorem instituere
ecto_module: YAML cum power_level / ship_deck / cargo_hold claves, Schema manifesti Exfil
Signa lavacri ECT-472839, ECT-987654, ECT-654321, ECT-839201 Segmentum viae C2 /api/modules/<marker>
isAppWorker() porta: hospes /^[0-9a-f]{12}$/, cwd continet /app/node_modules Conditio activationis
aws secretsmanager list-secrets super us-east-1, eu-west-1, eu-central-1 Enumeratio secretorum
HTB{...} regex abradere Messis vexilli capiendi

Copiae hash fasciculorum (SHA256, tempore analysis captae)

file sha256
coral-wraith/postinstall.js ce5ff035cfdfed1d0015446424b352c27b66bcb77e9fdb0a51e4245199146824
ecto-corsair-whisper-6f3b9 1.0.18/postinstall.js b58432acba376aa6976f0490d9a1c04257ccdbc856d8390260c50322d63e31c3

Attributio et habitus observatus

Quinque nomina fasciculorum sub duobus rationibus npm divulgata sunt, sed satis infrastructurae communicant ut unum gregem tractent: idem... ecto_modulus schema manifestum, idem ECT-472839 signum primarium labri, idem situs interretialis ID collectoris et terminationes C2 in eodem Quadrum 154.57.164.0/24`. Fasciculus seminum (`coral-wraith`), simplicior et sine portis) et ecto-familia clausa ergo tamquam iterationes in uno instrumento potius quam conatus sui iuris leguntur.

Fasciculi se, in versionibus posterioribus, describunt ut "Onus CTF ad probationem catenae commeatus Veraccio." Hanc appellationem tamquam rem observabilem proponimus, nec tamquam inventionem de proposito iterum proponimus. Quod codex facit, non ambiguum est et a modo quo appellatur independens: testimonia muneris IAM ex servitio metadatorum instantiae legit, secreta administrata per tres regiones AWS enumerat, et eventus ad inscriptionem IP publicam et collectorem webhook tertiae partis transmittit. Ars probationum vere loopback tantum non requireret indicem subsidiarium inscriptionum IP publicarum, lectiones testimoniorum IMDS, aut invocationes Secrets Manager trans regiones. Quia egressus et extensio testimoniorum realia sunt, versiones clausae tamquam malignae classificatae sunt.

Porta "container-only" (porta tantum in receptaculo) notabilissima ex parte operationis est. Est et mensura evasionis — silentium in computatris portatilibus et in "sandbox" analysis — et mensura designationis, tantum ubi munus reale IAM (Intelligent Access Management) et secreta viva maxime adesse probabile est, agens. Analystae qui haec fascicula in "sandbox" generico administrant nihil observarent; hoc solum sub nomine hospitis Dockeriano et via institutionis intra receptaculum se manifestat.

Expositio hic est divulgatio credentialium nubis et secretorum intra receptacula constructionis et temporis executionis. Credentialia muneris IAM ex IMDS sumpta quascumque permissiones illa munus tenet portat; secretmanager:ListaSecretorum (et quaelibet subsequens AccipeValoremSecretum) id ad secreta applicationum reposita extendit. Effusiones variabilium ambitus saepe tesseras registri, URL basis datorum, et claves API ferunt. In contextu CI vel continentis — quod ipsum porta eligit — una installatio transitiva unius ex his fasciculis sufficit ad illam materiam divulgandam.

Ectoplasm exemplari quod adhuc videmus congruit: onera tempore institutionis quae metadata nubis et secreta administrata potius quam fasciculos locales petunt, et quae se ipsas ita disponunt ut solum in ambitus magni pretii accendantur. Duae observationes defensivae sequuntur.

  • Forma detegi potest. Hamus institutionis npm/PyPI cuius graphum vocationum et API secretorum nubis attingit (procurator secretorum AWS, secreta gcloud, arca clavium az) vel inscriptio IMDS et receptaculum egressus e rete est angusta forma signorum altorum — fere numquam in legitimo scripto cycli vitae occurrit. Analysis fluxus statici id vexare potest sine dependentia ab ullo dominio specifico vel IP.
  • Durior ambitus id hebetat. IMDSv2 cum limite saltus 1 imponendo, onera continentium impeditur ne metadata instantiae attingant; munera IAM ad minimum privilegium definiendo, radium explosionis cuiuslibet credentialis quae effluit limitat; et installationes cum... –ignora-scripta In CI vectorem "install-hook" omnino removet pro fasciculis qui eo non indigent.

Defensoribus, probationes practicae sunt: ​​monitio de connexionibus exeuntibus e receptaculis aedificationis/CI ad inscriptiones IP publicas non in indice permissis per... install npm; observa accessum IMDS ex scriptis cycli vitae fasciculi oriundum; et quemvis hamum institutionis qui ad CLI nubis mittitur tamquam suspectum tracta donec aliter probetur.

Duae notae ulteriores huic gregi propriae. Primo, quia activatio ad ambitus receptaculorum restricta est, fasciculus qui iners apparet cum in statione laboris examinatur, adhuc in productione esse potest — examinatio nomen computatri receptaculi et condiciones semitae reproducere debet, vel fontem directe legere, potius quam in "installavi et nihil accidit" confidere. Secundo, usus servitii publici inspectionis petitionum ut collectoris pharorum significat partem datorum exfiltratorum recuperabilem esse posse ad responsum ad incidentes: organizatio quae unum ex his fasciculis in arbore dependentiae invenit ratiocinari potest de eo quod pharus prosperus contineret ex logica collectionis sarcinae utilis, et quascumque credentiales muneris IAM, tesseras registri, et secreta administrata quae ex ambitu constructionis vel executionis affecto attingi poterant, alternare debet. Rotatio credentialium, non remotio fasciculi, est remediatio operativa postquam installatio cucurrit.

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