PointBlank: PyPI RAT skrývá C2 ve službě JSON-Bin

PointBlank: plně vybavený Python RAT, který provozoval svůj příkazový kanál prostřednictvím bezplatné služby hostování poznámek

TL, DR

Balíček PyPI s názvem gcli-control dodal kompletní nástroj pro vzdálený přístup ve Windows: protokolování stisků kláves, zachycení webkamery a mikrofonu, monitorování schránky, přístup k přihlašovacím údajům prohlížeče, ovládání obrazovky, perzistence, zvýšení oprávnění a samozvaných „140+ příkazů“. Neskrýval, o co jde: vlastní shrnutí PyPI balíčku jej popsalo jako „nástroj pro vzdálený přístup přes“ npoint.io".

Detail, u kterého stojí za to se zastavit, je tato fráze „přes npoint.io.“ Místo telefonování na vyhrazený server implantát používal npoint[.]io (bezplatná, legitimní služba pro hostování malých JSON dokumentů) jako jeho relé pro příkazy a řízení. Operátor zapisuje příkazy do JSON koše; implantát tento koš dotazuje, provádí a zapisuje výsledky zpět. Žádná doména vlastněná útočníkem k blokování, žádná nová IP adresa k označení: provoz směřuje do služby, kterou vývojáři používají každý den.

Šest verzí bylo publikováno zhruba za třináct a půl hodiny, každá z nich byla zdatnější než ta předchozí. Každá z nich byla hodnocena. ml_predicted_safe automatizovaným klasifikátorem před manuální kontrolou, která překlasifikovala rodinu jako škodlivou.

Anatomie útoku

gcli-control nainstaluje importní balíček gcli, 35modulový kód Pythonu. Neexistují žádné časové omezení pro instalaci. hooks — během toho nic neběží pip nainstalovatTato funkce je obsažena v samotných modulech, vyvolá se po spuštění nástroje a rozvržení modulů vypadá jako specifikace produktu:

Oblast schopnostímoduly
Dohled nad hostitelemkeylog, webcam, audio, clipboard, desktop, monitoring
Přihlašovací údaje a přístup k datůmbrowser, forensics, fileops, transfer, users
Opora a eskalacepersistence, elevator, registry, security
Průzkum hostitele a sítěsystem, processes, network_config, wifi, bluetooth, netutils
Velení a řízeníclient, host, session, protocol, npoint, crypto, encrypt

Zajímavá část je příkazový kanál. Většina nástrojů pro vzdálený přístup se dostane na server, který operátor ovládá – IP adresa, doména, poskytovatel hostingu, které lze nahlásit a odpojit od sítě. gcli-control místo toho zachází s bezplatná služba JSON-bin jako dead-drop, npoint modul čte a zapisuje malé dokumenty JSON na npoint[.]io přes běžný HTTPS; Šifrovací/šifrování Moduly obalují vyměňované datové části, takže obsah přihrádek není v podobě příkazů v prostém textu. Výsledkem je zprostředkované, šifrované předávání:

  • Operátor vloží (zašifrovanou) instrukci do JSON bin.
  • Implantát běžící na oběti provede dotazování z přihrádky, dešifruje ji, provede jeden ze svých obslužných programů příkazů a zapíše (zašifrovaný) výsledek zpět.
  • Pro síťového monitora oběť jednoduše mluví s npoint[.]io — služba s legitimním důvodem k zobrazení v návštěvnosti pro vývojáře.

Neexistuje zde žádné stahování druhé fáze ani žádný obfuskovaný zavaděč: funkce je dodávána celá, v čitelném Pythonu, a jediným „skrytým“ je volba relé a šifrování přenášených dat.

Stojí za to vysvětlit, proč je deaddrop JSON-bin z provozního hlediska atraktivní, protože to vysvětluje, proč očekáváme, že se s tímto vzorem setkáme znovu:

  • Žádný koncový bod vlastněný operátorem. Není třeba registrovat žádnou doménu C2, pronajímat si VPS a nic, co by si obránce nebo registrátor mohl zabavit. balíček nedotýká se kanálu; zastavení šíření kanál znamená požádat univerzální SaaS, aby hlídal jeden dokument z milionů.
  • Praní pověsti. Odchozí HTTPS ke známé vývojářské službě nesou žádné penalizace za reputaci, jaké by způsobila nová doména nebo nezpracovaná IP adresa. Mnoho nastavení filtrování odchozího provozu to implicitně umožňuje.
  • Asynchronie a popíratelnost. Model dotazování – implantát načítá dokument v určitém intervalu, místo aby udržoval otevřený socket – vytváří provoz, který vypadá jako periodické dotazování API, nikoli jako interaktivní relace. Šifrování obsahu dokumentu znamená, že i analytik, který najde přihrádku, vidí šifrovaný text, nikoli seznam příkazů.
  • Triviální rotacePřesun do jiného koše nebo úplně jiné služby pro poznámky/vkládání je pro operátora změna konfigurace na jeden řádek. Jakýkoli seznam blokovaných položek přiřazený ke konkrétnímu relé je zastaralý v okamžiku odeslání.

