PointBlank: PyPI RAT peidab C2 JSON-Bin teenuses

PointBlank: täisfunktsionaalne Pythoni RAT, mis haldas oma käskluskanalit tasuta märkmete majutamise teenuse kaudu

TL; DR

PyPI pakett nimega gcli-kontroll tarnis täieliku Windowsi kaugjuurdepääsu tööriista: klahvivajutuste logimine, veebikaamera ja mikrofoni jäädvustamine, lõikelaua jälgimine, brauseri mandaadiga juurdepääs, ekraanikontroll, püsivus, õiguste laiendamine ja ise reklaamitud "140+ käsku". See ei varjanud, mis see oli: paketi enda PyPI kokkuvõttes kirjeldati seda kui "kaugjuurdepääsu tööriista läbi npoint.io".

Detail, millel tasub peatuda, on see fraas "npoint.io kaudu." Selle asemel, et helistada koju spetsiaalsele serverile, kasutas implantaat npunkt[.]io (tasuta ja legitiimne teenus väikeste JSON-dokumentide majutamiseks) oma käskude ja juhtimiskanalina. Operaator kirjutab käsud JSON-kasti; implantaat küsitleb seda kasti, käivitab selle ja saadab tulemused tagasi. Pole vaja ründajale kuuluvat domeeni blokeerida ega uut IP-aadressi märgistada: liiklus läheb teenusele, mida arendajad iga päev kasutavad.

Umbes kolmeteistkümne ja poole tunniga avaldati kuus versiooni, millest igaüks oli eelmisest võimekam. Igaüks neist sai muusikapala. ml_ennustatud_ohutu automatiseeritud klassifikaatori poolt enne käsitsi läbivaatamist perekonna pahatahtlikuks ümberklassifitseerimist.

Rünnaku anatoomia

gcli-kontroll paigaldab impordipaketi gcli, 35-mooduliline Pythoni koodibaas. Installimise ajal pole vaja midagi ette võtta. hooks — selle aja jooksul ei tööta midagi pip installSee võimekus asub moodulites endis, see käivitatakse tööriista käivitamisel ja mooduli paigutus on nagu toote spetsifikatsioonileht:

VõimekusalaMoodulid
Peremehe jälgiminekeylog, webcam, audio, clipboard, desktop, monitoring
Volikirjad ja andmetele juurdepääsbrowser, forensics, fileops, transfer, users
Jalgealune ja eskaleeruminepersistence, elevator, registry, security
Hosti ja võrgu luuresystem, processes, network_config, wifi, bluetooth, netutils
Juhtimine ja kontrollclient, host, session, protocol, npoint, crypto, encrypt

Käsukanal on huvitav osa. Enamik kaugjuurdepääsu tööriistu jõuab operaatori hallatava serverini – IP-aadress, domeen, majutusteenuse pakkuja, millest saab aru anda ja võrguühenduseta eemaldada. gcli-kontroll kohtleb selle asemel tasuta JSON-bin teenus surnud lahtrina. n-punkt moodul loeb ja kirjutab väikeseid JSON-dokumente npunkt[.]io tavalise HTTPS-i kaudu; krüpto/krüptida moodulid pakivad vahetatud kasulikke koormusi nii, et prügikasti sisu ei ole lihttekstikäsklused. Tulemuseks on vahendatud, krüpteeritud edastamine:

  • Operaator saadab (krüpteeritud) käsu JSON-kasti.
  • Ohvrimasinal töötav implantaat küsitleb prügikasti saatmise tulemust, dekrüpteerib selle, käivitab ühe oma käskluskäitlejatest ja kirjutab (krüpteeritud) tulemuse tagasi.
  • Võrgumonitori jaoks räägib ohver lihtsalt npunkt[.]io — teenus, millel on õigustatud põhjus arendajate liikluses ilmuda.

Siin pole teise etapi allalaadimist ega segast laadurit: funktsioon on tervikuna, loetavas Pythonis ja ainus „peidetud“ osa on edastamise valik ja edastatud kasuliku koormuse krüptimine.

