PointBlank: PyPI RAT-ek C2 ezkutatzen du JSON-Bin zerbitzu batean

PointBlank: Python RAT oso bat, bere komando-kanala doako oharrak ostatatzeko zerbitzu baten bidez exekutatzen zuena.

TL; DR

izeneko PyPI pakete bat gcli-kontrola Windows-ek urruneko sarbide tresna oso bat bidali zuen: teklak sakatzean erregistroa, webcam eta mikrofonoaren harrapaketa, arbelaren monitorizazioa, arakatzailearen kredentzialen sarbidea, pantailaren kontrola, iraunkortasuna, pribilegioen igoera eta auto-iragarkitutako "140+ komando". Ez zuen ezkutatzen zer zen: paketearen PyPI laburpenak "Urruneko sarbide tresna" gisa deskribatzen zuen. npoint.io".

Geldialdi bat merezi duen xehetasuna esaldi hori da "npoint.io bidez." Zerbitzari dedikatu batera deitu beharrean, erabilitako inplantea npoint[.]io (JSON dokumentu txikiak ostatatzeko doako eta zilegizko zerbitzu bat) bere komando- eta kontrol-errele gisa. Operadoreak komandoak JSON ontzi batean idazten ditu; inplanteak ontzi hori galdekatzen du, exekutatzen du eta emaitzak itzultzen ditu. Ez dago erasotzailearen jabetzako domeinurik blokeatzeko, ezta markatzeko IP berririk ere: trafikoa garatzaileek egunero erabiltzen duten zerbitzu batera doa.

Sei bertsio argitaratu ziren hamahiru ordu eta erdi ingurutan, bakoitza aurrekoa baino gaitasun handiagoarekin. Horietako bakoitza puntuatu zen ml_aurreikusitako_segurua sailkatzaile automatizatu batek eskuzko berrikuspenak familia gaizto gisa berriro sailkatu aurretik.

Erasoaren anatomia

gcli-kontrola inportazio paketea instalatzen du gcli, 35 moduluko Python kode-base bat. Ez dago instalazio-denborarik hooks — ez da ezer martxan bitartean pip instalatuGaitasuna moduluetan bertan dago, tresna exekutatzen denean erabiltzen da, eta moduluen diseinua produktuaren zehaztapen-orri baten antzekoa da:

Gaitasun-eremuaModuluak
Ostalariaren zaintzakeylog, webcam, audio, clipboard, desktop, monitoring
Kredentzial eta datuetarako sarbideabrowser, forensics, fileops, transfer, users
Oin-euskarria eta eskaladapersistence, elevator, registry, security
Ostalari eta sarearen berrezarrisystem, processes, network_config, wifi, bluetooth, netutils
Agintea eta kontrolaclient, host, session, protocol, npoint, crypto, encrypt

Komando-kanala da zati interesgarria. Urruneko sarbide-tresna gehienak operadoreak kontrolatzen duen zerbitzari batera iristen dira — IP bat, domeinu bat, jakinarazi eta lineaz kanpo jar daitekeen hosting hornitzaile bat. gcli-kontrola tratatzen du bat, horren ordez doako JSON-bin zerbitzua deaddrop gisa. The n puntu Moduluak JSON dokumentu txikiak irakurri eta idazten ditu npoint[.]io HTTPS arruntaren bidez; crypto/encrypt Moduluek trukatutako kargak biltzen dituzte, edukiontziaren edukia ez izateko testu arrunteko komandoak. Efektua bitartekaritza bidezko errelebo enkriptatu bat da:

  • Operadoreak (enkriptatutako) instrukzio bat JSON bin batean sartzen du.
  • Biktima den ostalarian exekutatzen ari den inplanteak ontzi hori galdekatzen du, deszifratzen du, bere komando kudeatzaileetako bat exekutatzen du eta (zifratutako) emaitza idazten du berriro.
  • Sareko monitore batentzat, biktima hitz egiten ari da besterik gabe npoint[.]io — garatzaileen trafikoan agertzeko arrazoi legitimoa duen zerbitzua.

