top of page

Rozbaľujeme RDStealer: Exfiltračný malware zameraný na RDP Workloads



V júni 2023 Bitdefender Labs zverejnili výskumnú štúdiu o špionážnej operácii vo východnej Ázii. Táto operácia prebiehala prinajmenšom od začiatku roka 2022 a vykazovala vysokú úroveň sofistikovanosti, typickú pre štátom podporované skupiny. Aj napriek použitiu rôznych metód sa nám nepodarilo priradiť tieto útoky konkrétnemu aktérovi, ale cieľ zodpovedá záujmom subjektov pôsobiacich na území Číny.


Najzaujímavejším objavom tohto výskumu je nová verzia malwaru, ktorú sme pomenovali RDStealer. Tento serverový implantát sleduje prichádzajúce pripojenie protokolu RDP (Remote Desktop Protocol) s povoleným mapovaním klientskych jednotiek. Pripájajúci sa klienti RDP sú infikovaní backdoorom Logutil (ďalší prispôsobený malware) a dochádza k exfiltrácii citlivých dát (napríklad prihlasovacích údajov alebo súkromných kľúčov).


Siderloading DLL (prečítajte si náš technický výklad) sa v posledných rokoch stal jednou z najrozšírenejších stealth techník. Úroveň maskovania, pozorovaná v tejto kampani, však prekonáva všetko, čoho sme boli doteraz svedkami. V rámci útoku sideloading je zreťazených viac knižníc DLL, vybrané umiestnenia dobre splývajú so systémom a samotný proces sideloadingu je iniciovaný prostredníctvom šikovného využitia subsystému WMI.


Ukážky malwaru RDStealer aj Logutil sú napísané v programovacom jazyku Go. Jazyk Go je známy svojou silnou podporou rôznych platforiem, čo autorom malwaru umožňuje vytvárať škodlivý kód, ktorý je možné spustiť vo viacerých operačných systémoch. Pri analýze domén, spojených s týmto útokom, sme skutočne zaznamenali odkazy na systém Linux, ale aj ESXi, čo naznačuje, že backdoor Logutil je multiplatformný nástroj.


Hoci je koncept tejto metódy útoku teoreticky známy už dlhšiu dobu, ide o prvý konkrétny prípad malwaru, ktorý ju využíva. Vzhľadom na to, že túto metódu je možné s minimálnymi alebo žiadnymi úpravami prispôsobiť pre útoky na rôzne počítačové platformy koncových užívateľov (EUC), a vzhľadom na to, že počas pandémie COVID-19 došlo k väčšiemu rozšíreniu týchto riešení, zdieľame tento výskum, aby sme zvýšili povedomie verejnosti.


Toto je súhrnná verzia štúdie špionážnej operácie RedClouds. Plné znenie výskumu Exposing RDStealer - Deep Dive do Targeted Cyber-Attack Against East-Asia Infrastructure obsahuje ďalšie podrobnosti, vrátane úplného zoznamu indikátorov kompromitácie a ďalších technických poznatkov.


Anatómia útoku

Na základe nášho výskumu, ktorý zahŕňal analýzu pasívnych informácií DNS, vzoriek VirusTotal a objavených artefaktov, sme zistili, že tento útočník je aktívny najmenej od roku 2020. Spočiatku sa útočník spoliehal na ľahko dostupné nástroje, ako je AsyncRat alebo Cobalt Strike. Od konca roku 2021, alebo začiatku roku 2022, však prešiel na používanie malwaru vyvinutého na zákazku. Tento prechod k vlastnému malwaru zodpovedá rastúcemu trendu pozorovanému u iných aktérov hrozieb, ktorí upravili svoje taktiky a úhybné manévre potom, čo sa rozšírili detekčné nástroje (ako EDR alebo XDR).