Miks on JSON-bin'i tühik on operatiivselt atraktiivne, tasub selgitada, sest see selgitab, miks me eeldame mustri uuesti nägemist:

  • Operaatorile kuuluvat lõpp-punkti pole. Pole vaja registreerida C2-domeeni, rentida VPS-i ja kaitsjal või registripidajal pole midagi arestida. pakend ei puuduta kanalit; eemaldamine kanal tähendab, et palutakse üldotstarbelisel SaaS-il kontrollida ühte dokumenti miljonite seast.
  • Mainepesu. Väljaminev HTTPS tuntud arendajateenusesse ei kaasne samasuguse mainekahjustusega nagu värske domeen või toores IP. Paljud väljuva andmevoo filtreerimise seadistused lubavad seda kaudselt.
  • Asünkroonia ja eitatavus. Küsitlusmudel – implantaat laadib dokumendi üles teatud intervalliga, mitte ei hoia avatud soklit – tekitab liikluse, mis näeb välja nagu perioodiline API küsitlus, mitte interaktiivne seanss. Dokumendi sisu krüptimine tähendab, et isegi analüütik, kes leiab prügikasti, näeb krüptitud teksti, mitte käskude loendit.
  • Triviaalne pöörlemineTeise prügikasti või täiesti teise märkmete/kleebide teenusesse kolimine on operaatori jaoks üherealine konfiguratsioonimuudatus. Kõik konkreetsele releele seatud blokeeritud nimekirjad on tarnimise hetkel aegunud.

Operaatori poolt aktsepteeritav kompromiss on läbilaskevõime ja latentsus: otseühendus on aeglasem ja väiksema ribalaiusega kui otseühendus. Jälgimis- ja juhtimissüsteemi puhul, mis annab enamasti lühikesi käske ja kogub tulemusi aja jooksul, on seda vahetust lihtne teha.

Timeline

Perekond eskaleerus kiiresti. Märgistatud versioonide piletite loomise ajatemplitega kogu vaadeldud kaar paikneb umbes kolmeteistkümne ja poole tunni sees ning skänneri enda tõendite arv kasvas koos koodiga – paarist märgistatud saidist esimeses versioonis neljateistkümneni viimases.

versioonEsmakordselt nähtud (UTC)märkused
0.1.02026-07-21 12:59Esialgne üleslaadimine; minimaalne märgistatud pind
0.5.02026-07-21 18:01Võimekus laieneb
0.2.02026-07-21 18:03(versioonide numeratsioon ei ole üleslaadimise järjekorraga monotoonne)
0.6.02026-07-22 00:44Laiem moodulite komplekt
0.7.02026-07-22 01:58Peaaegu täielik tööriistakomplekt
0.7.12026-07-22 02:28Uusim; 35 moodulit, täielik võimekus

Versiooninumbreid ei avaldatud ranges järjekorras, kuid suund on selge: esimene väike lõige ja seejärel kiire iteratsioon täisfunktsionaalse versiooni 0.7.1 suunas. See on aktiivses arenduses oleva projekti kuju, mis kasvab ja avaliku registri alla laaditakse, mitte ei tehta ühekordset mahakandmist.

Kompromissi näitajad

Kõik allolevad indikaatorid kinnitati ketta paketi sisu ja versiooni 0.7.1 deterministliku indikaatorite skaneerimise abil; ükski neist pole spekulatiivne.

KASUTUSALAIndikaator
Pakett (PyPI)gcli-control, versioonid 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1
Impordi pakettgcli
C2 releenpoint[.]io (JSON-bini tühik; krüpteeritud kasulikud koormused)
Deklareeritud hoidlagithub[.]com/gcli-control/gcli
Käitumuslik sõrmejälgÜhises asukohas olevad valvemoodulid: keylog, webcam, audio, clipboard, browser, lisaks püsivus, lift ja kliendi/hosti/protokolli käskluskiht ühes paketis
paigaldama hooksPuudub: funktsioon töötab tööriista käitusajal, mitte installimise ajal