Ez dago bigarren faseko deskargarik edo kargatzaile nahasirik hemen: gaitasuna osorik dator, Python irakurgarrian, eta "ezkutatuta" dagoen gauza bakarra erreleboaren aukera eta errelebo bidezko kargaren enkriptatzea da.

Zergatik den JSON-bin dead-drop operatiboki erakargarria azaltzea merezi du, eredua berriro ikustea zergatik espero dugun azaltzen baitu:

  • Ez dago operadorearen jabetzako amaiera-punturik. Ez dago erregistratzeko C2 domeinurik, ez alokatzeko VPSrik, eta ez dago defendatzaile edo erregistratzaile batek bahitzeko ezer. Domeinuaren baja. pakete ez du kanala ukitzen; kendu kanalean SaaS orokor bati milioika dokumenturen artean bat kontrolatzea eskatzea esan nahi du.
  • Ospearen zuritzea. Garatzaile-zerbitzu ezagun batera egindako HTTPS irteerak ez du domeinu berri edo IP gordin batek izango lituzkeen ospe-zigorrarik. Irteerako iragazki-konfigurazio askok inplizituki baimentzen dute.
  • Asinkronia eta ukagarritasuna. Inkesta-eredu batek —inplanteak dokumentu bat tarte batean eskuratzen du socket ireki bat eduki beharrean— aldizkako API inkesta baten itxura duen trafikoa sortzen du, ez saio interaktibo batena. Dokumentuaren edukia enkriptatzeak esan nahi du zakarrontzia aurkitzen duen analista batek ere testu zifratua ikusten duela, ez komando-zerrenda bat.
  • Errotazio hutsalaBeste ontzi batera edo ohar/itsatsi zerbitzu batera aldatzea konfigurazio aldaketa lerro bakarrekoa da operadorearentzat. Errele zehatz bati lotutako edozein bloke-zerrenda zaharkituta dago bidaltzen den unean bertan.

Operadoreak onartzen duen konpromisoa errendimendua eta latentzia da: konexio hila duen errelebo bat konexio zuzen bat baino motelagoa eta banda-zabalera txikiagoa du. Zaintza eta kontrol inplante batentzat, gehienbat agindu laburrak ematen dituena eta emaitzak denboran zehar biltzen dituena, konpromiso hori erraza da egitea.

Timeline

Familia azkar hazi zen. Markatutako bertsioen txartelen sorrera-denbora-zigiluek behatutako arku osoa hamahiru ordu eta erdi inguruko epean kokatzen dute, eta eskanerraren beraren froga kopurua kodearekin batera hazi zen —lehen bertsioan markatutako gune pare batzuetatik azkenekoan hamalaura.

BertsioLehen aldiz ikusia (UTC)Ohar
0.1.02026-07-21 12:59Hasierako igoera; gutxieneko markatutako azalera
0.5.02026-07-21 18:01Gaitasuna zabaltzen da
0.2.02026-07-21 18:03(bertsioen zenbakitzea ez da monotonikoa igoera-ordenarekin)
0.6.02026-07-22 00:44Modulu multzo zabalagoa
0.7.02026-07-22 01:58Tresna-tresna ia osoa
0.7.12026-07-22 02:28Azkena; 35 modulu, gaitasun osoa

Bertsio zenbakiak ez ziren ordena zorrotzean argitaratu, baina norabidea argia da: lehen mozketa txiki bat, eta ondoren iterazio azkarra 0.7.1 bertsio osoa lortzeko. Hau da garapen aktiboan dagoen proiektu baten forma, hazten doan heinean erregistro publiko batera bidaltzen dena, ez behin bakarrik kaleratua.

Konpromisoaren adierazleak

Beheko adierazle guztiak diskoan dagoen paketearen edukiarekin eta 0.7.1 bertsioaren adierazle-eskaneaketa deterministarekin baieztatu dira; bat ere ez da espekulatiboa.

MotaAdierazlea
Paketea (PyPI)gcli-control, 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1 bertsioak
Inportatu paketeagcli
C2 erreleboanpoint[.]io (JSON-bin dead-drop; enkriptatutako kargak)
Adierazitako biltegiagithub[.]com/gcli-control/gcli
Jokabide-hatz-markaZaintza-moduluak batera kokatuta: keylog, webcam, audio, clipboard, browser, gehi iraunkortasuna, igogailua eta bezero/ostalari/protokolo komando geruza pakete bakarrean
Instalatu hooksBat ere ez: gaitasuna tresnaren exekuzio-garaian exekutatzen da, ez instalazioan zehar