Kompromis, který operátor akceptuje, je propustnost a latence: dead-drop relé je pomalejší a má menší šířku pásma než přímé připojení. Pro dohledový a řídicí implantát, který většinou vydává krátké příkazy a shromažďuje výsledky v průběhu času, je tento kompromis snadno realizovatelný.

Timeline

Rodina se rychle stupňovala. Časová razítka pro vytvoření tiketů u označených verzí umisťují celý pozorovaný oblouk do zhruba třinácti a půl hodin a počet důkazů skeneru rostl spolu s kódem – z několika označených stránek v první verzi na čtrnáct v nejnovější.

VerzePoprvé spatřeno (UTC)Hodnocení
0.1.02026-07-21 12:59Počáteční nahrání; minimálně označený povrch
0.5.02026-07-21 18:01Možnosti se rozšiřují
0.2.02026-07-21 18:03(číslování verzí není monotónní s pořadím nahrávání)
0.6.02026-07-22 00:44Širší sada modulů
0.7.02026-07-22 01:58Téměř kompletní sada nástrojů
0.7.12026-07-22 02:28Nejnovější; 35 modulů, plná funkčnost

Čísla verzí nebyla zveřejněna v přesném pořadí, ale směr je jasný: nejprve malé škrty, poté rychlá iterace k plně funkční verzi 0.7.1. Jde o projekt v aktivním vývoji, který je postupně zařazován do veřejného registru, nikoli o jednorázové odstranění.

Ukazatele kompromisu

Všechny níže uvedené indikátory byly potvrzeny na základě obsahu balíčku na disku a deterministického skenování indikátorů verze 0.7.1; žádný z nich není spekulativní.

TypIndikátor
Balíček (PyPI)gcli-control, verze 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1
Importovat balíčekgcli
Relé C2npoint[.]io (JSON-bin deaddrop; šifrované datové části)
Uvedený repozitářgithub[.]com/gcli-control/gcli
Behaviorální otisk prstuSpolečně umístěné dohledové moduly: keylog, webcam, audio, clipboard, browser, plus perzistence, výtah a vrstva příkazů klient/hostitel/protokol v jednom balíčku
instalovat hooksŽádné: funkce se spouští za běhu nástroje, nikoli během instalace.

Poznámka obránce: Nejsilnější trvalý signál není doména (hostitel relé se triviálně rotuje), ale formovatjeden balíček, který sdružuje tři nebo více odlišných primitiv pro dohled nad hostitelem a směruje smyčku příkazů/odpovědí přes veřejnou službu hostování obsahu. Blokování npoint[.]io Přímé upozornění je pro většinu obchodů nepraktické; mnohem robustnější je upozornění na neočekávaný proces, který zachycuje vstupní zařízení a komunikuje se službou JSON-bin.

Pozorované chování a rámování

Dvě věci činí tento vzorek neobvyklým a obě jsou spíše pozorovatelná fakta než závěry o motivu.

Reklamovalo se to samo. Souhrn balíčku distribuovaný na PyPI vyjmenovával funkce v jednoduchém jazyce – vzdálený přístup, ovládání plochy, správa uživatelů, webkamera, zvuk, keylogger, perzistence, data prohlížeče, WiFi, registr, „140+ příkazů“. Nebyl proveden žádný pokus o vydávání kódu za pomocníka při sestavování, obal CLI nebo nástroj AI-agent, což je běžnější maskování, které vídáme na veřejných registrech. Zda tato otevřenost odráží nástroj rudého týmu publikovaný bez kontroly přístupu, nebo něco jiného, ​​je otázka, kterou samotný obsah balíčku neřeší; jisté je, že funkční, univerzální sadu nástrojů pro vzdálený přístup a sledování si mohl nainstalovat kdokoli s… jádro.

Opíralo se o důvěru v neškodnou službu. Použití npoint[.]io protože relé je určující technikou. Je to příklad širšího vzoru – směrování C2 přes legitimní SaaS (vložené weby, JSON přihrádky, chatovací webyhooks, cloudová dokumentace), aby se škodlivý provoz promísil s běžnou aktivitou vývojářů a neexistoval žádný koncový bod vlastněný operátorem, kterého by se dalo zabavit. Datové části na relé byly šifrovány, takže obsah přihrádky by běžný pozorovatel nečetl jako příkazy.