Kaitsja märkus: tugevaim püsiv signaal ei ole domeen (relee host vahetub triviaalselt), vaid kujundada: üks pakett, mis koondab kolm või enam erinevat hostijärelevalve primitiivi ja suunab käsu/vastuse tsükli läbi avaliku sisu majutamise teenuse. Blokeerimine npunkt[.]io Otsene teavitamine on enamiku töökodade jaoks ebapraktiline; ootamatu protsessi kohta, mis nii sisendseadmeid jäädvustab kui ka JSON-bin-teenusega suhtleb, on palju töökindlam.

Täheldatud käitumine ja raamistamine

Selle valimi muudavad ebatavaliseks kaks asja ja mõlemad on pigem vaadeldavad faktid kui motiivi kohta tehtud järeldused.

See reklaamis ennast ise. PyPI-s levitatud paketi kokkuvõte loetles võimalused lihtsas keeles – kaugjuurdepääs, töölaua haldamine, kasutajate haldamine, veebikaamera, heli, klahvilogija, püsivus, brauseriandmed, WiFi, register, „140+ käsku“. Koodi ei püütud esitada ehitusabilise, CLI-ümbrise ega tehisintellekti agendi utiliidina, mis on avalikes registrites levinum maskeering. Küsimusele, kas see avatus peegeldab juurdepääsukontrollideta avaldatud punase meeskonna tööriista või midagi muud, ei vasta ainult paketi sisu; kindel on see, et toimiv, üldotstarbeline kaugjuurdepääsu ja jälgimise tööriistakomplekt oli igaühele installitav, kellel oli pip.

See tugines usaldusele healoomulise teenuse vastu. Kasutamine npunkt[.]io kuna edastamine on määrav tehnika. See on näide laiemast mustrist – C2 suunamine legitiimse SaaS-i kaudu (kleepimissaidid, JSON-kastid, vestlusveebipostitused)hooks, pilvedokumendid), nii et pahatahtlik liiklus sulandub tavapärase arendaja tegevusega ja puudub operaatorile kuuluv lõpp-punkt, mida arestida. Relee kasulik koormus krüpteeriti, nii et juhuslik vaatleja ei loeks prügikasti sisu käskudena.

Väljaandja signaalid on õhukesed ja üldised. Pakett kuulutas välja autor „gcli kaastööliste” ja MIT-litsentsi ning suunas oma avalehe ja repositooriumi väljad aadressile github[.]com/gcli-control/gcliMiski sellest ei ole kinnitus: autori string on vabatekst, MIT-litsentsi päis ei maksa midagi ja repositooriumi URL paketi metaandmetes on väide, mitte päritolutõend. Muster – uhiuus nimi, üldine kollektiivne autor ja paketi ümber loodud enesele viitav org/repo – näeb välja selline projekt, kui see on loodud spetsiaalselt koodi kandmiseks, mitte aga väljakujunenud tööriist, millel on juhtumisi välja arendatud kaugjuhtimisfunktsioon. Märgime need tähelepanekuteks; need on kooskõlas otstarbekaks loodud distributsiooniga, kuid ei loo seda iseenesest.

Me kirjeldame seda korraldust pahatahtlikuna võimekuse ja edastusvõimaluse põhjal: täielik, käivitatav kaugjuurdepääsu ja jälgimise implantaat, mida levitatakse avaliku paketiindeksi kaudu salajase relee abil. Me ei määra sihtmärki ega motiivi.

Mõju, trendid ja mida kaitsjad saavad teha

