Í lok maí uppgötvuðum við herferð til að dreifa Remote Access Trojan (RAT) malware—forritum sem gera árásarmönnum kleift að fjarstýra sýktu kerfi.
Hópurinn sem við skoðuðum einkenndist af því að hann valdi enga sérstaka RAT fjölskyldu fyrir sýkingu. Nokkra Tróverji varð vart við árásir innan herferðarinnar (sem allar voru víða aðgengilegar). Með þessum eiginleika minnti hópurinn okkur á rottukónginn - goðsagnakennd dýr sem samanstendur af nagdýrum með samtvinnuð hala.
Frumritið er tekið úr einfræðiriti K. N. Rossikov „Mýs og músalík nagdýr, efnahagslega mikilvægust“ (1908)
Til heiðurs þessari veru nefndum við hópinn sem við erum að íhuga RATKing. Í þessari færslu munum við fara í smáatriði um hvernig árásarmennirnir framkvæmdu árásina, hvaða verkfæri þeir notuðu og einnig deila hugsunum okkar um eignarhluti fyrir þessa herferð.
Framvinda árásarinnar
Allar árásir í þessari herferð áttu sér stað samkvæmt eftirfarandi reiknirit:
Notandinn fékk phishing tölvupóst með hlekk á Google Drive.
Með því að nota hlekkinn, hlaðið fórnarlambinu niður illgjarnri VBS skriftu sem tilgreindi DLL bókasafn til að hlaða lokafarði inn í Windows skrásetninguna og ræsti PowerShell til að keyra það.
DLL bókasafnið dældi endanlega hleðslunni - reyndar einu af RAT-unum sem árásarmenn nota - inn í kerfisferlið og skráði VBS skriftu í sjálfvirkri keyrslu til að ná fótfestu í sýktu vélinni.
Lokahleðslan var keyrð í kerfisferli og gaf árásarmanninum möguleika á að stjórna sýktu tölvunni.
Skipulega má tákna það svona:
Næst munum við einbeita okkur að fyrstu þremur stigunum þar sem við höfum áhuga á afhendingarkerfi spilliforrita. Við munum ekki lýsa í smáatriðum hvernig virkni spilliforritsins sjálfs er. Þau eru víða aðgengileg - annað hvort seld á sérhæfðum vettvangi, eða jafnvel dreift sem opinn uppspretta verkefni - og eru því ekki einstök fyrir RATKing hópinn.
Greining á árásarstigum
Stig 1. Vefveiðar tölvupóstur
Árásin hófst með því að fórnarlambið fékk illgjarnt bréf (árásarmennirnir notuðu mismunandi sniðmát með texta; skjámyndin hér að neðan sýnir eitt dæmi). Skilaboðin innihéldu tengil á lögmæta geymslu drive.google.com, sem talið er að hafi leitt til niðurhalssíðu PDF skjals.
Dæmi um vefveiðar í tölvupósti
Hins vegar var það í rauninni alls ekki PDF skjal sem var hlaðið inn heldur VBS forskrift.
Þegar þú smelltir á hlekkinn í tölvupóstinum á skjámyndinni hér að ofan, var skrá sem heitir Cargo Flight Details.vbs. Í þessu tilviki reyndu árásarmennirnir ekki einu sinni að dulbúa skrána sem lögmætt skjal.
Á sama tíma, sem hluti af þessari herferð, uppgötvuðum við handrit sem heitir Cargo Trip Detail.pdf.vbs. Það gæti nú þegar farið fyrir lögmæta PDF vegna þess að Windows felur sjálfgefið skráarviðbætur. Að vísu gæti grunur enn vakið í þessu tilfelli vegna táknmyndarinnar, sem samsvaraði VBS handritinu.
Á þessu stigi gæti fórnarlambið viðurkennt blekkinguna: skoðaðu bara niðurhalaðar skrár í eina sekúndu. Hins vegar, í slíkum vefveiðaherferðum, treysta árásarmenn oft á athyglislausan eða flýtifullan notanda.
Stig 2. VBS handritaaðgerð
VBS forskriftin, sem notandinn gat opnað óvart, skráði DLL bókasafn í Windows skrásetningunni. Handritið var óskýrt: línurnar í því voru skrifaðar sem bæti aðskilin með handahófskenndum staf.
Dæmi um óskýrt handrit
Afþekkingaralgrímið er frekar einfalt: þriðji hver stafur var útilokaður frá obfuscated strengnum, eftir það var niðurstaðan afkóðuð frá base16 í upprunalega strenginn. Til dæmis, frá gildinu 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (auðkennd á skjáskotinu hér að ofan) línan sem varð til var WScript.Shell.
Til að eyða strengjum notuðum við Python aðgerðina:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Hér að neðan, á línum 9–10, auðkennum við gildið sem afþekja leiddi til DLL skráar. Það var hann sem var hleypt af stokkunum á næsta stigi með PowerShell.
Strengur með óskýrri DLL
Hver aðgerð í VBS handritinu var keyrð þegar strengirnir voru teknir af.
Eftir að hafa keyrt skriftuna var aðgerðin kölluð wscript.sleep — það var notað til að framkvæma frestað framkvæmd.
Næst virkaði handritið með Windows skrásetningunni. Hann notaði WMI tækni til þess. Með hjálp þess var einstakur lykill búinn til og meginmál keyrsluskráarinnar var skrifað í færibreytuna. Skráningin var opnuð í gegnum WMI með eftirfarandi skipun:
Á þriðja stigi hleðst illgjarn DLL endanlega hleðsluna inn, dældi því inn í kerfisferlið og tryggði að VBS handritið ræsist sjálfkrafa þegar notandinn skráði sig inn.
Keyra í gegnum PowerShell
DLL var keyrt með eftirfarandi skipun í PowerShell:
móttekið skráningarvirðisgögn með nafni rnd_value_name — þessi gögn voru DLL skrá skrifuð á .Net pallinum;
hlaðið .Net einingunni sem varð til í vinnsluminni powershell.exe með því að nota aðgerðina [System.Threading.Thread]::GetDomain().Load()(nákvæm lýsing á Load() fallinu fáanleg á vefsíðu Microsoft);
sinnti aðgerðinni GUyyvmzVhebFCw]::EhwwK() - framkvæmd DLL bókasafnsins hófst með því - með breytum vbsScriptPath, xorKey, vbsScriptName... Parameter xorKey geymdi lykilinn til að afkóða endanlega farminn og færibreyturnar vbsScriptPath и vbsScriptName voru fluttar til að skrá VBS forskrift í sjálfvirkri keyrslu.
Lýsing á DLL bókasafninu
Í ósamsettu formi leit ræsiforritið svona út:
Loader á afþættu formi (aðgerðin sem keyrsla á DLL bókasafninu hófst með er undirstrikuð með rauðu)
Bootloaderinn er varinn af .Net Reactor protector. De4dot tólið gerir frábært starf við að fjarlægja þennan verndara.
Þessi hleðslutæki:
sprautaði hleðslunni inn í kerfisferlið (í þessu dæmi það svchost.exe);
Ég bætti VBS skriftu við sjálfvirkri keyrslu.
Burðarsprautun
Við skulum skoða aðgerðina sem PowerShell handritið kallaði.
Aðgerð kölluð af PowerShell handriti
Þessi aðgerð framkvæmdi eftirfarandi aðgerðir:
afkóðaði tvö gagnasett (array и array2 á skjáskotinu). Þeir voru upphaflega þjappaðir með gzip og dulkóðaðir með XOR reikniritinu með lyklinum xorKey;
afrituð gögn á úthlutað minnissvæði. Gögn frá array - á minnissvæðið sem bent er á intPtr (payload pointer í skjáskotinu); gögn frá array2 - á minnissvæðið sem bent er á intPtr2 (shellcode pointer í skjáskotinu);
kallað fallið CallWindowProcA(описание Þessi aðgerð er fáanleg á vefsíðu Microsoft) með eftirfarandi færibreytum (nöfn færibreytanna eru skráð hér að neðan, á skjámyndinni eru þær í sömu röð, en með vinnugildum):
lpPrevWndFunc - vísar á gögn frá array2;
hWnd — bendi á streng sem inniheldur slóðina að keyrsluskránni svchost.exe;
Msg - vísar á gögn frá array;
wParam, lParam - skilaboðabreytur (í þessu tilfelli voru þessar færibreytur ekki notaðar og höfðu gildin 0);
búið til skrá %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlhvar <name> - þetta eru fyrstu 4 stafirnir í færibreytunni vbsScriptName (í skjámyndinni byrjar kóðabrotið með þessari aðgerð á skipuninni File.Copy). Þannig bætti spilliforritið URL-skrá á listann yfir sjálfvirkar keyrsluskrár þegar notandinn skráði sig inn og festist þannig við sýktu tölvuna. Vefslóð skráin innihélt tengil á handritið:
Til að skilja hvernig inndælingin var framkvæmd afkóðum við gagnafylkin array и array2. Til að gera þetta notuðum við eftirfarandi Python aðgerð:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Í kjölfarið komumst við að því að:
array var PE skrá - þetta er endanleg hleðsla;
array2 var skelkóðinn sem þurfti til að framkvæma inndælinguna.
Skeljakóði úr fylki array2 samþykkt sem fallgildi lpPrevWndFunc í fall CallWindowProcA. lpPrevWndFunc — svarhringingaraðgerð, frumgerð hennar lítur svona út:
Svo þegar þú keyrir aðgerðina CallWindowProcA með breytum hWnd, Msg, wParam, lParam skeljakóði frá fylkinu er keyrður array2 með rökum hWnd и Msg. hWnd er bendi á streng sem inniheldur slóðina að keyrsluskránni svchost.exeOg Msg — vísir að endanlegu farmi.
Skeljakóði fékk aðgerðarföng frá kernel32.dll и ntdll32.dll byggt á kjötkássagildum úr nöfnum þeirra og sprautað lokafarminni inn í vinnsluminni svchost.exemeð því að nota Process Hollowing tækni (þú getur lesið meira um það í þessu grein). Þegar skelkóðanum er sprautað:
búið til ferli svchost.exe í biðstöðu með því að nota aðgerðina CreateProcessW;
faldi síðan skjá hlutans í vistfangarými ferlisins svchost.exe með því að nota aðgerðina NtUnmapViewOfSection. Þannig losaði forritið minnið um upprunalega ferlið svchost.exeað úthluta síðan minni fyrir farminn á þessu heimilisfangi;
úthlutað minni fyrir farminn í vistfangarýminu svchost.exe með því að nota aðgerðina VirtualAllocEx;
Upphaf inndælingarferlis
skrifaði innihald hleðslunnar inn í ferilsfangarýmið svchost.exe með því að nota aðgerðina WriteProcessMemory (eins og á skjáskotinu hér að neðan);
hóf ferlið á ný svchost.exe með því að nota aðgerðina ResumeThread.
Að ljúka inndælingarferlinu
malware sem hægt er að hlaða niður
Sem afleiðing af lýstum aðgerðum var einn af nokkrum RAT-flokki spilliforritum settur upp á sýkta kerfinu. Taflan hér að neðan sýnir spilliforritið sem notað var í árásinni, sem við getum með öryggi eignað einum hópi árásarmanna, þar sem sýnin fengu aðgang að sama stjórn- og stjórnunarþjóni.
Í fyrsta lagi sú staðreynd að árásarmennirnir notuðu nokkrar mismunandi RAT fjölskyldur í einu. Þessi hegðun er ekki dæmigerð fyrir þekkta nethópa, sem nota oft um það bil sömu verkfæri og þeir þekkja.
Í öðru lagi notaði RATKing spilliforrit sem annað hvort er selt á sérhæfðum vettvangi fyrir lágt verð, eða er jafnvel opið verkefni.
Fullkomnari listi yfir spilliforrit sem notaður er í herferðinni - með einum mikilvægum fyrirvara - er gefinn í lok greinarinnar.
Um hópinn
Við getum ekki rekið illgjarna herferð sem lýst er til þekktra árásarmanna. Í bili teljum við að þessar árásir hafi verið gerðar af í grundvallaratriðum nýr hópur. Eins og við skrifuðum í upphafi kölluðum við það RATKing.
Til að búa til VBS handritið notaði hópurinn líklega tól svipað og tólið VBS-Crypter frá framkvæmdaraðila NYAN-x-CAT. Þetta er gefið til kynna með líkt handritinu sem þetta forrit býr til og handriti árásarmannanna. Nánar tiltekið, þeir báðir:
framkvæma seinkaða framkvæmd með því að nota aðgerðina Sleep;
nota WMI;
skrá meginmál keyrsluskrárinnar sem skrásetningarlykilsbreytu;
keyrðu þessa skrá með því að nota PowerShell í eigin heimilisfangarými.
Til glöggvunar skaltu bera saman PowerShell skipunina til að keyra skrá úr skránni, sem er notuð af handriti sem búið er til með VBS-Crypter:
Athugaðu að árásarmennirnir notuðu annað tól frá NYAN-x-CAT sem eitt af hleðslum - LimeRAT.
Heimilisföng C&C netþjónanna gefa til kynna annað sérkenni RATKing: hópurinn vill frekar kraftmikla DNS þjónustu (sjá lista yfir C&C í IoC töflunni).
IoC
Taflan hér að neðan veitir heildarlista yfir VBS forskriftir sem líklega má rekja til herferðarinnar sem lýst er. Öll þessi forskrift eru svipuð og framkvæma um það bil sömu röð aðgerða. Allir dæla þeim spilliforritum í RAT flokki inn í traust Windows ferli. Öll eru þau með C&C vistföng skráð með Dynamic DNS þjónustu.
Hins vegar getum við ekki fullyrt að öllum þessum forskriftum hafi verið dreift af sömu árásarmönnum, að undanskildum sýnum með sömu C&C vistföng (til dæmis, kimjoy007.dyndns.org).