Hlavným cieľom útoku bola zrejme krádež prístupových údajov a exfiltrácia dát. V rámci únikovej taktiky použili útočníci zložky, u ktorých je menšie podozrenie, že obsahujú malware, a ktoré sú často vylúčené zo skenovania bezpečnostnými riešeniami:

  • %WinDir%\System32\

  • %WinDir%\System32\wbem\

  • %WinDir%\security\database\

  • %PROGRAM_FILES%\f-secure\psb\diagnostics

  • %PROGRAM_FILES_x86%\dell\commandupdate\

  • %PROGRAM_FILES%\dell\md storage software\md configuration utility\

Umiestnenia %PROGRAM_FILES% a %PROGRAM_FILES_x86% sú pravdepodobne vybrané tak, aby napodobňovali legálny softvér. Aj keď nie je možné určiť, či bol názov zložky zvolený náhodne, po preskúmaní súpisu hardvéru sme potvrdili, že infikované počítače boli skutočne vyrobené spoločnosťou Dell.


Škodlivý softvér bol objavený aj v ďalšej zložke %WinDir%\security\database, ktorá slúži ako úložný priestor pre bezpečnostné databázy v systéme Windows. Spoločnosť Microsoft poskytla pokyny, ako vylúčiť konkrétne súbory v tomto umiestnení zo skenovania bezpečnostnými programami zabezpečenia koncových bodov. Útočníci pravdepodobne predpokladali, že niektorí administrátori, alebo bezpečnostné riešenia, sa rozhodnú vylúčiť celú zložku namiesto toho, aby zaviedli presnejšie a podrobnejšie výnimky.


RDStealer

Prvý analyzovaný špecializovaný malware sa zameriava na zhromažďovanie dát, vrátane zachytávania obsahu schránky a funkcie keyloggingu. Zaujímavejšie nám však prišla schopnosť sledovať prichádzajúce pripojenie RDP a kompromitovať vzdialený počítač, pokiaľ je povolené mapovanie diskových jednotiek klienta.


Mapovanie klientskej jednotky (CDM) je jedným z virtuálnych kanálov, implementovaných ako súčasť protokolu RDP, ktorý umožňuje prenos dát medzi klientom RDP a serverom RDP (ďalšími príkladmi virtuálnych kanálov sú schránka alebo presmerovanie zvuku).



CDM je konkrétne zodpovedný za zobrazenie lokálnych jednotiek klientskeho počítača (počítača, z ktorého je relácia RDP zahájená) v rámci relácie vzdialenej plochy.



Táto funkcia umožňuje používateľom pristupovať k súborom a prenášať ich medzi ich lokálnym počítačom a vzdialeným serverom alebo pracovnou plochou, ku ktorej sú pripojení prostredníctvom protokolu RDP (ale aj iných protokolov). Túto funkciu často používajú administrátori na prenos súborov medzi vzdialeným serverom a svojou pracovnou stanicou správcu.



Mapovanie klientskych jednotiek však často používajú aj bežní koncoví používatelia v prostrediach EUC (End-user Computing), a to ako pre virtuálne plochy, tak aj pre virtualizáciu aplikácií. V prípade použitia EUC nemajú koncoví používatelia nad touto funkciou obvykle priamu kontrolu, pretože je konfigurovaná centrálne prostredníctvom politík. Aby táto funkcia fungovala, musí byť povolená ako na strane servera, tak na strane klienta, ale bežnou praxou je, že klienti (decentralizovaní) ju majú trvale povolenú, zatiaľ čo konfigurácia je spravovaná výhradne na strane servera (centralizovaná). Na tomto mieste je dobré pripomenúť, že nulová dôveryhodnosť sa netýka iba sietí alebo autentifikácie, ale jedná sa o komplexnejší princíp – servery umiestnené vo vnútornej sieti nemusia byť nutne dôveryhodnejšie ako klienti pripájajúci sa vzdialene.


Hoci nám chýbajú konkrétne podrobnosti o vektore infekcie a nemôžeme s konečnou platnosťou potvrdiť, či bol napadnutý systém využitý pre administrátorský prístup alebo pre bežnú interakciu s užívateľmi, je dôležité poznamenať, že táto technika je použiteľná v oboch prípadoch. Ďalej je potrebné spomenúť, že iné riešenia, využívajúce mapovanie diskových jednotiek klientov, môžu byť tiež náchylné k zraniteľnostiam, pokiaľ využívajú tsclient na presmerovanie z hostiteľa na klienta. Dokonca aj riešenia, ktoré sa nespoliehajú na tsclient, ale používajú vlastnú implementáciu virtuálnych kanálov, môžu byť cieľom útoku s minimálnymi úpravami kódu.


Na kompromitovaných počítačoch bol nástroj RDStealer umiestnený v súbore %PROGRAM_FILES%\dell\md storage software\md konfigurácia utility\modular disk service daemon.exe. Nástroj RDStealer je napísaný v jazyku Go a po analýze kódu sme identifikovali nasledujúce balíčky (knižnice kódu):

​názov balíčka

​opis

cli

Implementuje zachytávanie obsahu schránky pomocou rozhrania API systému Windows, napríklad OpenClipboard a GetClipboardData;

key

Implementuje zaznamenávanie stlačených kláves spolu s názvom okna;

main

Funguje ako orchestrátor a používa moduly balíčkov na nastavenie perzistencie a spustenie procedúry pre zber dát, ak sú splnené určité podmienky;

modules

Implementuje rôzne funkcie používané na zhromažďovanie a ukladanie dát pre ďalšiu exfiltráciu;

utils

Implementuje funkcie šifrovania a dešifrovania, manipuláciu s atribútmi súborov a funkciu logovania.

Po spustení začne hlavné funkcie zhromažďovať dáta schránky a stlačenia klávesov z hostiteľského počítača. Tieto údaje sa pravidelne ukladajú do súboru denníka C:\users\public\log.log vo forme zašifrovaných reťazcov. Po začatí zberu dát vytvorí RDStealer nekonečnú slučku, ktorá volá funkciu diskMounted. Funkcia diskMounted pravidelne kontroluje dostupnosť pripojenia tsclient a jedného z diskov C, D, E, F, G alebo H. Tieto zdieľania sú vytvorené automaticky, keď je povolené CDM, a reprezentujú jednotlivé disky pripojeného klienta RDP.



Po detekcii jednej z týchto akcií sa spustia nasledujúce funkcie:

  • main.notifyMaster - Oznámi command & control (C2) serveru, že je klient pripojený.

  • Main.DiskEnum - Spustí exfiltráciu dát z pripojeného klienta RDP.

  • main.writePersist - Nasadzuje backdoor Logutil do pripojeného klienta RDP.


notifyMaster - C2 komunikácia

Funkcia notifyMaster odosiela požiadavku GET na iný server v rovnakej sieti, ktorý bol určený ako proxy server pre komunikáciu s C2 infraštruktúrou útočníkov.


Adresa URL, na ktorú je táto požiadavka odoslaná, má tvar https://. Toto upozornenie slúži útočníkom ako signál, že jeden z napadnutých hostiteľov RDP sa pokúsil exfiltrovať dáta z pripojeného klienta, a tie sú teraz pripravené na manuálne stiahnutie.


DiskEnum - Exfiltrácia dát

Funkcia DiskEnum hľadá na pripojenom klientovi RDP všetky cenné informácie pre exfiltráciu dát.


Prvým cieľom je niekoľko veľmi špecifických zložiek, vrátane mRemoteNG (multiprotokolový správca vzdialených pripojení), KeePass (správca hesiel) a história z prehliadača Google Chrome. Ak je niektorý z týchto priečinkov nájdený, je vytvorený archív ZIP a uložený v hostiteľskom počítači RDP ako C:\Users\Public\Documents\.

Lokácia

ID

\\tsclient\c\users\

mre

\\tsclient\c\users\

keyp

\\tsclient\c\users\

chro

To poukazuje na skutočnosť, že útočníci aktívne vyhľadávajú prístupové údaje a uložené pripojenia k iným systémom. Tento trend je viditeľný aj v ďalšom kroku, kedy je klient skenovaný na súbory s určitými príponami v nasledujúcich umiestneniach: %AppData%, , Desktop, Documents, Downloads, %ProgramFiles% a %ProgramFiles(x86)%.

Súbory

ID

Detaily

.kdb, .kdbx

kdb

Databáza hesiel KeePass

confCons.xml

mre

pripojenie mRemoteNG

.rdg

rdg

Pripojenie Remote Desktop Connection Manager

id_rsa

idrsa

Privátne kľúče SSH

.xsh

xsh

​Pripojenie NetSarang Xshell

.tlp, .bscp

tlp

Bitvise SSH Client

.mxtsessions

mxts

Pripojenie MobaXterm

Všetky umiestnené súbory sú uložené v ZIP archíve na hostiteľovi RDP v nasledujúcom mieste: C:\Users\Public\Documents\


Po dokončení exfiltrácie dát zo vzdialenej jednotky C začne nástroj RDStealer preverovať písmená jednotiek D, E, F, G a H, ale s trochu iným prístupom. Namiesto prehľadávania konkrétnych umiestnení začne prehľadávať všetky zložky s nasledujúcimi výnimkami:

​windows, datareporting, libreoffice, node_modules, all user, default user, user data, .rust, download, desktop, dokument, assembly, . mui, .net, dotnet, visual, cache, recyklácia, systemapp, driverstore, catroot, package, prefetch, inštalatér, fonts, cursors

Pretože táto rekurzívna kontrola môže trvať dlho, existuje mechanizmus, ktorý obmedzuje jej spustenie iba raz týždenne. Súbor users\public\Videos\vcache.dat sa po dokončení exfiltrácie dát zmení, a naposledy zmenené dáta sa porovnajú s aktuálnym časom, aby sa určilo, či je čas na ďalšie preverenie systému. Stojí za zmienku, že táto funkcia nefunguje tak, ako bolo zamýšľané - umiestnenie tohto súboru nie je platné, pretože je definovaný ako reťazec bez písmena jednotky alebo umiestnenie zdieľaného priečinka. Je veľmi pravdepodobné, že útočníci zamýšľali vytvoriť tento súbor v kompromitovanom klientovi RDP (umiestnenie \\tsclient\c).


WritePersist - Downstream compromise

Funkcia WritePersist je zodpovedná za nasadenie backdooru Logutil do pripojeného RDP klienta.

Najprv získa zoznam užívateľov z \\tsclient\c\users. Pre domovský adresár každého používateľa sú z napadnutého hostiteľa RDP do pripojeného RDP klienta prenesené nasledujúce škodlivé súbory.

Zdroj

Cieľový cieľ

C:\Users\Public\Downloads\t1lnk.dat

\\tsclient\c\users\

C:\Users\Public\Downloads\msengine.exe

\\tsclient\c\Users\Public\Documents\msengine.exe

C:\Users\Public\Downloads\Event.dll

\\tsclient\c\Users\Public\Documents\Event.dll

C:\Users\Public\Downloads\event.sdb

\\tsclient\c\Users\Public\Documents\event.sdb

C:\Users\Public\Documents\n.dat

\\tsclient\c\windows\system32\wbem\NCObjAPI.dll

C:\Users\Public\Documents\w.dat

\\tsclient\c\windows\system32\wbem\WBEMWork.dll

U prvých 4 súborov sme na postihnutých počítačoch nenašli žiadne vzorky, ale zdá sa, že t1lnk.dat.lnk bol pri štarte spúšťačom perzistencie.


Posledné dva súbory sú zavádzač a backdoor Logutil. Ako popíšeme v nasledujúcej časti, Logutil je iniciovaný šikovným využitím subsystému WMI, čo naznačuje aj názov funkcie, ktorá tento backdoor nasadzuje - WorkWithWbem (WMI je implementácia WBEM od Microsoftu).


Logutil

Backdoor Logutil, napísaný v jazyku Go, implementuje typické funkcie, ktoré sú nevyhnutné pre udržiavanie prístupu do siete obete, ako je sťahovanie/odosielanie súborov a spúšťanie príkazov.


To, čo robí Logutil obzvlášť zaujímavým, je rozsah, v akom využíva techniky sideloadingu DLL na obchádzanie detekcií, v spojení s využitím WMI ako spúšťača na aktiváciu.


Zaznamenali sme kombináciu pasívnych (samostatné binárne súbory) a aktívnych (predinštalované binárne súbory) zneužitia DLL sideloading (pre pochopenie rozdielu si prečítajte náš výklad o DLL sideloading). Niektoré ukážky sa spoliehali na tradičnejšie DLL sideloading - naplánovanú úlohu spustí spustiteľný súbor, ktorý načíta knižnicu. Zaujímavejším variantom však bolo zneužitie služby Windows Management Instrumentation (Winmgmt), ktoré viedlo k spusteniu škodlivej binárnej knižnice bithostw.dll (=Logutil).


Na dosiahnutie tohto cieľa umiestnili útočníci škodlivý loader s názvom ncobjapi.dll do priečinka %WinDir%\System32\wbem. Tento podvodný implantát napodobňuje legitímnu knižnicu ncobjapi.dll, ktorá sa nachádza v nadradenej zložke %WinDir%\System32, tým, že exportuje rovnaké funkcie a sprostredkováva volanie pôvodnej knižnice. Pretože podpriečinok \wbem je kontrolovaný na existenciu tejto knižnice pred System32, je škodlivá knižnica načítaná ako prvá.



Tento implantát je veľmi účinný na vytvorenie perzistencie v systéme. Môže byť spustený buď službou WMI (automaticky spustenou s niekoľkými akciami obnovenia), alebo prostredníctvom hostiteľského procesu WMI. Často je spustených viac inštancií hostiteľského procesu WMI (WmiPrvSE.exe) a existuje viacero spôsobov spustenia tohto procesu (vrátane rozhrania DCOM pre vzdialené volania WMI). Knižnica ncobjapi.dll bola už predtým zneužitá inými útočníkmi, napríklad skupinou Lazarus alebo operátormi RadRat, ale v tomto prípade je iba súčasťou reťazca sideloadingu. Skutočným payloadom (načítané loaderom ncobjapi.dll) je bithostw.dll ( Logutil).


Logutil môže komunikovať s C2 infraštruktúrou priamo alebo prostredníctvom iného proxy servera v rovnakej sieti. Príkazy z C2 sa získavajú prostredníctvom požiadavky HTTP GET na adrese https://. Nižšie je uvedený zoznam príkazov, ktoré je možné získať zo vzdialeného servera C2:

príkaz

parameter

​detaily

set


Nastaví hodnotu (

​load


Knižnica DLL, ktorá má byť do pamäte reflexívne načítaná.

c


Vykonáva príkaz so zachytením výstupu (pomocou objektu shell)

s


Spustí príkaz bez zachytenia výstupu (pomocou objektu shell)

t


Touch operácia, ktorá nastaví atribúty prvého súboru na druhý súbor.

d1


Zavolá CryptUnprotectData na prijaté dáta a odošle výsledok späť.

fu

Nahráva súbor po častiach do počítača obete.

fd

Stiahne súbor od počítača obete po častiach

idle

Spí po dlhšiu dobu; doba spánku začína na 6 sekundách a zakaždým sa predlžuje o náhodnú celočíselnú hodnotu medzi 0 a 4;

sleep


Spí po určený počet sekúnd

ls


Vykoná rekurzívny výpis zložky

info

Odošle informácie o implantáte, ako je doba, počas ktorej beží, a priradené id.

exit

Exit


Záver


Kybernetickí zločinci neustále inovujú a skúmajú nové metódy, ako zvýšiť spoľahlivosť a utajenie svojich záškodníckych aktivít. Tento útok slúži ako dôkaz rastúcej sofistikovanosti moderných kybernetických útokov, ale tiež podčiarkuje skutočnosť, že útočníci môžu využiť svoje novo nadobudnuté zručnosti na zneužitie starších, široko rozšírených technológií. Celý text tohto prieskumu, ktorý zverejnila Bitdefender Labs, obsahuje ďalšie podrobnosti, vrátane úplného zoznamu indikátorov kompromitácie a ďalších technických poznatkov.


Najlepšou ochranou proti moderným útokom zostáva aj naďalej architektúra typu "defense-in-depth". Tento prístup zahŕňa použitie viacerých vrstiev prekrývajúcich sa bezpečnostných opatrení navrhnutých tak, aby poskytovali ochranu pred rôznorodými hrozbami.


Prvým krokom k prijatiu mnohovrstevnej stratégie je osvojenie si možností prevencia. Snažte sa obmedziť exponovanú plochu útoku a minimalizovať počet vstupných bodov, ktoré môžu útočníci využiť. Identifikujte a odstraňujte slabé miesta implementáciou záplat a implementáciou riešení pre riadenie rizík skôr, ako ich budú môcť využiť útočníci. Zvážte vplyv napadnutia hostiteľa VDI alebo RDS na pripájajúcich sa klientov, a ak je to nutné, skontrolujte a aktualizujte politiky prístupu.


Hoci sa tento prípad zameriava na presmerovanie jednotky klienta, všetky virtuálne kanály sú schopné prenášať dáta a môžu byť potenciálne zneužité. Automatizované ochranné kontroly by mali byť nasadené na všetky potenciálne vstupné body vystavené útočníkom (vrátane notebookov pre prácu z domu alebo pracovníkov na cestách). Patrí sem antivírusový program novej generácie, ale aj bezproblémovo integrovaná ochrana reputácie IP/URL/domény a ochrana proti doposiaľ neznámym hrozbám. Vďaka tomu môžete odhaliť a zablokovať väčšinu bezpečnostných incidentov skôr, ako stihnú napáchať škody.


Aj napriek všetkej vašej snahe sa môže stať, že moderné hrozby preniknú cez vaše kontroly prevencie a ochrany. Tu prichádzajú k slovu vaše detekčné schopnosti. Či už tieto funkcie získate ako produkt (EDR/XDR), alebo ako službu, cieľom je minimalizovať dobu, počas ktorej zostávajú útočníci neodhalení.


A napokon, aby všetky tieto funkcie účinne znižovali bezpečnostné riziká, je potrebné udržiavať schopnosti reakcie vo všetkých týchto oblastiach. Či už ide o aplikáciu záplat pred tým, než môžu byť zraniteľnosti zneužité, vyšetrovanie potenciálneho bezpečnostného incidentu alebo kontrolu škôd po narušení bezpečnosti, bezpečnostné operácie hrajú kľúčovú úlohu pri znižovaní bezpečnostných rizík.


Použitie viacerých vrstiev zabezpečenia vytvára navzájom sa prekrývajúce bariéry, ktoré musí útočník prekonať, čo môže znížiť pravdepodobnosť úspešných útokov, obmedziť rozsah útoku, pokiaľ k nemu dôjde, a poskytnúť včasné varovanie pred potenciálnymi hrozbami. V konečnom dôsledku tak možno zabrániť tomu, aby sa bezpečnostné incidenty stali narušením bezpečnosti.


Radi by sme poďakovali Victorovi Vrabiu, Cristine Vatamanovi, Alexandrovi Maximciucu a Clay Blankinship za pomoc pri zostavovaní tohto dokumentu.











1 view0 comments

Comments


bottom of page