Varjamisele orienteeritud triaaži pimeala. Paljud automatiseeritud pakettide triaaživõtmed on varjata signaalid tüüpiline registri pahavara — hägustatud plekid, installimise aeg hooks, volituste kogumise ühe lausega laused. Pakett, mis on lihtsalt avalikult ROT, millel on puhas loetav kood ja installikonks puudub, ei esita ühtegi neist signaalidest ja suudab mööda hiilida heuristikatest, mis eeldavad varjamist. Signaalid, mis seda klassi usaldusväärselt tabavad, on pigem struktuurilised kui varjamisel põhinevad: võimekuste loendus (kui palju erinevaid hostijärelevalve primitiive ühes paketis eksisteerib) ja C2-kuju analüüs (käskluse/vastuse tsükkel, mis suunatakse läbi üldotstarbelise sisumajutusteenuse). Need kontrollid käivituvad olenemata sellest, kui aus või murettekitav pakend on.

SaaS-as-C2 trend. Legitiimse hostimisteenuse kuritarvitamine blokeeriva funktsioonina pole uus asi, kuid see toimib endiselt, sest teenuse blokeerimise kaitsekulud on kõrged ja teenuste vahetamise ründekulud on peaaegu nullilähedased. Oodake veelgi sellist. Konkreetsetele halbadele domeenidele suunatud võrgukaitsed aeguvad kohe; käitumisreeglid („see protsess loeb lõikelaualt ja veebikaamerast andmeid ning suhtleb seejärel märkmete majutamise API-ga“) mitte.

Betooni tuvastamise visand. Vastupidav reegel ei nimeta npunkt[.]io üldse. See ühendab kaks tähelepanekut, mis on eraldi levinud, kuid ühiselt haruldased tavalisel arendajal või CI-hostil:

hoiatus, kui üks protsess ühe seansi jooksul mõlemad:
(A) pääseb juurde hosti jälgimisprimitiivile — sisendseadmele (klaviatuuri/hiire konks), kaamerale, mikrofonile, ekraanipildile, lõikelaua lugemistsüklile või brauseri mandaadisalvestusele („Login Andmed" / "Kohalik olek" / DPAPI); JA
(B) teeb väljaminevaid päringuid avalikule sisumajutus- / kleepimis- / JSON-bin- / chat-webhook-teenusele ja seejärel esitab need läbivaatamiseks, olenemata punktis (B) nimetatud konkreetsest teenusest.

Kumbki pool pole üksi kahtlane: palju legitiimseid tööriistu teeb ekraanipilte ja palju postitab JSON-i hostimis-API-sse. Ühe lühiajalise protsessi sees olev ühendus on signaal ja see jääb ellu igasuguse edastamise rotatsiooni korral.

Praktilised sammud meeskondadele:

  • Käsitle avalike pakettide installimist arendaja ja CI hostides täitmispiirina, mitte mugavusena – RAT ehitusagendil on RAT teie saladustega.
  • Eelista lubatud sisemisi peegleid; pakett, mis on sõna-sõnalt nimetatud kaugjuhtimispuldi jaoks ja kirjeldab klahvilogijat, ei tohiks kunagi ettevõtte indeksit lahendada.
  • Hoiatus teemal kombinatsioon — sisendseade või ekraanipilt pluss väljaminev liiklus sisu/kleepimise/JSON-bin teenusesse — mitte üksikul primitiivil, millel on eraldi healoomulisi kasutusvõimalusi.
  • Ärge tuginege laia hostipääsuvõimalusega pakettide puhul terminali otsusena automaatsele „ohutuse” hindele; suunake need inimesele ülevaatamiseks.

Paketiperekond on liigitatud pahatahtlikuks ja suunatud registrist eemaldamisele. Kuna releepõhine C2 ei jäta ühtegi operaatori omanduses olevat hosti kaotusvallu, peitub püsiv kaitsev väärtus ülaltoodud käitumuslikus sõrmejäljes, mitte üheski blokeeritud nimekirja kirjes.

sca-tööriistad-tarkvara-kompositsiooni-analüüsi-tööriistad
Tarkvarariskide prioriseerimine, leevendamine ja turvamine
Hankige oma tasuta konto.
Krediitkaarti pole vaja.

Turvaline tarkvaraarendus ja -tarne

Xygeni tootekomplektiga