PointBlank: PyPI RAT скрива C2 у JSON-Bin сервису

PointBlank: потпуно функционалан Python RAT који је покретао свој командни канал преко бесплатне услуге хостовања белешки

ТЛ; ДР

PyPI пакет под називом gcli-control испоручио је комплетан алат за даљински приступ за Windows: евидентирање откуцаја тастера, снимање веб камере и микрофона, праћење међуспремника, приступ акредитивима прегледача, контролу екрана, перзистентност, повећање привилегија и саморекламираних „140+ команди“. Није крио шта је то: сопствени PyPI резиме пакета га је описао као „алат за даљински приступ путем npoint.io".

Детаљ на којем вреди застати је та фраза „преко npoint.io.“ Уместо да зове кући на наменски сервер, имплантат је коришћен npoint[.]io (бесплатна, легитимна услуга за хостовање малих JSON докумената) као свој релеј за командовање и контролу. Оператор уписује команде у JSON корпу; имплант анкетира ту корпу, извршава је и враћа резултате. Нема домена у власништву нападача за блокирање, нема нове IP адресе за обележавање: саобраћај иде ка сервису који програмери користе сваки дан.

Шест верзија је објављено за отприлике тринаест и по сати, свака способнија од претходне. Свака од њих је оцењена ml_predicted_safe од стране аутоматизованог класификатора пре него што је ручни преглед рекласификовао породицу као злонамерну.

Анатомија напада

gcli-control инсталира пакет за увоз gcli, Пајтон кодна база од 35 модула. Нема времена инсталације hooks — ништа не ради током пип инсталлМогућност се налази у самим модулима, позива се када се алат покрене, а распоред модула изгледа као спецификација производа:

Област способностиМодули
Надзор домаћинаkeylog, webcam, audio, clipboard, desktop, monitoring
Акредитиви и приступ подацимаbrowser, forensics, fileops, transfer, users
Упориште и ескалацијаpersistence, elevator, registry, security
Ревизија хоста и мрежеsystem, processes, network_config, wifi, bluetooth, netutils
Команда и контролаclient, host, session, protocol, npoint, crypto, encrypt

Командни канал је занимљив део. Већина алата за даљински приступ долази до сервера којим управља оператер — ИП адресе, домена, провајдера хостинга који се могу пријавити и искључити из мреже. gcli-control уместо тога третира бесплатна JSON-bin услуга као деад-дроп. npoint модул чита и пише мале JSON документе на npoint[.]io преко обичног HTTPS-а; крипто/шифрирање Модули обавијају размењене корисне терете тако да садржај контејнера није команде у отвореном тексту. Ефекат је посредовани, шифровани релеј:

  • Оператор убацује (шифровану) инструкцију у JSON корпу.
  • Имплант, који се покреће на жртвеном хосту, анкетира тај бинарник, дешифрује га, извршава један од својих обрађивача команди и записује (шифровани) резултат назад.
  • За мрежног монитора, жртва једноставно разговара са npoint[.]io — услуга са легитимним разлогом да се појави у саобраћају програмера.

Овде нема преузимања друге фазе нити замаскираног програма за учитавање: могућност се испоручује у целини, у читљивом Пајтону, а једино „скривање“ је избор релеја и шифровање преносних корисних оптерећења.

Вреди објаснити зашто је JSON-bin мртва тачка оперативно атрактивна, јер објашњава зашто очекујемо да ћемо поново видети образац:

  • Нема крајње тачке у власништву оператера. Нема C2 домена за регистрацију, нема VPS-а за изнајмљивање, нити било чега што би бранилац или регистрар могао да заплени. Уклањање пакет не додирује канал; уклањање каналу значи тражити од SaaS-а опште намене да надгледа један документ међу милионима.
  • Прање репутације. Одлазни HTTPS поруке ка добро познатом програмерском сервису не носе никакве последице по репутацију које би имао нови домен или необрађена IP адреса. Многа подешавања филтрирања излаза то имплицитно дозвољавају.
  • Асинхроност и могућност порицања. Модел полирања — имплант преузима документ у интервалу уместо да држи отворени сокет — производи саобраћај који изгледа као периодично API полирање, а не као интерактивна сесија. Шифровање садржаја документа значи да чак и аналитичар који пронађе канту види шифровани текст, а не листу команди.
  • Тривијална ротацијаПремештање у другу корпу или потпуно другу услугу за белешке/лепљење представља промену конфигурације у једном реду за оператера. Свака листа блокирања везана за одређени релеј је застарела у тренутку слања.

