PointBlank: PyPI RAT slēpj C2 JSON-Bin pakalpojumā

PointBlank: pilnvērtīgs Python RAT, kas savu komandu kanālu darbināja, izmantojot bezmaksas piezīmju mitināšanas pakalpojumu

TL; DR

PyPI pakotne ar nosaukumu gcli-control piegādāja pilnīgu Windows attālās piekļuves rīku: taustiņsitienu reģistrēšanu, tīmekļa kameras un mikrofona uztveršanu, starpliktuves uzraudzību, piekļuvi pārlūkprogrammas akreditācijas datiem, ekrāna kontroli, noturību, privilēģiju paaugstināšanu un pašreklamētu "vairāk nekā 140 komandu". Tas neslēpa, kas tas ir: pakotnes PyPI kopsavilkumā tas tika raksturots kā "attālās piekļuves rīks, izmantojot npoint.io".

Detaļa, pie kuras ir vērts apstāties, ir šī frāze "izmantojot npoint.io." Tā vietā, lai piezvanītu uz mājām speciālam serverim, implants tika izmantots npunkts[.]io (bezmaksas, likumīgs pakalpojums nelielu JSON dokumentu mitināšanai) kā tā komandu un vadības relejs. Operators raksta komandas JSON tvertnē; implants aptaujā šo tvertni, izpilda to un raksta rezultātus atpakaļ. Nav jābloķē uzbrucējam piederošs domēns, nav jāatzīmē jauna IP adrese: datplūsma nonāk pakalpojumā, ko izstrādātāji izmanto katru dienu.

Aptuveni trīspadsmitarpus stundu laikā tika publicētas sešas versijas, katra no tām spējīgāka par iepriekšējo. Katra no tām tika atskaņota ar skaņu celiņu. ml_paredzamais_drošais pirms manuālas pārskatīšanas automatizēts klasifikators pārklasificēja saimi kā ļaunprātīgu.

Uzbrukuma anatomija

gcli-control instalē importēšanas pakotni gcli, 35 moduļu Python koda bāze. Nav instalēšanas laika ierobežojumu. hooks — nekas nedarbojas laikā pip instalēšanaŠī iespēja atrodas pašos moduļos, tiek izsaukta, tiklīdz rīks darbojas, un moduļa izkārtojums ir līdzīgs produkta specifikācijas lapai:

Spēju zonaModuļi
Saimnieka uzraudzībakeylog, webcam, audio, clipboard, desktop, monitoring
Akreditācijas dati un piekļuve datiembrowser, forensics, fileops, transfer, users
Stabilitāte un eskalācijapersistence, elevator, registry, security
Resursdatora un tīkla izlūkošanasystem, processes, network_config, wifi, bluetooth, netutils
Komandvadība un kontroleclient, host, session, protocol, npoint, crypto, encrypt

Komandkanāls ir interesanta daļa. Lielākā daļa attālās piekļuves rīku sasniedz serveri, kuru kontrolē operators — IP adresi, domēnu, mitināšanas pakalpojumu sniedzēju, par kuru var ziņot un atslēgt savienojumu. gcli-control tā vietā izturas pret bezmaksas JSON-bin pakalpojums kā nederīgs nomešanas fails. npunkts modulis lasa un raksta mazus JSON dokumentus npunkts[.]io izmantojot parasto HTTPS; šifrēšanas/šifrēt Moduļi ietver apmainītos vērtumus, lai atkritumu tvertnes saturs nebūtu vienkārša teksta komandas. Iegūtais efekts ir starpnieciska, šifrēta pārraide:

  • Operators ievieto (šifrētu) instrukciju JSON tvertnē.
  • Implants, kas darbojas upura resursdatorā, aptaujā šo bin, atšifrē, izpilda vienu no komandu apstrādātājiem un ieraksta (šifrēto) rezultātu atpakaļ.
  • Tīkla monitoram upuris vienkārši sarunājas ar npunkts[.]io — pakalpojums ar likumīgu iemeslu parādīties izstrādātāju datplūsmā.

Šeit nav otrās pakāpes lejupielādes un nav maskēta ielādētāja: iespēja tiek piegādāta pilnībā, lasāmā Python valodā, un vienīgā “slēpšana” ir releja izvēle un relejā pārraidīto vērtumu šifrēšana.