Signály pro vydavatele jsou slabé a obecné. Balíček deklaroval Autor „přispěvatelů gcli“ a licence MIT a směřoval na pole domovské stránky a repozitáře github[.]com/gcli-control/gcliNic z toho není ověřování: řetězec autora je volný text, hlavička licence MIT nic nestojí a URL adresa repozitáře v metadatech balíčku je deklarace původu, nikoli důkaz původu. Tento vzorec – zbrusu nový název, generický kolektivní autor a sebereferenční org/repozitář vytvořený kolem balíčku – ukazuje, jak projekt vypadá, když je určen výhradně k přenosu kódu, spíše než jako zavedený nástroj, který si shodou okolností vypěstoval funkci dálkového ovládání. Poznamenáváme to jako pozorování; jsou v souladu s účelovou distribucí, ale sama o sobě ji nestanovují.

Popisujeme toto uspořádání jako škodlivé na základě možností a způsobu dodání: kompletní, spustitelný implantát pro vzdálený přístup a sledování, distribuovaný na veřejném indexu balíčků se skrytým přenosem. Neuvádíme cíl ani motiv.

Dopad, trendy a co mohou obránci dělat

Slepé místo pro třídění zaměřené na přestrojení. Hodně automatizovaných klíčů pro třídění balíků na přestrojení signály typický malware v registru — zmatené bloby, během instalace hooks, jednořádkové hlášky o sběru pověření. Balíček, který je jednoduše otevřeně krysa, s čistým a čitelným kódem a bez instalačního hooku, nepředstavuje žádné z těchto tells a dokáže proklouznout heuristikám, které očekávají maskování. Signály, které tuto třídu spolehlivě zachytí, jsou spíše strukturální než maskovací: sčítání schopností (kolik různých primitiv pro dohled nad hostitelem koexistuje v jednom balíčku) a analýza C2-shape (smyčka příkazů/odpovědí směrovaná přes univerzální službu hostování obsahu). Tyto kontroly se spustí bez ohledu na to, jak poctivá nebo zmatený obal je.

Trend SaaS jako C2. Zneužívání legitimní hostingové služby jako slepé uličky není nic nového, ale stále funguje, protože obranné náklady na blokování služby jsou vysoké a ofenzivní náklady na změnu služby se blíží nule. Očekávejte toho víc. Síťová obrana zaměřená na konkrétní škodlivé domény okamžitě zastarává; pravidla chování („tento proces čte schránku a webkameru a poté komunikuje s API pro hostování poznámek“) nikoli.

Skica pro detekci betonu. Trvalé pravidlo nejmenuje npoint[.]io vůbec. Kombinuje dvě pozorování, která jsou jednotlivě běžná, ale společně vzácná u běžného vývojáře nebo hostitele CI:

upozornění, když jeden proces v rámci jedné relace provede následující:
(A) přistupuje k primitivu pro dohled nad hostitelem – vstupnímu zařízení (klávesnice/myš), kameře, mikrofonu, snímání obrazovky, smyčce čtení ze schránky nebo úložišti přihlašovacích údajů prohlížeče („Login Data" / "Místní stav" / DPAPI); A
(B) odesílá odchozí požadavky na veřejnou službu hostování obsahu / vkládání / JSON-bin / chat-webhook a poté je odešle ke kontrole, bez ohledu na konkrétní službu v bodě (B).

Ani jedna polovina není sama o sobě podezřelá: spousta screenshotů legitimních nástrojů a spousta z nich odesílá JSON do hostingového API. Spojení uvnitř jednoho krátkodobého procesu je signál a přežije jakoukoli rotaci relé.

Praktické kroky pro týmy:

  • Veřejné instalace balíčků na hostitelích pro vývojáře a CI považujte za hranici provádění, nikoli za výhodu – RAT na build agentu je RAT s vašimi tajnými kódy.
  • Preferujte interní zrcadla na seznamu povolených serverů; balíček doslova pojmenovaný pro vzdálené ovládání a popisující keylogger by se nikdy neměl resolvovat v podnikovém indexu.
  • Upozornění na kombinace — vstupní zařízení nebo snímání obrazovky plus odchozí provoz do služby content/paste/JSON-bin — spíše než na jakémkoli jednotlivém primitivu, který má sám o sobě neškodné využití.
  • Nespoléhejte se na automatické „bezpečné“ skóre jako konečný verdikt pro balíčky s možností širokého přístupu k hostiteli; směřujte je k lidské kontrole.

Rodina balíčků byla klasifikována jako škodlivá a odeslána k odstranění z registru. Protože C2 založený na relé nenechává žádný hostitel vlastněný operátorem bez povšimnutí, trvalá obranná hodnota spočívá ve výše uvedeném behaviorálním otisku, nikoli v žádné jednotlivé položce v seznamu blokovaných serverů.

nástroje pro analýzu složení softwaru SCA
Stanovte priority, opravte a zabezpečte svá softwarová rizika
Získejte svůj bezplatný účet.
Nevyžaduje se žádná kreditní karta.

Zajistěte si vývoj a dodávky softwaru

s produktovým balíčkem Xygeni