Defendatzailearen oharra: seinale iraunkorrik indartsuena ez da domeinua (errele-ostalari bat apur bat biratzen da) baizik moldatzeko: hiru edo gehiago ostalarien zaintza primitibo bereizi biltzen dituen pakete bakarra komando/erantzun begizta bat edukiak ostatatzen dituen zerbitzu publiko baten bidez bideratzen du. Blokeoa npoint[.]io Zuzenean erabiltzea ez da praktikoa denda gehienentzat; sarrera-gailuak jasotzen dituen eta JSON-bin zerbitzu batekin komunikatzen den prozesu ustekabe baten berri ematea askoz sendoagoa da.

Behatutako portaera eta markoa

Bi gauzek egiten dute lagin hau ezohiko, eta biak beha daitezkeen gertaerak dira, motiboari buruzko ondorioak baino gehiago.

Bere burua iragarri zuen. PyPI-n banatutako paketearen laburpenak gaitasunak hizkuntza arruntean zerrendatzen zituen: urruneko sarbidea, mahaigaineko kontrola, erabiltzaileen kudeaketa, webcam-a, audioa, keylogger-a, iraunkortasuna, arakatzailearen datuak, WiFi-a, erregistroa, "140+ komando". Ez zen saiakerarik egin kodea eraikuntza-laguntzaile, CLI bilgarri edo IA-agente utilitate gisa pasatzeko, hau baita erregistro publikoetan ikusten dugun mozorro ohikoena. Irekitasun horrek sarbide-kontrolik gabe argitaratutako talde gorri baten tresna bat edo beste zerbait islatzen duen ala ez, paketearen edukiak berak ez du konpontzen; ziurra dena da urruneko sarbide eta zaintza tresna-multzo orokor funtzional bat edonork instala zezakeela... PIP.

Zerbitzu onbera batean konfiantzan oinarritzen zen. erabiliz npoint[.]io erreleboa teknika definitzailea baita. Eredu zabalago baten adibidea da — C2 SaaS legitimo baten bidez bideratzea (itsatsi guneak, JSON bin-ak, txat weba)hooks, hodeiko dokumentuak) trafiko gaiztoa garatzaileen ohiko jardueran nahasteko eta operadorearen jabetzako amaiera-punturik ez egoteko. Erreleboko kargak enkriptatuta zeuden, beraz, ontziko edukia ez zen komando gisa irakurriko behatzaile arrunt batek.

Argitaratzailearen seinaleak meheak eta generikoak dira. Paketeak deklaratu zuen Egilea "gcli kolaboratzaileen" eta MIT lizentzia baten berri eman zuen, eta bere hasierako orria eta biltegiko eremuak honako hauetara zuzendu zituen: github[.]com/gcli-control/gcli. Hori guztia ez da egiaztapena: egile-katea testu librea da, MIT lizentzia-buruak ez du ezer kostatzen, eta paketearen metadatuetan dagoen biltegi-URLa erreklamazio bat da, ez jatorriaren froga. Eredua —izen berri bat, egile kolektibo generiko bat eta paketearen inguruan sortutako erakunde/biltegi autoerreferentzial bat— proiektu batek kodea eramateko bereziki sortzen denean duen itxura da, urrutiko kontrol-funtzio bat garatu duen tresna finkatu baten ordez. Hauek behaketa gisa aipatzen ditugu; banaketa berezi batekin koherenteak dira, baina ez dute berez ezartzen.

Gaitasunean eta bidalketan oinarrituta, gaitzesgarritzat jotzen dugu xedea: urruneko sarbide eta zaintza inplante oso eta exekutagarria, errelebo ezkutu batekin pakete indize publiko batean banatua. Ez dugu helburu edo motiborik esleitzen.

Eragina, joerak eta defendatzaileek zer egin dezaketen