Ir vērts paskaidrot, kāpēc JSON-bin dead-drop ir operacionāli pievilcīgs, jo tas izskaidro, kāpēc mēs sagaidām, ka atkal redzēsim šo modeli:

  • Nav operatora īpašumā esoša galapunkta. Nav jāreģistrē C2 domēns, nav jāīrē VPS, un aizstāvim vai reģistratūrai nav ko konfiscēt. pakete nepieskaras kanālam; noņemšana kanāls nozīmē lūgt vispārējas nozīmes SaaS uzraudzīt vienu dokumentu starp miljoniem.
  • Reputācijas atmazgāšana. Izejošajam HTTPS savienojumam ar labi zināmu izstrādātāja pakalpojumu nav tādas reputācijas sankcijas kā jaunam domēnam vai neapstrādātai IP adresei. Daudzas izejošās plūsmas filtrēšanas iestatīšanas to netieši atļauj.
  • Asinhronitāte un noliedzamība. Aptaujas modelis — implants ielādē dokumentu noteiktā intervālā, nevis tur atvērtu ligzdu — rada datplūsmu, kas izskatās pēc periodiskas API aptaujas, nevis interaktīvas sesijas. Dokumenta satura šifrēšana nozīmē, ka pat analītiķis, kurš atrod atkritumu tvertni, redz šifrētu tekstu, nevis komandu sarakstu.
  • Triviāla rotācijaPārvietošanās uz citu tvertni vai pavisam citu piezīmju/ielīmēšanas pakalpojumu operatoram ir vienas rindas konfigurācijas maiņa. Jebkurš bloķēšanas saraksts, kas piesaistīts konkrētajam relejam, ir novecojis no tā piegādes brīža.

Operatora pieņemamais kompromiss ir caurlaidspēja un latentums: nepārtrauktas darbības relejs ir lēnāks un ar mazāku joslas platumu nekā tiešs savienojums. Novērošanas un kontroles implantam, kas pārsvarā izdod īsas komandas un laika gaitā apkopo rezultātus, šādu kompromisu ir viegli veikt.

Timeline

Situācija ģimenē strauji saasinājās. Atzīmēto versiju biļešu izveides laika zīmogi visu novēroto loku novieto aptuveni trīspadsmit ar pusi stundu laikā, un skenera paša pierādījumu skaits pieauga līdz ar kodu — no dažām atzīmētām vietnēm pirmajā versijā līdz četrpadsmit jaunākajā.

versijaPirmo reizi redzēts (UTC)Piezīmes
0.1.02026-07-21 12:59Sākotnējā augšupielāde; minimāla atzīmēta virsma
0.5.02026-07-21 18:01Spēju paplašināšanās
0.2.02026-07-21 18:03(versiju numerācija nav monotona ar augšupielādes secību)
0.6.02026-07-22 00:44Plašāks moduļu komplekts
0.7.02026-07-22 01:58Gandrīz pilnīgs rīku komplekts
0.7.12026-07-22 02:28Jaunākais; 35 moduļi, pilnas iespējas

Versiju numuri netika publicēti stingrā secībā, taču virziens ir skaidrs: neliels pirmais samazinājums, pēc tam strauja iterācija virzienā uz pilnvērtīgo 0.7.1 versiju. Šādi izskatās projekts, kas aktīvi tiek izstrādāts un augot tiek ievietots publiskajā reģistrā, nevis vienreizējs samazinājums.

Kompromisa rādītāji

Visi tālāk norādītie indikatori tika apstiprināti, izmantojot diskā esošo pakotnes saturu un deterministisku 0.7.1 versijas indikatoru skenēšanu; neviens no tiem nav spekulatīvs.

VeidsIndikators
Pakotne (PyPI)gcli-control, versijas 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1
Importēt paketigcli
C2 relejsnpoint[.]io (JSON-bin dead-drop; šifrēta vērtība)
Deklarētā repozitorijagithub[.]com/gcli-control/gcli
Uzvedības pirkstu nospiedumsKopīgi izvietoti novērošanas moduļi: keylog, webcam, audio, clipboard, browser, kā arī noturība, lifts un klienta/resursdatora/protokola komandu slānis vienā paketē
instalēt hooksNav: iespēja darbojas rīka izpildes laikā, nevis instalēšanas laikā