Компромис који оператер прихвата је пропусни опсег и латенција: релеј са мртвим преусмеравањем је спорији и мањег пропусног опсега од директне везе. За имплантат за надзор и контролу који углавном издаје кратке команде и прикупља резултате током времена, тај компромис је лако направити.

Тимелине

Породица се брзо појачала. Временске ознаке креирања захтева за означене верзије смештају цео посматрани лук у око тринаест и по сати, а број доказа самог скенера је растао заједно са кодом — од неколико означених локација у првој верзији до четрнаест у најновијој.

верзијаПрви пут виђен (UTC)Beleške
0.1.02026-07-21 12:59Почетно отпремање; минимално означена површина
0.5.02026-07-21 18:01Могућности се шире
0.2.02026-07-21 18:03(нумерисање верзија није монотоно са редоследом отпремања)
0.6.02026-07-22 00:44Шири сет модула
0.7.02026-07-22 01:58Готово комплетан сет алата
0.7.12026-07-22 02:28Најновије; 35 модула, пуне могућности

Бројеви верзија нису објављени стриктним редоследом, али правац је јасан: мало прво смањење, затим брза итерација ка потпуно функционалној верзији 0.7.1. Ово је облик пројекта у активном развоју који се јавно региструје како расте, а не једнократно уклањање.

Индикатори компромиса

Сви доле наведени индикатори су потврђени у односу на садржај пакета на диску и детерминистичко скенирање индикатора верзије 0.7.1; ниједан није спекулативан.

типИндикатор
Пакет (PyPI)gcli-control, верзије 0.1.0, 0.2.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1
Увези пакетgcli
C2 релејnpoint[.]io (JSON-bin мртво место; шифровани корисни терет)
Наведено спремиштеgithub[.]com/gcli-control/gcli
Бихејвиорални отисак прстаКо-локирани модули за надзор: keylog, webcam, audio, clipboard, browser, плус перзистентност, лифт и командни слој клијент/хост/протокол у једном пакету
Инсталирати hooksНиједан: могућност се покреће током извршавања алата, а не током инсталације

Напомена браниоца: Најјачи трајни сигнал није домен (хост релеја се тривијално ротира) већ обликујуједан пакет који обједињује три или више различитих примитива за надзор хоста усмерава петљу команда/одговор кроз јавни сервис за хостовање садржаја. Блокирање npoint[.]io директно је непрактично за већину продавница; упозоравање на неочекивани процес који и снима улазне уређаје и комуницира са JSON-bin сервисом је далеко робусније.

Посматрано понашање и уоквиривање

Две ствари чине овај узорак необичним, и обе су уочљиве чињенице, а не закључци о мотиву.

Само се рекламирало. Резиме пакета дистрибуиран на PyPI-ју навео је могућности једноставним језиком – даљински приступ, контрола радне површине, управљање корисницима, веб камера, звук, писаћи кључ, перзистентност, подаци прегледача, WiFi, регистар, „140+ команди“. Није било покушаја да се код представи као помоћник за изградњу, CLI омотач или услужни програм за вештачку интелигенцију, што је чешћа маска коју виђамо у јавним регистрима. Да ли та отвореност одражава алатку црвеног тима објављену без контроле приступа или нешто друго, питање је које сам садржај пакета не решава; оно што је сигурно јесте да је функционалан, општи комплет алата за даљински приступ и надзор могао да инсталира свако ко има... бод.

Ослањало се на поверење у бенигну услугу. Коришћење npoint[.]io пошто је релеј дефинишућа техника. То је пример ширег обрасца — усмеравање C2 кроз легитимни SaaS (сајтови за лепљење, JSON канте, веб за ћаскањеhooks, документација у облаку) тако да се злонамерни саобраћај уклапа у нормалне активности програмера и да нема крајње тачке у власништву оператера коју би могао да заузме. Корисни терет на релеју је био шифрован, тако да садржај корпе не би био очитан као команде случајном посматрачу.

Сигнали издавача су танки и генерички. Пакет је прогласио аутор „gcli сарадника“ и MIT лиценце, и усмерио је своју почетну страницу и поља репозиторијума на гитхуб[.]цом/гцли-цонтрол/гцлиНишта од тога није верификација: стринг аутора је слободан текст, заглавље МИТ лиценце не кошта ништа, а УРЛ репозиторијума у ​​метаподацима пакета је тврдња, а не доказ порекла. Образац — потпуно ново име, генерички колективни аутор и самореференцијална организација/репозиторијум креирана око пакета — је како пројекат изгледа када је посебно постављен да носи код, а не као успостављени алат који је случајно развио функцију даљинског управљања. Ово бележимо као запажања; она су у складу са, али сама по себи не успостављају, дистрибуцију изграђену наменски.

Описујемо расподелу као злонамерну на основу могућности и начина испоруке: комплетан, покретачки имплантат за даљински приступ и надзор, дистрибуиран на јавном индексу пакета са тајним релејем. Не наводимо мету нити мотив.

Утицај, трендови и шта браниоци могу да ураде

Слепа тачка за тријажу усмерену на прерушавање. Много аутоматизованих кључева за тријажу пакета на прерушен сигнали типични злонамерни програм у регистру — замаскирани блобови, време инсталације hooks, једноредне фразе за прикупљање акредитива. Пакет који је једноставно отворено пацов, са чистим и читљивим кодом и без инсталационих закачки, не приказује ниједан од тих сигнала и може да промакне хеуристикама које очекују прикривање. Сигнали који поуздано хватају ову класу су структурни, а не засновани на прикривању: попис могућности (колико различитих примитива за надзор хоста коегзистира у једном пакету) и анализа C2-облика (петља команда/одговор усмерена кроз услугу хостовања садржаја опште намене). Те провере се активирају без обзира на то колико су искрене или обфусцатед амбалажа је.

Тренд SaaS-као-C2. Злоупотреба легитимног хостинг сервиса као „мртвог места“ није нова, али и даље функционише јер је одбрамбени трошак блокирања сервиса висок, а офанзивни трошак промене сервиса близу нуле. Очекујте још тога. Мрежна одбрана везана за одређене лоше домене одмах застарева; правила понашања („овај процес чита међуспремник и веб камеру, а затим комуницира са API-јем за хостовање белешки“) не.

Скица за детекцију бетона. Трајно правило не именује npoint[.]io уопште. Комбинује два запажања која су појединачно уобичајена, али заједно ретка код нормалног програмера или CI хоста:

упозорење када један процес, у оквиру једне сесије, оба:
(А) приступа примитивном уређају за надзор хоста — улазном уређају (тастатура/миш), камери, микрофону, снимању екрана, петљи читања међуспремника или складишту акредитива прегледача („Login „Подаци“ / „Локално стање“ / DPAPI); И
(Б) упућује одлазне захтеве јавном сервису за хостовање садржаја / лепљење / JSON-bin / chat-webhook, а затим их подиже на преглед, без обзира на конкретан сервис у (Б).

Ниједна половина није сумњива сама по себи: мноштво легитимних алата снима екран, а многи објављују JSON на хостинг API. Конјункција унутар једног краткотрајног процеса је сигнал и она преживљава сваку ротацију релеја.

Практични кораци за тимове:

  • Третирајте јавне инсталације пакета на хостовима за програмере и CI као границу извршавања, а не као погодност — RAT на агенту за изградњу је RAT са вашим тајним подацима.
  • Преферирајте интерне огледала са дозвољене листе; пакет који је дословно назван по даљинском управљању и описује програм за слање кључева никада не би требало да се разреши на корпоративном индексу.
  • Упозорење на комбинација — улазни уређај или снимак екрана плус одлазни саобраћај ка сервису content/paste/JSON-bin — уместо на било ком појединачном примитивацу, који сам по себи има бенигне употребе.
  • Не ослањајте се на аутоматизовану „безбедну“ оцену као коначну пресуду за пакете са широким могућностима приступа хосту; усмерите их на људски преглед.

Породица пакета је класификована као злонамерна и упућена на уклањање из регистра. Пошто C2 базиран на релеју не оставља ниједан хост у власништву оператера да пропадне, трајна одбрамбена вредност је у горе наведеном бихевиоралном отиску, а не у било ком појединачном уносу на листи блокираних података.

sca-tools-software-composition-analysis-tools
Приоритизујте, отклоните и обезбедите ризике везане за ваш софтвер
Набавите свој бесплатни налог.
Није потребна кредитна картица.

Обезбедите свој развој и испоруку софтвера

са Xygeni пакетом производа