TL; DR
E PyPI-Package mam Numm gcli-Kontroll huet e komplett Windows-Tool fir Fernzougang geliwwert: Tastendrockprotokolléierung, Webcam- a Mikrofonopnam, Zwëschespeicheriwwerwaachung, Browser-Umeldungsinformatiounen, Bildschirmkontroll, Persistenz, Privilegienerhéijung an e selbstreklaméierten "140+ Kommandoen". Et huet net verstoppt wat et war: d'PyPI-Zesummefassung vum Pak huet et als en "Tool fir Fernzougang iwwer ..." beschriwwen. npoint.io".
Den Detail, bei deem et sech lount, ze stoppen, ass dee Saz "iwwer npoint.io." Amplaz heem op en dedizéierten Server ze ruffen, gouf den Implantat benotzt npunkt[.]io (e gratis, legitime Service fir kleng JSON-Dokumenter ze hosten) als säi Kommando- a Kontrollrelais. Den Operateur schreift Befeeler an e JSON-Bin; den Implant pollt dee Bin, féiert en aus a schreift d'Resultater zeréck. Keng Domain vum Ugräifer fir ze blockéieren, keng nei IP fir ze markéieren: den Traffic geet op e Service, deen d'Entwéckler all Dag benotzen.
Sechs Versioune goufen an ongeféier dräizéng an eng hallef Stonn publizéiert, all méi staark wéi déi lescht. All eenzel vun hinne gouf notéiert. ml_virausgesot_sécher vun engem automatiséierte Klassifizéierer ier d'Famill manuell iwwerpréift gouf als béiswëlleg nei klasséiert gouf.
Attack Anatomie
gcli-Kontroll installéiert den Importpaket gcli, eng Python Codebasis mat 35 Moduler. Et gëtt keng Installatiounszäit. hooks — näischt leeft wärend pip installéierenD'Funktioun läit an de Moduler selwer, déi opgeruff ginn, soubal den Tool leeft, an de Modullayout liest sech wéi e Produktspezifikatiounsblat:
| Fäegkeetsberäich | Moduler |
|---|---|
| Host Iwwerwaachung | keylog, webcam, audio, clipboard, desktop, monitoring |
| Zougang zu Umeldungsinformatiounen & Daten | browser, forensics, fileops, transfer, users |
| Fouss faassen & Eskalatioun | persistence, elevator, registry, security |
| Host- & Netzwierk-Rekonstruktioun | system, processes, network_config, wifi, bluetooth, netutils |
| Kommando & Kontroll | client, host, session, protocol, npoint, crypto, encrypt |
De Kommandokanal ass den interessanten Deel. Déi meescht Tools fir Fernzougrëff erreechen e Server, deen den Operateur kontrolléiert - eng IP, eng Domain, en Hosting-Ubidder, deen gemellt a offline geholl ka ginn. gcli-Kontroll behandelt amplaz e gratis JSON-bin Service als Dead-Drop. d' npunkt Modul liest a schreift kleng JSON-Dokumenter op npunkt[.]io iwwer normal HTTPS; den Krypto/verschlëssele Moduler wéckelen déi ausgetosch Notzlaaschten an, sou datt den Inhalt vum Bin keng Klartextbefeeler sinn. Den Effekt ass e vermittelten, verschlësselten Relais:
- Den Operateur leet eng (verschlësselte) Instruktioun an eng JSON-Bin.
- Den Implantat, deen um Host vum Affer leeft, pollt dee Bin, entschlësselt, féiert ee vu senge Kommando-Handler aus a schreift dat (verschlësselte) Resultat zréck.
- Mat engem Netzwierkmonitor schwätzt d'Affer einfach mat npunkt[.]io — e Service mat engem legitime Grond fir am Entwécklerverkéier ze erschéngen.
Et gëtt keen Download an der zweeter Phas a kee verschleierte Loader: d'Funktioun gëtt ganz a lieserbarem Python geliwwert, an dat eenzegt "Verstoppen" ass d'Wiel vum Relais an d'Verschlësselung vun den iwwerdroene Payloads.
Firwat en JSON-bin Dead-Drop operationell attraktiv ass, ass et wäert ze präziséieren, well et erkläert firwat mir erwaarden datt mir dëst Muster erëm gesinn:
- Keen Endpunkt, deen dem Bedreiwer gehéiert. Et gëtt kee C2-Domain fir ze registréieren, kee VPS fir ze lounen, a näischt fir e Verteideger oder Registrar fir ze beschlagnahmen. Pak beréiert de Kanal net; Ofbau vun der Kanal heescht, e SaaS fir allgemeng Zwecker ze froen, een Dokument ënner Milliounen ze iwwerwaachen.
- Reputatiounswäsche. Outbound HTTPS un e bekannte Entwécklerservice bréngt keng vun de Reputatiounsstrof mat sech, déi eng nei Domain oder eng rau IP hätten. Vill Ausgangsfilter-Astellungen erlaben dat implizit.
- Asynchronie a Verleugnbarkeet. E Polling-Modell - den Implantat luet en Dokument an engem Intervall of anstatt en oppene Socket ze halen - produzéiert Traffic, deen ausgesäit wéi periodesch API-Polling, net wéi eng interaktiv Sessioun. D'Verschlësselung vum Dokumentinhalt bedeit, datt souguer en Analyst, deen de Bin fënnt, Chiphertext gesäit, net eng Kommandolëscht.
- Trivial RotatiounDe Wiessel op eng aner Këscht, oder en ganz aneren Notiz-/Paste-Service, ass eng Ännerung vun der Konfiguratioun op enger Zeil fir den Operateur. All Blocklëscht, déi dem spezifesche Relais zougewise gëtt, ass veroudert, soubal se verschéckt gëtt.
Den Ofwiessel, deen den Operateur akzeptéiert, ass den Duerchgank an d'Latenz: en Dead-Drop-Relais ass méi lues a méi bandbreet wéi eng direkt Verbindung. Fir en Iwwerwaachungs- a Kontrollimplantat, dat meeschtens kuerz Befeeler ausgëtt a Resultater am Laf vun der Zäit sammelt, ass dësen Ofwiessel einfach ze maachen.
Timeline
D'Famill ass séier eskaléiert. D'Zäitstempel fir d'Erstelle vun Ticketen fir déi markéiert Versioune placéieren de ganze observéierte Bogen bannent ongeféier dräizéng an eng hallef Stonn, an d'Zuel vun de Beweiser vum Scanner selwer ass mam Code gewuess - vun e puer markéierte Siten an der éischter Versioun op véierzéng an der leschter.
| Versioun | Éischt gesinn (UTC) | Notéiert |
|---|---|---|
0.1.0 | 2026-07-21 12:59 | Éischten Upload; minimal markéiert Uewerfläch |
0.5.0 | 2026-07-21 18:01 | D'Kapazitéit gëtt erweidert |
0.2.0 | 2026-07-21 18:03 | (Versiounsnummeréierung net monoton mat der Upload-Reiefolleg) |
0.6.0 | 2026-07-22 00:44 | Méi breet Modulset |
0.7.0 | 2026-07-22 01:58 | Bal komplett Toolkit |
0.7.1 | 2026-07-22 02:28 | Neist; 35 Moduler, voll Kapazitéit |
D'Versiounsnummeren goufen net an enger strikter Reiefolleg publizéiert, awer d'Richtung ass kloer: e klengen éischte Schnëtt, dann eng séier Iteratioun Richtung der vollstänneger Versioun 0.7.1. Dëst ass d'Form vun engem Projet an aktiver Entwécklung, deen an e ëffentlecht Register geschéckt gëtt, wéi e wiisst, net en eenzege Réckgang.
Indicateuren vun Kompromëss
All Indikatoren hei ënnendrënner goufen géint den Inhalt vum Package op der Festplack an engem deterministeschen Indikatorenscan vun der Versioun 0.7.1 bestätegt; keng dovun ass spekulativ.
| Type | Luucht |
|---|---|
| Pak (PyPI) | gcli-control, Versiounen 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1 |
| Pak importéieren | gcli |
| C2 Relais | npoint[.]io (JSON-bin dead-drop; verschlësselte Payloads) |
| Ugekënnegt Repository | github[.]com/gcli-control/gcli |
| Verhalensfangerofdrock | Co-lokaliséiert Iwwerwaachungsmoduler: keylog, webcam, audio, clipboard, browser, plus Persistenz, Elevator, an eng Client/Host/Protokoll Kommandoschicht an engem Pak |
| installéieren hooks | Keen: d'Funktioun leeft beim Lafzäit vum Tool, net während der Installatioun |
Notiz vum Verteideger: Dat stäerkst dauerhaft Signal ass net den Domän (e Relaishost rotéiert trivial), mee den Form: e Pak, deen dräi oder méi verschidde Host-Iwwerwaachungsprimitiven bündelt an leet eng Kommando-/Äntwert-Schleif duerch en ëffentleche Content-Hosting-Service. Blockéieren npunkt[.]io ass fir déi meescht Geschäfter komplett onpraktesch; eng Alarméierung iwwer en onerwaarten Prozess ze maachen, deen souwuel Inputgeräter erfaasst wéi och mat engem JSON-bin Service kommunizéiert, ass vill méi robust.
Observéiert Verhalen & Framing
Zwou Saache maachen dës Prouf ongewéinlech, an allebéid sinn observéierbar Fakten anstatt Conclusiounen iwwer de Motiv.
Et huet sech selwer Reklamm gemaach. D'Package-Resumé, déi op PyPI verdeelt gouf, huet d'Méiglechkeeten a kloerer Sprooch opgezielt - Fernzougang, Desktop-Kontroll, Benotzerverwaltung, Webcam, Audio, Keylogger, Persistenz, Browserdaten, WiFi, Registry, "140+ Kommandoen". Et gouf kee Versuch, de Code als Build-Hëllefer, CLI-Wrapper oder AI-Agent-Utility auszeginn, wat déi méi heefeg Verkleedung ass, déi mir op ëffentleche Registre gesinn. Ob dës Offenheet en Tool vun engem Red-Team-Tool reflektéiert, deen ouni Zougangskontrollen publizéiert gouf oder eppes anescht, ass eng Fro, déi den Inhalt vum Pak eleng net entscheet; wat sécher ass, ass datt en funktionéierenden, allgemenge Fernzougang- an Iwwerwaachungs-Toolkit vun jidderengem installéiert konnt ginn, deen ... Pip.
Et huet sech op Vertrauen an e guttméindege Service baséiert. benotzt npunkt[.]io well de Relais déi definéierend Technik ass. Et ass e Beispill vun engem méi breede Muster - d'Route vum C2 duerch e legitime SaaS (Paste-Siten, JSON-Bins, Chat-Websäiten).hooks, Cloud-Dokumenter) sou datt de béiswëllege Verkéier an déi normal Entwéckleraktivitéit integréiert gëtt an et keen Endpunkt vum Bedreiwer gëtt, deen et ze beschlagnahme kann. D'Payloads um Relais ware verschlësselt, sou datt den Inhalt vum Bin fir en zoufällegen Observateur net als Befeeler gelies géif ginn.
D'Signaler vum Editeur si schwaach a generesch. De Pak huet erkläert, datt Auteur vun "gcli-Contributeuren" an enger MIT-Lizenz, an huet seng Homepage a Repository-Felder op github[.]com/gcli-control/gcliNäischt dovun ass eng Verifizéierung: en Auteurszeecheketten ass fräien Text, en MIT-Lizenzheader kascht näischt, an eng Repository-URL an de Pakmetadaten ass eng Fuerderung, keen Noweis vun der Provenienz. D'Muster - en neien Numm, en genereschen kollektiven Auteur an eng selbstreferenziell Organisatioun/Repository, déi ronderëm de Pak erstallt gouf - ass wéi e Projet ausgesäit, wann en speziell fir de Code opgeriicht gëtt, anstatt en etabléiert Tool, dat zoufälleg eng Fernsteierungsfunktioun entwéckelt huet. Mir notéieren dës als Observatiounen; si sinn am Aklang mat, awer etabléieren net eleng eng speziell entwéckelt Verdeelung.
Mir beschreiwen d'Dispositioun als béiswëlleg op Basis vun der Fäegkeet an der Liwwerung: en komplett, ausféierbaren Implantat fir Fernzougang an Iwwerwaachung, verdeelt op engem ëffentleche Pakindex mat engem geheime Relais. Mir ginn kee Zil oder Motiv zou.
Impakt, Trends & wat Verdeedeger maache kënnen
E blanne Fleck fir verkleedungsorientéiert Triage. Vill automatiséiert Pakettriage-Schlësselen op der Verkleedung Signaler vun typesch Registry-Malware — verschleierte Blobs, Installatiounszäit hooks, One-Liner-Saach fir d'Ernte vu Referenzen. E Pak, deen einfach ass offen eng Ratt, mat propperem liesbarem Code a kee Installatiounshook, weist keng vun dësen Tells a kann iwwer Heuristiken erauskommen, déi Verstoppung erwaarden. D'Signaler, déi dës Klass zouverlässeg erkennen, si strukturell anstatt verstoppt: eng Fäegkeetszensus (wéi vill verschidde Host-Iwwerwaachungsprimitiven an engem Package koexistéieren) an C2-Formanalyse (eng Kommando-/Äntwert-Schleef, déi duerch en allgemenge Content-Hosting-Service geleet gëtt). Dës Kontrollen ausléisen, egal wéi éierlech oder verstoppt d'Verpakung ass.
Den SaaS-as-C2 Trend. E legitime Hosting-Service als Dead-Drop ze mëssbrauchen ass näischt Neies, awer et funktionéiert weider, well déi defensiv Käschte fir de Service ze blockéieren héich sinn an déi offensiv Käschte fir de Service ze wiesselen bal null sinn. Erwaart méi dovun. Netzwierkverteidegung, déi op spezifesch schlecht Domainen zougeschnidden ass, altert direkt aus; Verhalensregelen ("dëse Prozess liest d'Zwëschespeicher an d'Webcam a schwätzt dann mat enger Notizhosting-API") net.
Eng Skizz fir d'Detektioun vu Beton. Déi dauerhaft Regel nennt keen Numm npunkt[.]io iwwerhaapt. Et kombinéiert zwou Observatiounen, déi eenzel heefeg sinn, awer zesummen rar op engem normalen Entwéckler oder CI-Host:
Alarm wann een eenzege Prozess, bannent enger Sessioun, béid:
(A) zougräift op e Host-Surveillance-Primitiv - Input-Gerät (Tastatur-/Maus-Hook), Kamera, Mikrofon, Bildschirmopnahm, Clipboard-Liesloop oder e Browser-Umeldungsinformatiounsspeicher ("Login Daten" / "Lokalen Zoustand" / DPAPI); AN
(B) mécht erausgehend Ufroen un en ëffentleche Content-Hosting / Paste / JSON-bin / Chat-Webhook Service a stellt se dann zur Iwwerpréiwung, onofhängeg vum spezifesche Service an (B).
Keng vun den zwou Hallschenten ass eleng verdächteg: vill Screenshots vu legitimen Tools, a vill posten JSON op eng Hosting-API. D'Konjunktioun an engem kuerzliewege Prozess ass de Signal, an et iwwerlieft all Relaisrotatioun.
Praktesch Schrëtt fir Équipen:
- Behandelt ëffentlech Pakinstallatiounen op Entwéckler- an CI-Hosts als eng Ausféierungsgrenz, net als Komfort - eng RAT op engem Build-Agent ass eng RAT mat Äre Geheimnisser.
- Intern Spigelen op der Zouloossungslëscht léiwer hunn; e Pak, deen wuertwiertlech no Fernbedienung genannt gëtt an e Keylogger beschreift, sollt ni op engem Firmenindex opléisen.
- Alarm op der geschéckt — Input-Device oder Screenshot plus erausgehenden Traffic op e Content/Paste/JSON-bin Service — anstatt op engem eenzege Primitiv, deen isoléiert guttaarteg Uwendungen huet.
- Verlaasst Iech net op en automatiséierte "séchere" Score als Terminal-Uerteel fir Pakete mat breeder Host-Zougangsméiglechkeet; leet se op eng mënschlech Iwwerpréiwung.
D'Packagefamill gouf als béiswëlleg klasséiert a gouf fir d'Entfernung vun der Registrierung iwwerwisen. Well e relaybaséierte C2 keen Host, deen am Besëtz vun engem Operator ass, an de Sinkhole léisst, läit de dauerhafte defensiven Wäert am Verhalensfangerofdrock uewen, net an engem eenzege Blocklëscht-Eintrag.