Mozorro bidezko sailkapenerako puntu itsu bat. Paketeen sailkapeneko giltza automatizatu asko mozorrotzeko seinaleak. erregistroko malware tipikoa — nahasitako orbanak, instalazio-garaian hooks, kredentzialak biltzeko esaldi laburrak. Pakete sinple bat irekiki RAT bat, kode garbi eta irakurgarriarekin eta instalazio-hook gabe, ez du seinale horietako bat ere aurkezten eta ezkutatzea espero duten heuristikoak saihestu ditzake. Klase hau fidagarritasunez harrapatzen duten seinaleak egiturazkoak dira, ez mozorroan oinarritutakoak: gaitasun-errolda bat (zenbat ostalarien zaintza primitibo desberdin dauden batera pakete batean) eta C2 formako analisi bat (xede orokorreko eduki-ostatatze zerbitzu baten bidez bideratzen den komando/erantzun begizta bat). Egiaztapen horiek aktibatzen dira zenbaterainoko zintzotasuna edo... nahasia ontzia da.

SaaS-as-C2 joera. Ostatu-zerbitzu legitimo bat gaizki erabiltzea erasotzaile gisa ez da berria, baina funtzionatzen jarraitzen du, zerbitzua blokeatzearen defentsa-kostua handia delako eta zerbitzuak aldatzearen eraso-kostua zerotik gertu dagoelako. Espero gehiago. Domeinu txar espezifikoei lotutako sareko defentsak berehala zaharkitzen dira; portaera-arauak ("prozesu honek arbela eta webcam-a irakurtzen ditu eta gero oharrak ostatatzeko API batekin komunikatzen da") ez.

Hormigoizko detekzio-zirriborroa. Iraunkortasun arauak ez du izendatzen npoint[.]io batere ez. Bi behaketa konbinatzen ditu, banaka ohikoak baina batera arraroak direnak garatzaile edo CI ostalari normal batean:

Saio bakar batean prozesu bakar batean, biak gertatzen direnean alerta bat agertzen da:
(A) ostalariaren zaintza primitibo batera sartzen da — sarrera gailua (teklatua/saguaren kakoa), kamera, mikrofonoa, pantaila-argazkia, arbeleko irakurketa-begizta edo arakatzailearen kredentzial biltegi bat ("Login "Datuak" / "Tokiko egoera" / DPAPI); ETA
(B)-k kanpoko eskaerak egiten dizkio eduki-ostalaritza / itsatsi / JSON-bin / chat-webhook zerbitzu publiko bati eta gero berrikusteko igotzen ditu, (B)-ko zerbitzu espezifikoa edozein dela ere.

Ez bata ez bestea ez dira susmagarriak bakarrik: tresna legitimo ugari pantaila-argazkiak ateratzen dituzte, eta JSON asko hosting API batera bidaltzen dute. Prozesu labur baten barruko konjuntzioa da seinalea, eta edozein errelebo-errotaziotik bizirik irauten du.

Taldeentzako urrats praktikoak:

  • Tratatu garatzaile eta CI ostalarien pakete publikoen instalazioak exekuzio muga gisa, ez erosotasun gisa — eraikuntza-agente bateko RAT bat zure sekretuak dituen RAT bat da.
  • Hobetsi baimendutako barne ispiluak; urrutiko agintearen izena duen eta keylogger bat deskribatzen duen pakete batek ez luke inoiz enpresa-indize batean ebatzi behar.
  • Alerta horri buruz konbinazioa — sarrera-gailuaren edo pantaila-argazkia gehi irteerako trafikoa eduki/itsatsi/JSON-bin zerbitzu batera — primitibo bakar batean baino, isolatuta erabilera onberak baititu.
  • Ez fidatu "seguru" puntuazio automatizatu batean terminalaren epaia emateko, ostalari-sarbide zabala duten paketeetarako; bideratu itzazu gizakien berrikuspenera.

Pakete familia gaiztoa sailkatu da eta erregistroan kentzeko eskatu da. Erreleboetan oinarritutako C2 batek ez du operadorearen jabetzako ostalaririk zulo batera uzten, defentsa-balio iraunkorra goiko portaera-hatz-markan dago, ez bloke-zerrendako sarrera bakar batean.

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin