PointBlank: PyPI RAT skriva C2 ​​u JSON-Bin servisu

PointBlank: potpuno opremljeni Python RAT koji je pokretao svoj komandni kanal putem besplatne usluge hostinga bilješki

TL; DR

PyPI paket pod nazivom gcli-control isporučio je kompletan alat za udaljeni pristup za Windows: evidentiranje pritiska tipki, snimanje web kamere i mikrofona, praćenje međuspremnika, pristup vjerodajnicama preglednika, kontrolu ekrana, perzistenciju, podizanje privilegija i samoreklamiranih "140+ naredbi". Nije krio šta je to: vlastiti sažetak PyPI-ja paketa opisao ga je kao "Alat za udaljeni pristup putem npoint.io".

Detalj na kojem vrijedi zastati je ta fraza "preko npoint.io." Umjesto pozivanja namjenskog servera, implantat je korišten npoint[.]io (besplatna, legitimna usluga za hostovanje malih JSON dokumenata) kao svoj relej za komandovanje i kontrolu. Operater upisuje komande u JSON korpu; implantat ispituje tu korpu, izvršava je i zapisuje rezultate nazad. Nema domene u vlasništvu napadača za blokiranje, nema nove IP adrese za označavanje: promet ide na uslugu koju programeri koriste svaki dan.

Šest verzija je objavljeno za otprilike trinaest i po sati, svaka sposobnija od prethodne. Svaka od njih je bila ocijenjena. ml_predicted_safe od strane automatiziranog klasifikatora prije nego što je ručni pregled reklasificirao porodicu kao zlonamjernu.

Anatomija napada

gcli-control instalira paket za uvoz gcli, Python kodna baza od 35 modula. Nema vremena instalacije hooks — ništa ne radi tokom pip installMogućnost se nalazi u samim modulima, poziva se nakon pokretanja alata, a raspored modula izgleda kao specifikacija proizvoda:

Područje sposobnostiModuli
Nadzor domaćinakeylog, webcam, audio, clipboard, desktop, monitoring
Pristup akreditivima i podacimabrowser, forensics, fileops, transfer, users
Uporište i eskalacijapersistence, elevator, registry, security
Izviđanje hosta i mrežesystem, processes, network_config, wifi, bluetooth, netutils
Komanda i kontrolaclient, host, session, protocol, npoint, crypto, encrypt

Komandni kanal je zanimljiv dio. Većina alata za daljinski pristup dolazi do servera kojim upravlja operater - IP adrese, domene, provajdera hostinga koji se mogu prijaviti i isključiti iz mreže. gcli-control umjesto toga tretira a besplatna JSON-bin usluga kao dead-drop. The npoint modul čita i piše male JSON dokumente na npoint[.]io preko običnog HTTPS-a; kripto/šifriranje Moduli omotavaju razmijenjene korisne terete tako da sadržaj kontejnera nije naredba u obliku otvorenog teksta. Efekat je posredovani, šifrirani relej:

  • Operator ubacuje (šifriranu) instrukciju u JSON korpu.
  • Implant, koji se izvršava na zaraženom hostu, ispituje taj bin, dešifrira ga, izvršava jedan od svojih rukovalaca naredbama i zapisuje (šifrirani) rezultat nazad.
  • Za mrežnog monitora, žrtva jednostavno razgovara sa npoint[.]io — usluga s legitimnim razlogom za pojavljivanje u prometu programera.

Ovdje nema preuzimanja druge faze niti obfusiranog programa za učitavanje: mogućnost se isporučuje u cijelosti, u čitljivom Pythonu, a jedino "skrivanje" je izbor releja i šifriranje prenesenih korisnih podataka.

Vrijedi navesti zašto je JSON-bin deaddrop operativno privlačan, jer objašnjava zašto očekujemo da ćemo ponovo vidjeti taj obrazac:

  • Nema krajnje tačke u vlasništvu operatera. Nema C2 domene za registraciju, nema VPS-a za iznajmljivanje, niti bilo čega što bi branilac ili registrar mogao zaplijeniti. Uklanjanje paket ne dodiruje kanal; uklanjanje kanal znači tražiti od SaaS-a opće namjene da nadgleda jedan dokument među milionima.
  • Pranje reputacije. Odlazni HTTPS prema poznatom servisu za razvojne programere ne nosi nikakve posljedice po reputaciju koje bi imao novi domen ili sirova IP adresa. Mnoge postavke filtriranja izlaznog prometa to implicitno dozvoljavaju.
  • Asinhronost i mogućnost poricanja. Model anketiranja — implant dohvaća dokument u određenom intervalu umjesto da drži otvoreni socket — proizvodi promet koji izgleda kao periodično API anketiranje, a ne kao interaktivna sesija. Šifriranje sadržaja dokumenta znači da čak i analitičar koji pronađe korpu vidi šifrirani tekst, a ne listu naredbi.
  • Trivijalna rotacijaPremještanje u drugu kutiju ili potpuno drugu uslugu bilješki/lijepljenja predstavlja promjenu konfiguracije u jednom redu za operatera. Svaka lista blokiranih stavki vezana za određeni relej je zastarjela u trenutku slanja.

Kompromis koji operater prihvata je propusnost i latencija: relej bez prekida veze je sporiji i ima manju propusnost od direktne veze. Za implantat za nadzor i kontrolu koji uglavnom izdaje kratke naredbe i prikuplja rezultate tokom vremena, taj kompromis je lako napraviti.

Timeline

Porodica se brzo proširila. Vremenske oznake kreiranja tiketa za označene verzije smještaju cijeli posmatrani luk unutar otprilike trinaest i po sati, a broj dokaza samog skenera rastao je zajedno s kodom - od nekoliko označenih lokacija u prvoj verziji do četrnaest u najnovijoj.

verzijaPrvi put viđen (UTC)Bilješka
0.1.02026-07-21 12:59Početno učitavanje; minimalno označena površina
0.5.02026-07-21 18:01Mogućnosti se proširuju
0.2.02026-07-21 18:03(numerisanje verzija nije monotono sa redoslijedom otpremanja)
0.6.02026-07-22 00:44Širi set modula
0.7.02026-07-22 01:58Gotovo kompletan set alata
0.7.12026-07-22 02:28Najnovije; 35 modula, pune mogućnosti

Brojevi verzija nisu objavljeni strogim redoslijedom, ali smjer je jasan: prvo malo smanjenje, a zatim brza iteracija prema potpuno funkcionalnoj verziji 0.7.1. Ovo je oblik projekta u aktivnom razvoju koji se javno registruje kako raste, a ne jednokratno uklanjanje.

Indikatori kompromisa

Svi dolje navedeni indikatori su potvrđeni u odnosu na sadržaj paketa na disku i determinističko skeniranje indikatora verzije 0.7.1; nijedan nije spekulativan.

tippokazatelj
Paket (PyPI)gcli-control, verzije 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1
Uvoz paketagcli
C2 relejnpoint[.]io (JSON-bin dead-drop; šifrirani korisni tereti)
Navedeno spremištegithub[.]com/gcli-control/gcli
Bihevioralni otisak prstaKo-lokirani moduli za nadzor: keylog, webcam, audio, clipboard, browser, plus persistence, elevator i klijent/host/protokol komandni sloj u jednom paketu
Instaliraj hooksNišta: mogućnost se izvršava za vrijeme izvođenja alata, a ne tokom instalacije

Napomena branioca: Najjači izdržljivi signal nije domena (host releja se trivijalno rotira), već Oblikjedan paket koji objedinjuje tri ili više različitih primitiva za nadzor hosta i usmjerava petlju naredbi/odgovora kroz javni servis za hosting sadržaja. Blokiranje npoint[.]io Direktno upozoravanje je nepraktično za većinu trgovina; upozoravanje na neočekivani proces koji istovremeno snima ulazne uređaje i komunicira sa JSON-bin servisom je mnogo robusnije.

Opaženo ponašanje i okvir

Dvije stvari čine ovaj uzorak neobičnim, a obje su uočljive činjenice, a ne zaključci o motivu.

Samo se reklamiralo. Sažetak paketa distribuiran na PyPI-ju nabrajao je mogućnosti jednostavnim jezikom - udaljeni pristup, kontrolu radne površine, upravljanje korisnicima, web kameru, zvuk, keylogger, perzistenciju, podatke preglednika, WiFi, registar, "140+ naredbi". Nije bilo pokušaja da se kod predstavi kao pomoćnik za izgradnju, CLI omotač ili uslužni program AI-agenta, što je češća maska ​​koju viđamo u javnim registrima. Da li ta otvorenost odražava alat crvenog tima objavljen bez kontrola pristupa ili nešto drugo, pitanje je koje sam sadržaj paketa ne rješava; ono što je sigurno jeste da je funkcionalan, univerzalni komplet alata za daljinski pristup i nadzor mogao instalirati bilo ko sa... pipa.

Oslanjalo se na povjerenje u dobroćudnu uslugu. korišćenje npoint[.]io jer je relej definirajuća tehnika. To je primjer šireg obrasca - usmjeravanje C2 putem legitimnog SaaS-a (paste stranice, JSON kontejneri, chat webhooks, dokumentacija u oblaku) tako da se zlonamjerni promet uklapa u normalnu aktivnost programera i da nema krajnje tačke u vlasništvu operatera koju bi se mogla preuzeti. Korisni podaci na releju bili su šifrirani, tako da sadržaj spremnika ne bi bio očitan kao naredbe slučajnom posmatraču.

Signali izdavača su slabi i generički. Paket je proglasio autor "gcli saradnika" i MIT licence, te je usmjerio svoju početnu stranicu i polja repozitorija na github[.]com/gcli-control/gcliNišta od toga nije verifikacija: string autora je slobodan tekst, zaglavlje MIT licence ne košta ništa, a URL repozitorija u metapodacima paketa je tvrdnja, a ne dokaz porijekla. Uzorak - potpuno novo ime, generički kolektivni autor i samoreferencijalna org/repozitorij kreiran oko paketa - predstavlja kako projekat izgleda kada je posebno postavljen da nosi kod, a ne kao uspostavljeni alat koji je slučajno razvio funkciju daljinskog upravljanja. Ovo primjećujemo kao zapažanja; ona su u skladu sa, ali sama po sebi ne uspostavljaju, distribuciju izgrađenu s namjenom.

Opisujemo dispoziciju kao zlonamjernu na osnovu mogućnosti i načina isporuke: kompletan, pokretan implant za daljinski pristup i nadzor, distribuiran na javnom indeksu paketa sa tajnim relejem. Ne navodimo metu niti motiv.

Uticaj, trendovi i šta branioci mogu učiniti

Slijepa tačka za trijažu orijentisanu na maskiranje. Mnogo automatizovanih ključeva za trijažu paketa na prerušiti signali tipični zlonamjerni softver registra — obfusirani blobovi, vrijeme instalacije hooks, kratke rečenice za prikupljanje akreditiva. Paket koji je jednostavno otvoreno RAT, sa čistim i čitljivim kodom i bez install hook-a, ne prikazuje nijedan od tih znakova i može proći pored heuristika koje očekuju prikrivanje. Signali koji pouzdano hvataju ovu klasu su strukturni, a ne zasnovani na prikrivanju: popis mogućnosti (koliko različitih primitiva za nadzor hosta koegzistira u jednom paketu) i C2-oblik analiza (petlja naredbi/odgovora usmjerena kroz uslugu hostinga sadržaja opće namjene). Te provjere se aktiviraju bez obzira na to koliko su iskrene ili obfuscated ambalaža je.

Trend SaaS-kao-C2. Zloupotreba legitimne usluge hostinga kao slijepe tačke nije nova, ali i dalje funkcioniše jer je odbrambeni trošak blokiranja usluge visok, a ofanzivni trošak promjene usluge blizu nule. Očekujte još toga. Mrežna odbrana vezana za određene loše domene odmah zastarijeva; pravila ponašanja („ovaj proces čita međuspremnik i web kameru, a zatim komunicira s API-jem za hosting bilješki“) ne.

Skica za detekciju betona. Trajno pravilo ne imenuje npoint[.]io uopšte. Kombinuje dva zapažanja koja su pojedinačno uobičajena, ali zajedno rijetka kod normalnog programera ili CI hosta:

upozorenje kada jedan proces, unutar jedne sesije, oba:
(A) pristupa primitivu za nadzor hosta — ulaznom uređaju (kuka za tastaturu/miš), kameri, mikrofonu, snimanju ekrana, petlji čitanja iz međuspremnika ili skladištu podataka za pristup pregledniku ("Login "Podaci" / "Lokalno stanje" / DPAPI); I
(B) šalje odlazne zahtjeve javnom servisu za hosting sadržaja / lijepljenje / JSON-bin / chat-webhook, a zatim ih podiže na pregled, bez obzira na specifičan servis u (B).

Nijedna polovina nije sumnjiva sama po sebi: mnoštvo snimka ekrana legitimnih alata, a mnogi objavljuju JSON na API hostinga. Konjunkcija unutar jednog kratkotrajnog procesa je signal i ona preživljava bilo koju rotaciju releja.

Praktični koraci za timove:

  • Tretirajte instalacije javnih paketa na developerskim i CI hostovima kao granicu izvršavanja, a ne kao pogodnost — RAT na agentu za izgradnju je RAT s vašim tajnama.
  • Preferirajte interne mirrore na dozvoljenoj listi; paket koji doslovno nosi ime za daljinsko upravljanje i opisuje keylogger nikada ne bi trebao biti razrješivan na korporativnom indeksu.
  • Upozorenje na Kombinacija — ulazni uređaj ili snimanje ekrana plus odlazni promet prema servisu za sadržaj/lijepljenje/JSON-bin — umjesto na bilo kojem pojedinačnom primitivu, koji ima benignu upotrebu sam po sebi.
  • Ne oslanjajte se na automatsku "sigurnosnu" ocjenu kao konačnu presudu za pakete sa širokim mogućnostima pristupa hostu; usmjerite ih na ljudsku provjeru.

Porodica paketa je klasifikovana kao zlonamjerna i upućena na uklanjanje iz registra. Budući da C2 zasnovan na releju ne ostavlja nijedan host u vlasništvu operatera da propadne, trajna odbrambena vrijednost leži u gore navedenom bihevioralnom otisku, a ne u bilo kojem pojedinačnom unosu na listi blokiranih.

sca-tools-software-alati-za-analizu-sastava
Prioritizirajte, sanirajte i osigurajte softverske rizike
Nabavite svoj besplatni račun.
Nije potrebna kreditna kartica.

Osigurajte svoj razvoj i isporuku softvera

sa Xygeni paketom proizvoda