TL; DR
Pakêtek PyPI bi navê gcli-kontrol Amûrek tevahî ya gihîştina dûr a Windows-ê şand: tomarkirina klavyeyê, girtina kameraya webê û mîkrofonê, çavdêriya clipboardê, gihîştina bawernameyên gerokê, kontrola ekranê, domdarî, bilindkirina îmtiyazê, û "140+ ferman" a xwe-reklamkirî. Wê veneşart ka ew çi bû: kurteya PyPI ya pakêtê ew wekî "amûrek gihîştina dûr bi rêya" wesf kir. npoint.io".
Hûrguliya ku hêjayî rawestanê ye ew hevok e "bi rêya npoint.io." Li şûna ku li malê bi serverek taybet re telefon bikin, împlanta ku tê bikar anîn npoint[.]io (xizmeteke belaş û rewa ji bo mazûvaniya belgeyên JSON ên piçûk) wekî relaya ferman û kontrolê. Operator fermanan di qutiyeke JSON de dinivîse; împlant wê qutiyê dinirxîne, pêk tîne û encaman dîsa dinivîse. Ne domaineke êrîşkar heye ku were astengkirin, ne jî IP-yeke nû heye ku were nîşankirin: trafîk diçe xizmeteke ku pêşdebir her roj bikar tînin.
Şeş guherto di nav sêzdeh û nîv saetan de hatin weşandin, her yek ji ya berê jêhatîtir. Her yek ji wan hate xelatkirin. ml_predicted_safe ji hêla dabeşkerek otomatîk ve berî nirxandina destî malbat wekî zirardar ji nû ve dabeş kir.
Anatomiya êrîşê
gcli-kontrol pakêta importê saz dike gcli, kodek Pythonê ya 35-modulî. Demên sazkirinê tune ne. hooks - di dema de tiştek naxebite pip sazkirinEv şiyan di modulên bixwe de heye, gava amûr dixebite tê gazîkirin, û nexşeya modulê wekî pelgeyeke taybetmendiyên hilberê tê xwendin:
| Qada şiyanê | modules |
|---|---|
| Çavdêriya mêvandar | keylog, webcam, audio, clipboard, desktop, monitoring |
| Bawername û gihîştina daneyan | browser, forensics, fileops, transfer, users |
| Pêgeh û bilindbûn | persistence, elevator, registry, security |
| Ji nû ve vejandina mêvandar û torê | system, processes, network_config, wifi, bluetooth, netutils |
| Fermandarî û kontrol | client, host, session, protocol, npoint, crypto, encrypt |
Kanala fermanê beşa balkêş e. Piraniya amûrên gihîştina ji dûr ve digihîjin serverek ku operator kontrol dike - IP, domainek, dabînkerê mêvandariyê ku dikare were ragihandin û ji negirêdayî were rakirin. gcli-kontrol li şûna wê derman dike xizmeta JSON-bin ya belaş wekî dead-drop. Ew npoint modul belgeyên JSON ên piçûk li ser dixwîne û dinivîse npoint[.]io li ser HTTPS-a asayî; ew crypto/encrypt modul barên guhêrbar dipêçin, da ku naveroka qutiyê fermanên nivîsa sade nebin. Bandor relayek navbeynkar û şîfrekirî ye:
- Operator talîmatek (şîfrekirî) diavêje nav qutiya JSON.
- Împlant, ku li ser mêvandara mexdûr dixebite, wê bin dipirse, şîfre dike, yek ji rêvebirên fermanên xwe dimeşîne, û encama (şîfrekirî) dîsa dinivîse.
- Ji bo çavdêrek torê, qurbanî tenê bi wî/wê re diaxive npoint[.]io — xizmetek bi sedemek rewa ku di trafîka pêşdebiran de xuya bibe.
Li vir dakêşana qonaxa duyemîn û barkerek nezelal tune ye: kapasîte bi tevahî, bi Pythonek xwendî tê şandin, û tenê "veşartin" hilbijartina relayê û şîfrekirina barkirinên veguhêzbar e.
Çima dead-dropek JSON-bin ji hêla operasyonel ve balkêş e, hêjayî gotinê ye, ji ber ku ew rave dike çima em li bendê ne ku dîsa vê qalibê bibînin:
- Xala dawî ya xwediyê operator tune ye. Ne domaina C2 heye ku were qeydkirin, ne VPS heye ku were kirêkirin, û ne jî tiştek heye ku parêzvan an qeydkar dest deynin ser. Rakirina domainê pakêt dest nade kanalê; rakirina qenal tê wateya xwestina ji SaaS-ek mebest-giştî ku yek belgeyê di nav mîlyonan de kontrol bike.
- Şûştina navûdengê. HTTPS-a derketî bo karûbarek pêşdebirên navdar, ti cezayên navûdengê yên ku domainek nû an IP-yek xav pê re rû bi rû nabin, nagire nav xwe. Gelek sazkirinên fîlterkirina derketinê bi awayekî neyekser destûrê didin vê yekê.
- Asenkronî û înkarkirin. Modelek anketê - împlant belgeyek di navberê de digire ne ku soketek vekirî bigire - trafîk çêdike ku dişibihe anketa API-ya periyodîk, ne danişînek înteraktîf. Şîfrekirina naveroka belgeyê tê vê wateyê ku tewra analîstek ku qutiya çopê dibîne jî nivîsa şîfrekirî dibîne, ne navnîşek fermanan.
- Rotasyona sêalîVeguhestina bo qutîkek cuda, an jî xizmetek not/pastekirinê ya bi tevahî cuda, ji bo operator guhertinek mîhengê ya yek-xêzî ye. Her lîsteya astengkirinê ya ku ji bo relaya taybetî hatîye kilît kirin di gava ku tê şandin de kevn dibe.
Bazirganiya ku operator qebûl dike, rêjeya derbasbûnê û derengmayîn e: relayek bêbandor ji girêdana rasterast hêdîtir û firehiya bandê kêmtir e. Ji bo împlantek çavdêrî û kontrolê ku bi piranî fermanên kurt dide û encaman bi demê re berhev dike, ew danûstandin hêsan e ku were kirin.
Timeline
Malbat bi lez mezin bû. Demjimêrên çêkirina bilêtan ji bo guhertoyên nîşankirî tevahiya kevana çavdêrîkirî di nav sêzdeh û nîv saetan de datînin, û jimara delîlên skanerê bi xwe re ligel kodê zêde bû - ji çend malperên nîşankirî di guhertoya yekem de heya çardeh di ya herî dawî de.
| Awa | Yekem car hatiye dîtin (UTC) | Not |
|---|---|---|
0.1.0 | 2026-07-21 12:59 | Barkirina destpêkê; rûbera herî kêm a nîşankirî |
0.5.0 | 2026-07-21 18:01 | Kapasîte berfireh dibe |
0.2.0 | 2026-07-21 18:03 | (hejmarkirina guhertoyan bi rêza barkirinê re ne yekreng e) |
0.6.0 | 2026-07-22 00:44 | Komeke modulên berfirehtir |
0.7.0 | 2026-07-22 01:58 | Amûrên hema bêje temam |
0.7.1 | 2026-07-22 02:28 | Nûtirîn; 35 modul, kapasîteya tevahî |
Hejmarên versiyonan bi rêzek hişk nehatine weşandin, lê rê li ber zelal e: birînek piçûk a pêşî, dû re dubarekirinek bilez ber bi 0.7.1-a bi tevahî-taybetmendî. Ev şeklê projeyek di bin pêşkeftina çalak de ye ku dema mezin dibe ber bi qeydek giştî ve tê şandin, ne tenê yek carî.
Nîşaneyên Lihevhatinê
Hemû nîşaneyên li jêr li hember naveroka pakêta li ser dîskê û skaneke nîşaneya diyarker a guhertoya 0.7.1 hatin piştrast kirin; ti yek ji wan spekulatîf nîne.
| Awa | indicator |
|---|---|
| Pakêt (PyPI) | gcli-control, guhertoyên 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1 |
| Pakêta importkirinê | gcli |
| Relaya C2 | npoint[.]io (JSON-bin dead-drop; barkirinên şîfrekirî) |
| Depoya diyarkirî | github[.]com/gcli-control/gcli |
| Şopa tiliyê ya tevgerî | Modulên çavdêriyê yên hev-cihkirî: keylog, webcam, audio, clipboard, browser, û her weha berdewamî, asansor, û qata fermana xerîdar/mêvandar/protokolê di yek pakêtê de |
| Lêkirin hooks | Tune: şiyan di dema xebitandina amûrê de dixebite, ne di dema sazkirinê de |
Nîşeya parêzvan: sînyala herî bihêz û domdar ne domain e (hostek relayê bi awayekî bêserûber dizivire) lê cinspakêtek yekane ku sê an bêtir prîmîtîfên çavdêriya mêvandar ên cihêreng dihewîne û çerxek ferman/bersiv bi rêya karûbarek mêvandariya naveroka giştî ve dimeşîne. Astengkirin npoint[.]io rasterast ji bo piraniya firotgehan ne pratîk e; hişyarkirina li ser pêvajoyek nediyar ku hem cîhazên têketinê digire û hem jî bi karûbarek JSON-bin re diaxive pir bihêztir e.
Reftar û çarçovekirina çavdêrîkirî
Du tişt vê nimûneyê neasayî dikin, û her du jî rastiyên çavdêrîkirî ne ne ku texmînên li ser motîvasyonê.
Xwe reklam dikir. Kurteya pakêtê ku li ser PyPI-yê hatiye belavkirin, şiyanan bi zimanekî sade rêz kir - gihîştina ji dûr ve, kontrola sermaseyê, rêveberiya bikarhêner, kameraya webê, deng, keylogger, domdarî, daneyên gerokê, WiFi, qeyd, "140+ ferman." Hewldanek tunebû ku kod wekî alîkarek avakirinê, pêça CLI, an amûrek ajansa AI-ê were şandin, ku ev veşartgehek gelemperî ye ku em li ser qeydên giştî dibînin. Gelo ew vekirîbûn amûrek tîmê sor nîşan dide ku bêyî kontrolên gihîştinê hatî weşandin an tiştek din e, pirsek e ku naveroka pakêtê bi tena serê xwe çareser nake; tiştê ku diyar e ev e ku amûrek çavdêriya ji dûr ve ya armancdar û xebitandinê ji hêla her kesê ve bi ... ve hatî saz kirin. pip.
Ew baweriya xwe bi xizmeteke baş dianî. bikaranîna npoint[.]io ji ber ku rela teknîka diyarker e. Ew nimûneyek ji şêwazek berfirehtir e - rêkirina C2 bi rêya SaaS-ek rewa (malperên paste, qutiyên JSON, malpera sohbetê)hooks, belgeyên ewr) da ku trafîka xerabkar tevlî çalakiya pêşdebirên normal bibe û ti xalek dawî ya xwediyê operator tune be ku were desteserkirin. Barên li ser relayê hatine şîfrekirin, ji ber vê yekê naveroka qutiyê wekî fermanan ji çavdêrek asayî re nayê xwendin.
Sînyalên weşanxaneyê tenik û gelemperî ne. Pakêtê diyar kir ku Nivîskar ji "beşdarên gcli" û lîsansek MIT, û zeviyên rûpela sereke û depoya wê li ser nîşan da github[.]com/gcli-control/gcli. Yek ji van verastkirin nîne: rêzek nivîskar nivîsa azad e, sernivîsa lîsansa MIT-ê bêpere ye, û URL-ya depoyek di metadataya pakêtê de îdîayek e, ne delîlek ji bo eslê. Şêwe - navek nû, nivîskarek kolektîf a gelemperî, û org/depoyek xweser a li dora pakêtê hatî afirandin - ew e ku projeyek çawa xuya dike dema ku ew bi taybetî ji bo hilgirtina kodê tê saz kirin, ne amûrek damezrandî ku tesadufî taybetmendiyek kontrola dûr pêşxistiye. Em van wekî çavdêriyan tomar dikin; ew bi belavkirinek armanc-avakirî re lihevhatî ne, lê bi serê xwe ava nakin.
Em vê rêbazê li ser bingeha şiyan û radestkirinê wekî zirardar bi nav dikin: împlanteke çavdêrî û gihîştina dûr a bêkêmasî, ku dikare were xebitandin, li ser navnîşana pakêtek giştî bi relayek veşartî tê belavkirin. Em hedefek an motîfek destnîşan nakin.
Bandor, meyl û tiştên ku parêzvan dikarin bikin
Xalek kor ji bo triyaja li ser bingeha veşartinê. Bişkojkên triyaja pakêtê yên pir otomatîk li ser sergirtin sînyalên malwareya qeydê ya tîpîk - blobên tarî, dema sazkirinê hooks, gotinên yek-xêz ên berhevkirina bawernameyan. Pakêtek ku bi hêsanî ye bi awayekî vekirî RATek, bi koda xwendin û paqij û bê çengela sazkirinê, ti ji wan nîşanan nîşan nade û dikare ji heurîstîkên ku veşartinê hêvî dikin derbas bibe. Sînyalên ku bi pêbawerî vê çînê digirin, ne li ser bingeha veşartinê ne, lê li ser bingeha avahîsaziyê ne: serjimêriya kapasîteyê (çend prîmîtîfên çavdêriya mêvandar ên cihêreng di yek pakêtê de bi hev re hene) û analîza şeklê C2 (çerxek ferman/bersiv ku bi rêya karûbarek mêvandariya naverokê ya armanca giştî ve tê rêve kirin). Ew kontrol bêyî ku çiqas rast an rast bin, çalak dibin. berbiçav pakkirin e.
Trenda SaaS-wek-C2. Bikaranîna îstismarkirî ya xizmeteke mêvandariyê ya rewa wekî rêyeke bê encam ne tiştekî nû ye, lê ew berdewam dixebite ji ber ku lêçûna parastinê ya astengkirina xizmetê zêde ye û lêçûna êrîşkar a guheztina xizmetan nêzîkî sifirê ye. Li bendê bin ku bêtir jê were kirin. Parastinên torê yên ku ji bo domênên xirab ên taybetî hatine çêkirin tavilê kevin dibin; qaîdeyên tevgerî ("ev pêvajo clipboard û webcamê dixwîne û dûv re bi API-yeke mêvandariya notan re diaxive") nakevin meriyetê.
Nexşeyek tespîtkirina betonê. Qanûna domdar nav nade npoint[.]io qet nebe. Ew du çavdêriyên ku bi ferdî hevpar in lê bi hev re li ser pêşdebirê normal an mêvandarê CI kêm in, bi hev re dike yek:
hişyarî dema ku pêvajoyek yekane, di yek danişînê de, her du jî:
(A) digihîje prîmîteke çavdêriya mêvandar - cîhaza têketinê (çengelê klavyeyê/mişkê), kamerayê, mîkrofonê, girtina ekranê, çerxa xwendina clipboardê, an jî depoya bawernameyên gerokê ("Login "Daneyên" / "Dewleta Herêmî" / DPAPI); Û
(B) daxwazên derveyî ji karûbarek mêvandariya naverokê / paste / JSON-bin / chat-webhook a giştî re dike û dûv re ji bo nirxandinê radike, bêyî ku karûbara taybetî ya di (B) de çi be.
Ne yek ji nîvan bi tena serê xwe gumanbar e: gelek amûrên rewa dîmenên ekranê, û gelek JSON ji bo API-ya mêvandariyê dişînin. Girêdana di hundurê pêvajoyek demkurt de sînyal e, û ew li hember her zivirîna relayê sax dimîne.
Gavên pratîkî ji bo tîman:
- Sazkirinên pakêtên giştî li ser pêşdebir û mêvandarên CI wekî sînorê darvekirinê bihesibînin, ne wekî rehetiyek - RATek li ser ajanek avakirinê RATek bi razên we ye.
- Neynikên navxweyî yên di lîsteya destûrdayînê de tercîh bikin; pakêtek ku bi rastî ji bo kontrola dûr ve hatî navandin û keyloggerek vedibêje divê qet li ser endeksek pargîdaniyê çareser nebe.
- Hişyarî li ser hevgirêkî — cîhaza têketinê an jî girtina ekranê û trafîka derketî bo karûbarek content/paste/JSON-bin — li şûna li ser her prîmîtîfek yekane, ku bi tena serê xwe karanînên baş hene.
- Ji bo pakêtên bi kapasîteya gihîştina mazûvan a berfireh, wekî biryarek dawîn, xwe nespêrin puanek "ewle" ya otomatîk; wan ji bo nirxandina mirovî bişînin.
Malbata pakêtan wekî zirardar hatiye dabeşkirin û ji bo rakirina qeydê hatiye şandin. Ji ber ku C2-ya li ser bingeha relayê tu hostek xwediyê operator nahêle ku bikeve nav çalekê, nirxa parastinê ya domdar di şopa reftariyê ya jorîn de ye, ne di tu têketina navnîşa astengkirinê de ye.