Aizstāvja piezīme: spēcīgākais noturīgais signāls nav domēns (releja resursdators rotē triviāli), bet gan forma: viena pakotne, kas apvieno trīs vai vairākus atšķirīgus resursdatora uzraudzības primitīvus un novirza komandu/atbildes cilpu caur publisku satura mitināšanas pakalpojumu. Bloķēšana npunkts[.]io Tieša brīdināšana lielākajai daļai veikalu ir nepraktiska; brīdināšana par negaidītu procesu, kas gan uztver ievades ierīces, gan sazinās ar JSON-bin pakalpojumu, ir daudz stabilāka.

Novērotā uzvedība un kadrēšana

Šo paraugu neparastu padara divas lietas, un abas ir novērojami fakti, nevis secinājumi par motīvu.

Tas reklamēja sevi. PyPI izplatītajā pakotnes kopsavilkumā vienkāršā valodā tika uzskaitītas iespējas — attālā piekļuve, darbvirsmas vadība, lietotāju pārvaldība, tīmekļa kamera, audio, taustiņu reģistrētājs, saglabāšana, pārlūkprogrammas dati, Wi-Fi, reģistrs, “vairāk nekā 140 komandas”. Nebija mēģinājuma kodu pasniegt kā veidošanas palīgu, komandrindas saskarnes apvalku vai mākslīgā intelekta aģenta utilītu, kas ir biežāk sastopamais maskējums, ko redzam publiskajos reģistros. Vai šī atvērtība atspoguļo sarkanās komandas rīku, kas publicēts bez piekļuves kontroles, vai kaut ko citu, ir jautājums, ko neatrisina tikai pakotnes saturs; skaidrs ir tas, ka funkcionējošu, universālu attālās piekļuves un uzraudzības rīku komplektu varēja instalēt ikviens, kam bija pip.

Tas balstījās uz uzticēšanos labdabīgam pakalpojumam. Izmantojot npunkts[.]io jo relejs ir noteicošā metode. Tas ir plašāka modeļa piemērs — C2 maršrutēšana caur likumīgu SaaS (ielīmēšanas vietnes, JSON atkritumu tvertnes, tērzēšanas tīmekļa vietnes)hooks, mākoņa dokumenti), lai ļaunprātīgā datplūsma saplūstu ar parasto izstrādātāja darbību un nebūtu operatora piederoša galapunkta, ko konfiscēt. Releja lietderīgā slodze tika šifrēta, lai atkritumu tvertnes saturs netiktu nolasīts kā komandas nejaušam novērotājam.

Izdevēja signāli ir vāji un vispārīgi. Paketē tika deklarēts autors “gcli līdzstrādnieku” un MIT licences, un norādīja savas mājaslapas un repozitorija laukus uz github[.]com/gcli-control/gcliNekas no tā nav verifikācija: autora virkne ir brīvs teksts, MIT licences galvene nemaksā neko, un repozitorija URL pakotnes metadatos ir apgalvojums, nevis izcelsmes pierādījums. Šis modelis — pavisam jauns nosaukums, vispārējs kolektīvs autors un pašreferenciāla org/repozitorijs, kas izveidots ap pakotni — ir tas, kā izskatās projekts, kad tas ir īpaši izveidots koda nesējai, nevis kā izveidots rīks, kam ir izveidota attālinātas vadības funkcija. Mēs tos atzīmējam kā novērojumus; tie atbilst, bet paši par sevi nenosaka mērķtiecīgi izveidotu izplatīšanu.

Mēs raksturojam šo rīcību kā ļaunprātīgu, pamatojoties uz tās iespējām un piegādi: pilnīgs, darbināms attālās piekļuves un novērošanas implants, kas izplatīts publiskā pakotņu indeksā ar slepenu releju. Mēs nenorādām mērķi vai motīvu.

Ietekme, tendences un ko aizstāvji var darīt

Aklā zona uz maskēšanos orientētai triāžai. Daudz automatizētu pakotņu triāžas atslēgu uz noslēpt signāli par tipiska reģistra ļaunprogrammatūra — apmulsināti blobi, instalēšanas laiks hooks, akreditācijas datu vākšanas vienrindas. Pakete, kas ir vienkārši atklāti ŽURKA, ar tīru, lasāmu kodu un bez instalēšanas pieslēguma, nesniedz nevienu no šīm norādēm un var paslīdēt garām heuristikām, kas sagaida slēpšanu. Signāli, kas droši uztver šo klasi, ir strukturāli, nevis uz slēpšanu balstīti: spēju skaitīšana (cik dažādu resursdatora uzraudzības primitīvu pastāv vienā paketē) un C2 formas analīze (komandas/atbildes cilpa, kas novirzīta caur vispārējas nozīmes satura mitināšanas pakalpojumu). Šīs pārbaudes tiek aktivizētas neatkarīgi no tā, cik godīgs vai apgrūtināta iepakojums ir.

SaaS kā C2 tendence. Likumīga mitināšanas pakalpojuma ļaunprātīga izmantošana kā nekontrolējama metode nav nekas jauns, taču tā turpina darboties, jo pakalpojuma bloķēšanas aizsardzības izmaksas ir augstas, bet pakalpojumu pārslēgšanas ofensīvās izmaksas ir gandrīz nulles. Sagaidiet arvien vairāk šādu gadījumu. Tīkla aizsardzība, kas saistīta ar konkrētiem sliktiem domēniem, nekavējoties noveco; uzvedības noteikumi ("šis process nolasa starpliktuvi un tīmekļa kameru un pēc tam sazinās ar piezīmju mitināšanas API") nedarbojas.

Betona noteikšanas skice. Izturīgais noteikums nenosauc npunkts[.]io vispār. Tas apvieno divus novērojumus, kas atsevišķi ir bieži, bet kopā reti sastopami parastā izstrādātāja vai CI resursdatora gadījumā:

brīdināt, ja viens process vienas sesijas laikā veic abus:
(A) piekļūst resursdatora uzraudzības primitīvam — ievades ierīcei (tastatūrai/peles āķim), kamerai, mikrofonam, ekrāna attēlam, starpliktuves lasīšanas cilpai vai pārlūkprogrammas akreditācijas datu krātuvei ("Login "Dati" / "Vietējais štats" / DPAPI); UN
(B) veic izejošos pieprasījumus publiskam satura mitināšanas/ielīmēšanas/JSON-bin/chat-webhook pakalpojumam un pēc tam iesniedz tos pārskatīšanai neatkarīgi no konkrētā pakalpojuma (B) punktā.

Neviena no pusēm nav aizdomīga pati par sevi: daudzi likumīgi rīki uzņem ekrānuzņēmumus un daudzi publicē JSON uz mitināšanas API. Savienojums viena īslaicīga procesa ietvaros ir signāls, un tas izdzīvo jebkuru retranslācijas rotāciju.

Praktiski soļi komandām:

  • Uztveriet publisku pakotņu instalēšanu izstrādātāju un CI resursdatoros kā izpildes robežu, nevis ērtības — RAT būvēšanas aģentā ir RAT ar jūsu noslēpumiem.
  • Dodiet priekšroku atļauto iekšējo spoguļu sarakstam; pakotnei, kas burtiski nosaukta tālvadības pults vārdā un apraksta taustiņinstrumentu reģistrētāju, nekad nevajadzētu ģenerēt rezultātus korporatīvajā indeksā.
  • Brīdinājums par kombinācija — ievades ierīce vai ekrāna attēls, kā arī izejošā datplūsma uz satura/ielīmēšanas/JSON-bin pakalpojumu —, nevis uz jebkuru atsevišķu primitīvu, kam ir labdabīgi pielietojumi atsevišķi.
  • Nepaļaujieties uz automatizētu “drošības” vērtējumu kā termināla spriedumu pakotnēm ar plašām resursdatora piekļuves iespējām; novirziet tās uz cilvēka pārskatīšanu.

Pakotņu saime ir klasificēta kā ļaunprātīga un nosūtīta reģistra noņemšanai. Tā kā uz releju balstīta C2 neatstāj nevienu operatora īpašumā esošu resursdatoru bezpalīdzības situācijā, ilgstošā aizsardzības vērtība ir iepriekš minētajā uzvedības pirkstu nospiedumā, nevis kādā atsevišķā bloķēšanas saraksta ierakstā.

sca-tools-software-composition-analysis-tools
Prioritizējiet, novērsiet un aizsargājiet savus programmatūras riskus
Iegūstiet savu bezmaksas kontu.
Nepieciešama kredītkarte.

Nodrošiniet programmatūras izstrādi un piegādi

ar Xygeni produktu komplektu