TL; DR
adlı PyPI paketi gcli-nəzarət Tam bir Windows uzaqdan giriş aləti təqdim etdi: klaviatura basışı qeydləri, veb-kamera və mikrofonun çəkilişi, panoya monitorinq, brauzer etimadnaməsinə giriş, ekran nəzarəti, davamlılıq, imtiyazların artırılması və özünü reklam edən "140+ əmr". Paket nə olduğunu gizlətmədi: paketin öz PyPI xülasəsində onu "Uzaqdan giriş aləti vasitəsilə" kimi təsvir etdi. npoint.io".
Dayanmağa dəyər detal bu ifadədir "npoint.io vasitəsilə." Xüsusi serverə zəng etmək əvəzinə, implant istifadə edildi npoint[.]io (kiçik JSON sənədlərini yerləşdirmək üçün pulsuz, qanuni bir xidmət) əmr və idarəetmə rölesini təqdim edir. Operator əmrləri JSON qutusuna yazır; implant həmin əmrləri zibil qutusuna göndərir, icra edir və nəticələri geri yazır. Bloklamaq üçün hücumçuya məxsus domen yoxdur, işarələmək üçün yeni IP yoxdur: trafik hər gün inkişaf etdiricilərin istifadə etdiyi xidmətə gedir.
Təxminən on üç saat yarım ərzində altı versiya nəşr olundu və hər biri əvvəlkindən daha təsirli idi. Onların hər biri qiymətləndirildi ml_proqnozlaşdırılan_təhlükəsiz əl ilə yoxlamadan əvvəl avtomatlaşdırılmış təsnifatçı tərəfindən ailəni zərərli kimi yenidən təsnif etdi.
Hücum anatomiyası
gcli-nəzarət idxal paketini quraşdırır gcli, 35 modullu Python kod bazası. Quraşdırma müddəti yoxdur hooks — heç nə işləmir pip quraşdırmaBu imkan modulların özündə yaşayır, alət işə düşdükdən sonra işə salınır və modul düzeni məhsul spesifikasiyası vərəqi kimi oxunur:
| Qabiliyyət sahəsi | Modullar |
|---|---|
| Ev sahibi nəzarəti | keylog, webcam, audio, clipboard, desktop, monitoring |
| Etimadnamə və məlumatlara giriş | browser, forensics, fileops, transfer, users |
| Dayanacaq və eskalasiya | persistence, elevator, registry, security |
| Host və şəbəkə yenidən qurulması | system, processes, network_config, wifi, bluetooth, netutils |
| Komandanlıq və nəzarət | client, host, session, protocol, npoint, crypto, encrypt |
Əmr kanalı maraqlı hissədir. Uzaqdan giriş alətlərinin əksəriyyəti operatorun idarə etdiyi serverə — IP ünvanına, domenə, bildirilə və oflayn rejimə keçirilə bilən hosting provayderinə çatır. gcli-nəzarət əvəzinə a müalicə edir pulsuz JSON-bin xidməti ölü açılan kimi. Bu n nöqtəsi modul kiçik JSON sənədlərini oxuyur və yazır npoint[.]io adi HTTPS üzərindən; Kripto/şifrelemek Modullar mübadilə edilən faydalı yükləri elə sarar ki, zibil qutusunun məzmunu düz mətn əmrləri olmasın. Təsir vasitəçilik edilmiş, şifrələnmiş röleyə bənzəyir:
- Operator (şifrəli) təlimatı JSON qutusuna atır.
- Qurban hostunda işləyən implant, həmin zibil qutusunu sorğulayır, deşifrə edir, əmr işleyicilərindən birini icra edir və (şifrəli) nəticəni geri yazır.
- Şəbəkə monitoru üçün qurban sadəcə danışır npoint[.]io — geliştirici trafikində görünmək üçün qanuni səbəbi olan bir xidmət.
Burada ikinci mərhələli yükləmə və qarışıq yükləyici yoxdur: imkan oxunaqlı Python dilində tam şəkildə göndərilir və yeganə "gizlənən" şey rele seçimi və rele yüklərinin şifrələnməsidir.
JSON-bin ölü açılan hissəsinin əməliyyat baxımından niyə cəlbedici olduğunu izah etməyə dəyər, çünki bu, nümunəni yenidən görməyimizi niyə gözlədiyimizi izah edir:
- Operatora məxsus son nöqtə yoxdur. Qeydiyyatdan keçiriləcək C2 domeni, icarəyə götürüləcək VPS və müdafiəçinin və ya qeydiyyatçının ələ keçirəcəyi heç nə yoxdur. paketi kanala toxunmur; onun sökülməsi kanal ümumi təyinatlı SaaS-dan milyonlarla sənəd arasından birini yoxlamasını istəmək deməkdir.
- Reputasiyanın yuyulması. Tanınmış bir geliştirici xidmətinə gedən HTTPS, yeni bir domen və ya xam IP-nin nüfuz cəzalarını daşımır. Bir çox çıxış filtrləmə qurğuları buna dolayı yolla icazə verir.
- Asinxronluq və inkar edilə bilmə. Sorğu modeli — implant açıq soket tutmaq əvəzinə, müəyyən bir intervalda sənədi götürür — interaktiv sessiya deyil, dövri API sorğusu kimi görünən trafik yaradır. Sənədin məzmununu şifrələmək, hətta zibil qutusunu tapan analitikin əmr siyahısını deyil, şifrələnmiş mətni görməsi deməkdir.
- Trivial fırlanmaFərqli bir qutuya və ya tamamilə fərqli bir qeyd/yapışdırma xidmətinə keçmək operator üçün tək sətirlik konfiqurasiya dəyişikliyidir. Müəyyən bir röleyə qoşulmuş hər hansı bir blok siyahısı göndərildiyi anda köhnəlir.
Operatorun qəbul etdiyi güzəşt ötürmə qabiliyyəti və gecikmədir: kəsilmiş röle birbaşa bağlantıdan daha yavaş və daha aşağı bant genişliyinə malikdir. Əsasən qısa əmrlər verən və zamanla nəticələr toplayan nəzarət və idarəetmə implantı üçün bu cür mübadilə etmək asandır.
İş qrafiki
Ailə sürətlə inkişaf etdi. İşarələnmiş versiyalar üçün bilet yaratma vaxt damğaları bütün müşahidə olunan qövsü təxminən on üç yarım saat ərzində yerləşdirir və skanerin öz sübut sayı kodla birlikdə artdı - ilk versiyada bir neçə işarələnmiş saytdan sonuncu versiyada on dördə qədər.
| Versiya | İlk dəfə görüldü (UTC) | Qeyd |
|---|---|---|
0.1.0 | 2026-07-21 12:59 | İlkin yükləmə; minimal işarələnmiş səth |
0.5.0 | 2026-07-21 18:01 | Qabiliyyət genişlənir |
0.2.0 | 2026-07-21 18:03 | (versiya nömrələməsi yükləmə sırası ilə monoton deyil) |
0.6.0 | 2026-07-22 00:44 | Daha geniş modul dəsti |
0.7.0 | 2026-07-22 01:58 | Demək olar ki, tam alət dəsti |
0.7.1 | 2026-07-22 02:28 | Ən son; 35 modul, tam imkanlar |
Versiya nömrələri ciddi qaydada dərc olunmasa da, istiqamət aydındır: əvvəlcə kiçik bir kəsim, sonra tam xüsusiyyətli 0.7.1 versiyasına doğru sürətli iterasiya. Bu, aktiv inkişaf mərhələsində olan bir layihənin birdəfəlik endirim deyil, böyüdükcə ictimai reyestrə göndərilməsi formasıdır.
Kompromis göstəriciləri
Aşağıdakı bütün göstəricilər diskdəki paket məzmunu və 0.7.1 versiyasının deterministik göstərici skanlaması ilə təsdiqləndi; heç biri spekulyativ deyil.
| növü | Göstərici |
|---|---|
| Paket (PyPI) | gcli-control, 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1 versiyaları |
| Paketi idxal edin | gcli |
| C2 rölesi | npoint[.]io (JSON-bin ölü açılan; şifrələnmiş faydalı yüklər) |
| Göstərilən depo | github[.]com/gcli-control/gcli |
| Davranış barmaq izi | Birgə müşahidə modulları: keylog, webcam, audio, clipboard, browser, üstəgəl bir paketdə davamlılıq, lift və klient/host/protokol əmr qatı |
| Quraşdırın hooks | Yoxdur: imkan quraşdırma zamanı deyil, alətin işləmə vaxtında işləyir |
Müdafiəçi qeydi: Ən güclü davamlı siqnal domen deyil (rele anası cüzi şəkildə fırlanır), amma formalaşdırmaqüç və ya daha çox fərqli host-nəzarət primitivlərini birləşdirən tək bir paket və əmr/cavab dövrəsini ictimai məzmun hostinqi xidməti vasitəsilə yönləndirir. Bloklama npoint[.]io əksər mağazalar üçün tamamilə praktik deyil; həm giriş cihazlarını ələ keçirən, həm də JSON-bin xidməti ilə əlaqə quran gözlənilməz bir proses barədə xəbərdarlıq etmək daha güclüdür.
Müşahidə edilən davranış və çərçivə
Bu nümunəni qeyri-adi edən iki şey var və hər ikisi motiv haqqında nəticə çıxarmaqdan daha çox müşahidə edilə bilən faktlardır.
Özünü reklam etdi. PyPI-də paylanan paket xülasəsində imkanlar sadə dildə sadalanırdı — uzaqdan giriş, masaüstü idarəetmə, istifadəçi idarəetməsi, veb-kamera, audio, klaviatura loqqeri, davamlılıq, brauzer məlumatları, WiFi, qeyd dəftəri, “140+ əmr”. Kodu qurma köməkçisi, CLI paketi və ya ictimai qeydlərdə gördüyümüz daha çox yayılmış maskalanma olan süni intellekt agenti yardımçısı kimi ötürmək cəhdi olmayıb. Bu açıqlığın giriş nəzarəti olmadan dərc edilmiş qırmızı komanda alətini və ya başqa bir şeyi əks etdirib-etdirməməsi paketin məzmununun özü tərəfindən həll olunmayan bir sualdır; dəqiq olan odur ki, işləyən, ümumi təyinatlı uzaqdan giriş və nəzarət alət dəsti hər kəs tərəfindən quraşdırıla bilərdi. çəyirdək.
Bu, xeyirxah bir xidmətə etibara əsaslanırdı. Istifadə npoint[.]io çünki rele müəyyənedici texnikadır. Bu, daha geniş bir nümunədir — C2-ni qanuni SaaS vasitəsilə yönləndirmək (yapışdırılmış saytlar, JSON qutuları, söhbət vebi)hooks, bulud sənədləri) zərərli trafikin normal geliştirici fəaliyyətinə qarışması və ələ keçirmək üçün operatora məxsus son nöqtənin olmaması üçün. Röledəki faydalı yüklər şifrələnmişdi, buna görə də qutunun məzmunu təsadüfi müşahidəçiyə əmrlər kimi oxunmazdı.
Naşir siqnalları nazik və ümumidir. Paket elan edildi müəllif “gcli ianəçiləri” və MIT lisenziyasından istifadə edərək ana səhifə və depo sahələrini göstərdi github[.]com/gcli-control/gcliBunların heç biri doğrulama deyil: müəllif sətri pulsuz mətndir, MIT lisenziya başlığı heç bir xərc tələb etmir və paket metaməlumatlarındakı depo URL-i mənşə sübutu deyil, iddiadır. Paket ətrafında yaradılan yeni bir ad, ümumi kollektiv müəllif və özünə istinad edən təşkilat/repo nümunəsi, layihənin uzaqdan idarəetmə funksiyası yaratmış qurulmuş bir vasitə əvəzinə, kodu daşımaq üçün xüsusi olaraq qurulduğu zaman necə göründüyünü göstərir. Bunları müşahidələr kimi qeyd edirik; onlar məqsədyönlü bir paylanma ilə uyğundur, lakin özləri tərəfindən yaradılmır.
Biz bu dispozisiyanı qabiliyyət və çatdırılma əsasında zərərli kimi təsvir edirik: gizli ötürücü ilə ictimai paket indeksində paylanan tam, işlədilə bilən uzaqdan giriş və müşahidə implantı. Hədəf və ya motiv göstərmirik.
Təsir, trendlər və müdafiəçilərin edə biləcəyi şeylər
Maskalama yönümlü triaj üçün kor nöqtə. Çoxlu avtomatlaşdırılmış paket çeşidləmə açarları maskalamaq siqnalları tipik qeyd defteri zərərli proqramları — qarışıq ləkələr, quraşdırma müddəti hooks, etimadnamə toplayan bir sətirlik. Sadəcə bir paket açıq şəkildə bir RATtəmiz oxunaqlı kod və quraşdırma qarmağı olmadan, bu siqnalların heç birini təqdim etmir və gizlətməni gözləyən evristikadan yayınmaq iqtidarındadır. Bu sinfi etibarlı şəkildə tutan siqnallar maskalanmaya əsaslanan deyil, struktur xarakterlidir: qabiliyyət siyahıyaalması (bir paketdə neçə fərqli host-nəzarət primitivinin birlikdə mövcud olması) və C2 formalı analiz (ümumi məqsədli məzmun hostinqi xidməti vasitəsilə yönləndirilən əmr/cavab döngəsi). Bu yoxlamalar nə qədər dürüst və ya obfuscated qablaşdırma belədir.
SaaS-as-C2 trendi. Qanuni hostinq xidmətindən sui-istifadə etmək yeni bir şey deyil, lakin xidməti bloklamağın müdafiə dəyəri yüksək və xidmətləri dəyişdirməyin hücum dəyəri sıfıra yaxın olduğundan işləməyə davam edir. Daha çoxunu gözləyin. Müəyyən pis domenlərə əsaslanan şəbəkə müdafiələri dərhal köhnəlir; davranış qaydaları ("bu proses panoya və veb-kamera oxuyur və sonra qeyd hostinqi API-si ilə əlaqə saxlayır") belə deyil.
Beton aşkarlama eskizi. Davamlı qayda adlandırılmır npoint[.]io ümumiyyətlə. Bu, fərdi olaraq ümumi, lakin normal bir geliştirici və ya CI host üzərində birlikdə nadir olan iki müşahidəni birləşdirir:
bir sessiya ərzində tək bir proses olduqda xəbərdarlıq:
(A) host nəzarət primitivinə — giriş cihazına (klaviatura/siçan qarmağı), kameraya, mikrofona, ekran görüntüsünə, panoya oxuma döngəsinə və ya brauzer etimadnaməsi anbarına (") daxil olurLogin Məlumatlar" / "Yerli Ştat" / DPAPI); VƏ
(B) (B)-dəki konkret xidmətdən asılı olmayaraq, ictimai məzmun hostinqi / yapışdırma / JSON-bin / chat-webhook xidmətinə xaricdən sorğular göndərir və sonra nəzərdən keçirilmək üçün qaldırır.
Heç bir hissə təkbaşına şübhəli deyil: çoxlu sayda qanuni alət ekran görüntüsü və çoxlu sayda JSON-u hosting API-sinə yerləşdirir. Qısamüddətli bir prosesin içindəki konyunktiv siqnaldır və istənilən röle fırlanmasından sağ çıxır.
Komandalar üçün praktik addımlar:
- Geliştirici və CI hostlarındakı ictimai paket quraşdırmalarına rahatlıq deyil, icra sərhədi kimi yanaşın — qurma agentindəki RAT, sirlərinizin olduğu RAT-dır.
- İcazə verilən daxili güzgülərə üstünlük verin; sözün əsl mənasında uzaqdan idarəetmə üçün adlandırılan və keylogger təsvir edən paket heç vaxt korporativ indeksdə həll olunmamalıdır.
- Xəbərdarlıq birləşmə — giriş cihazı və ya ekran görüntüsü, üstəgəl məzmun/yapışdırma/JSON-bin xidmətinə xaric olan trafik — ayrıca olaraq zərərsiz istifadəyə malik olan hər hansı bir ibtidai xidmətə deyil.
- Geniş host giriş imkanına malik paketlər üçün terminal hökmü kimi avtomatlaşdırılmış "təhlükəsiz" balına etibar etməyin; onları insan baxışına yönləndirin.
Paket ailəsi zərərli kimi təsnif edilib və reyestr silinməsi üçün yönləndirilib. Rele əsaslı C2 heç bir operatora məxsus hostu batmağa qoymadığı üçün davamlı müdafiə dəyəri yuxarıdakı davranış izindədir, heç bir blok siyahısı girişində deyil.







