RATKing: kampanyaya nû ya bi Trojanên gihîştina dûr
Di dawiya Gulanê de, me kampanyayek ji bo belavkirina malwareya Remote Access Trojan (RAT)-bernameyên ku dihêle êrîşkar ji dûr ve pergalek vegirtî kontrol bikin kifş kir.
Koma ku me lêkolîn kir ji hêla vê yekê ve hate veqetandin ku ew malbatek taybetî ya RAT ji bo enfeksiyonê hilnebijart. Gelek Trojans di êrîşên di nav kampanyayê de hatin dîtin (hemû jî bi berfirehî peyda bûn). Bi vê taybetmendiya xwe, komê padîşahê mişkê anî bîra me - heywanek efsanewî ku ji rovîyên bi dûvikên hevgirtî pêk tê.
Orjînal ji monografiya K. N. Rossikov "Mişk û mişkên mîna mişk, yên herî girîng ên aborî" (1908) hatiye girtin.
Ji bo rûmeta vê mexlûqê, me navê koma ku em difikirin RATKing kirin. Di vê postê de, em ê bi hûrgulî biçin ser ka êrîşkaran çawa êrîş pêk anîne, wan kîjan amûr bikar anîne, û di heman demê de ramanên xwe yên li ser destnîşankirina vê kampanyayê parve bikin.
Pêşketina êrîşê
Hemî êrîşên di vê kampanyayê de li gorî algorîtmaya jêrîn pêk hatin:
Bikarhêner e-nameyek phishing bi girêdana Google Drive-ê wergirt.
Bi karanîna zencîreyê, mexdûr skrîptek VBS-ya xerab dakêşand ku pirtûkxaneyek DLL destnîşan kir da ku barkirina paşîn di nav qeyda Windows-ê de bar bike û PowerShell da destpêkirin da ku wê bicîh bike.
Pirtûkxaneya DLL bargiraniya paşîn - di rastiyê de, yek ji RAT-ên ku ji hêla êrîşkaran ve hatî bikar anîn - di pêvajoya pergalê de derzî kir û skrîptek VBS di autorun de tomar kir da ku di makîneya vegirtî de cîh bigire.
Barkirina paşîn di pêvajoyek pergalê de hate darve kirin û ji êrîşker re viya da ku komputera vegirtî kontrol bike.
Ji hêla şematîkî ve dikare bi vî rengî were temsîl kirin:
Dûv re, em ê li ser sê qonaxên yekem bisekinin, ji ber ku em bi mekanîzmaya radestkirina malware re eleqedar in. Em ê bi hûrgulî mekanîzmaya xebitandina malware bixwe rave nekin. Ew bi berfirehî têne peyda kirin - an li ser forumên pispor têne firotin, an jî wekî projeyên çavkaniya vekirî têne belav kirin - û ji ber vê yekê ji koma RATKing re ne yekta ne.
Analîza qonaxên êrîşê
Qonaxa 1. E-nameya Phishing
Êrîş bi wergirtina mexdûr nameyek xerab dest pê kir (êrîşkaran bi nivîsê şablonên cihêreng bikar anîn; dîmena jêrîn mînakek nîşan dide). Di peyamê de girêdanek ji depoyek rewa re hebû drive.google.com, ya ku tê texmîn kirin rê li ber rûpelek dakêşana pelgeya PDF-ê girt.
Mînaka e-nameya Phishing
Lêbelê, bi rastî, ew ne belgeyek PDF-ê bû ku bi tevahî hatî barkirin, lê skrîptek VBS bû.
Gava ku we li ser lînka ji e-nameya di dîmena jorîn de bikirtînin, pelek bi navê Cargo Flight Details.vbs. Di vê mijarê de êrîşkaran jî hewl nedan ku dosyayê wekî belgeyek rewa veşêrin.
Di heman demê de, di çarçoveya vê kampanyayê de, me senaryoyek bi navê xwe kifş kir Cargo Trip Detail.pdf.vbs. Ew jixwe dikare ji bo PDFek rewa derbas bibe ji ber ku Windows ji hêla xwerû ve dirêjkirina pelan vedişêre. Rast e, di vê rewşê de, guman hîn jî dikare ji hêla îkona wê ve, ku bi tîpa VBS-ê re têkildar e, were rakirin.
Di vê qonaxê de, mexdûr dikaribû xapandinê nas bike: tenê hûrdemek hûrgulî li pelên dakêşandî binêre. Lêbelê, di van kampanyayên phishing de, êrîşkar bi gelemperî xwe dispêrin bikarhênerek bêhiş an bilez.
Qonaxa 2. Operasyona skrîptê ya VBS
Skrîpta VBS, ku bikarhêner dikaribû bêhemdî veke, pirtûkxaneyek DLL di qeyda Windows-ê de tomar kir. Nivîsar hate şaş kirin: Rêzên tê de wekî bytên ku bi karakterek kêfî veqetandî hatine nivîsandin.
Nimûneya skrîptê ya bêserûber
Algorîtmaya deobfuscation pir hêsan e: her karaktera sêyem ji xêza nepenî hate derxistin, pişt re encam ji bingehê16-ê di rêza bingehîn de hate deşîfre kirin. Ji bo nimûne, ji nirxê 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (di dîmena li jor de hate ronî kirin) xeta encam bû WScript.Shell.
Ji bo ku rêzan ji hev derxînin, me fonksiyona Python bikar anî:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Li jêr, li ser rêzikên 9-10, em nirxa ku deobfuscation di encamê de pelek DLL-ê encam daye ronî dikin. Ew bû ku di qonaxa paşîn de bi karanîna PowerShell hate destpêkirin.
Rêzek bi DLL-ya nepenî
Her fonksiyonek di skrîpta VBS-ê de ji ber ku têlan jihevdeçûn hatin darve kirin.
Piştî xebitandina senaryoyê, fonksiyonê hate gazî kirin wscript.sleep - ew ji bo pêkanîna darvekirina taloqkirî hate bikar anîn.
Dûv re, skrîpt bi qeyda Windows-ê re xebitî. Wî teknolojiya WMI ji bo vê yekê bikar anî. Bi alîkariya wê, mifteyek bêhempa hate afirandin, û laşê pelê darvekirî li gorî pîvana wê hate nivîsandin. Registry bi WMI-ê bi karanîna fermana jêrîn ve hatî gihîştin:
Têketinek ku di qeydê de ji hêla tîpek VBS ve hatî çêkirin
Qonaxa 3. Operasyona pirtûkxaneya DLL
Di qonaxa sêyem de, DLL-ya xirab barkirina paşîn bar kir, ew xist nav pêvajoya pergalê, û piştrast kir ku dema ku bikarhêner têkeve skrîpta VBS bixwe dest pê kir.
Bi rêya PowerShell-ê bixebitin
DLL bi karanîna fermana jêrîn di PowerShell de hate darve kirin:
Daneyên nirxa qeydê bi navê xwe wergirt rnd_value_name - ev dane pelek DLL bû ku li ser platforma .Net hatî nivîsandin;
module .Net encam di bîra pêvajoyê de bar kir powershell.exe fonksiyonê bikar tîne [System.Threading.Thread]::GetDomain().Load()(danasîna berfireh a fonksiyona Load(). li ser malpera Microsoft-ê heye);
fonksiyonê pêk anî GUyyvmzVhebFCw]::EhwwK() - pêkanîna pirtûkxaneya DLL bi wê dest pê kir - bi parametre vbsScriptPath, xorKey, vbsScriptName. Parametre xorKey mifteya ji bo deşîfrekirina bargiraniya dawîn, û pîvanan hilanîn vbsScriptPath и vbsScriptName hatin veguheztin da ku di autorun de skrîptek VBS tomar bikin.
Danasîna pirtûkxaneya DLL
Di forma decompiled de, bootloader bi vî rengî xuya bû:
Loader di forma decompiled de (fonksîyona ku bi darvekirina pirtûkxaneya DLL dest pê kir bi sor tê xêzkirin)
Bootloader ji hêla parastvanê .Net Reactor ve tê parastin. Karûbarek de4dot ji rakirina vê parastinê karekî hêja dike.
Ev loader:
bargiraniyê xiste nav pêvajoya pergalê (di vê nimûneyê de svchost.exe);
Min skrîptek VBS li autoun zêde kir.
derziyê payload
Ka em li fonksiyona ku skrîpta PowerShell gazî kiriye binêrin.
Fonksiyon ji hêla skrîpta PowerShell ve tê gotin
Vê fonksiyonê çalakiyên jêrîn pêk anî:
du komên daneyan deşîfre kir (array и array2 di dîmenderê de). Ew bi eslê xwe bi karanîna gzip-ê hatine komkirin û bi algorîtmaya XOR-ê bi mifteyê ve hatine şîfre kirin xorKey;
dane kopî kirin li deverên bîranînê yên veqetandî. Daneyên ji array - ji qada bîranînê re destnîşan kir intPtr (payload pointer di dîmenê de); daneyên ji array2 - ji qada bîranînê re destnîşan kir intPtr2 (shellcode pointer di dîmenê de);
fonksiyonê tê gotin CallWindowProcA(şîrove Ev fonksiyon li ser malpera Microsoft-ê heye) bi pîvanên jêrîn (navên pîvanan li jêr têne navnîş kirin, di dîmenderê de ew bi heman rêzê ne, lê bi nirxên xebatê):
lpPrevWndFunc - nîşana daneyên ji array2;
hWnd - nîşana rêzek ku rêça pelê îcrakar vedihewîne svchost.exe;
Msg - nîşana daneyên ji array;
wParam, lParam - Parametreyên peyamê (di vê rewşê de, ev pîvan nehatin bikar anîn û nirxên 0 hebûn);
pelek çêkir %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlko <name> - ev 4 tîpên yekem ên parametreyê ne vbsScriptName (di dîmenê de, perçeya kodê bi vê çalakiyê re bi fermanê dest pê dike File.Copy). Bi vî rengî, malware pelek URL-ê li navnîşa pelên xwerû dema ku bikarhêner têketî zêde kir û bi vî rengî bi komputera vegirtî ve hate girêdan. Di pelê URLê de lînka skrîptê heye:
Ji bo ku fêm bikin ka derzî çawa hate kirin, me rêzikên daneyan deşîfre kir array и array2. Ji bo vê yekê me fonksiyona Python ya jêrîn bikar anî:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Di encamê de, me dît ku:
array pelek PE bû - ev bargiraniya dawîn e;
array2 koda shellê ya ku ji bo pêkanîna derziyê hewce bû bû.
Shellcode ji rêzek array2 wekî nirxek fonksiyonê derbas kirin lpPrevWndFunc nav fonksiyonek CallWindowProcA. lpPrevWndFunc - Fonksiyona vegerê, prototîpa wê wiha xuya dike:
Ji ber vê yekê gava ku hûn fonksiyonê dimeşînin CallWindowProcA bi parametre hWnd, Msg, wParam, lParam shellcode ji rêzê tê darve kirin array2 bi argumanan hWnd и Msg. hWnd îşaretek rêzek e ku rêça pelê îcrakar vedihewîne svchost.exeû Msg - nîşana barkirina paşîn.
Shellcode navnîşanên fonksiyonê ji wergirt kernel32.dll и ntdll32.dll li ser bingeha nirxên hash ên ji navên wan ve girêdayî ye û bargiraniya paşîn di bîra pêvajoyê de derdixe svchost.exebikaranîna teknîka Process Hollowing (hûn dikarin li ser vê yekê bêtir bixwînin gotara). Dema derzîlêdana shellcode:
pêvajoyek çêkir svchost.exe di rewşek rawestandî de fonksiyonê bikar tîne CreateProcessW;
paşê pêşandana beşê li cîhê navnîşana pêvajoyê veşart svchost.exe fonksiyonê bikar tîne NtUnmapViewOfSection. Bi vî rengî, bernameyê bîranîna pêvajoya orîjînal azad kir svchost.exeji bo ku paşê li vê navnîşanê ji bo barkirinê bîranîn veqetînin;
di cîhê navnîşana pêvajoyê de ji bo barkirinê bîranîn veqetandin svchost.exe fonksiyonê bikar tîne VirtualAllocEx;
Destpêka pêvajoya derzîlêdanê
naveroka barkirinê di cîhê navnîşana pêvajoyê de nivîsand svchost.exe fonksiyonê bikar tîne WriteProcessMemory (wek wêneya jêrîn);
pêvajo ji nû ve dest pê kir svchost.exe fonksiyonê bikar tîne ResumeThread.
Temamkirina pêvajoya derzîlêdanê
Malware dakêşandî
Di encama çalakiyên diyarkirî de, yek ji çend malwareyên pola RAT li ser pergala vegirtî hate saz kirin. Tabloya jêrîn malware-ya ku di êrîşê de hatî bikar anîn navnîş dike, ku em dikarin bi pêbawerî veguhezînin yek komek êrîşkaran, ji ber ku nimûne gihîştine heman servera ferman û kontrolê.
Nimûneyên malware yên belavkirî yên bi heman serverê kontrolê re
Li vir du tişt balkêş in.
Ya yekem, rastiya ku êrîşkaran bi yekcarî çend malbatên cûda yên RAT bikar anîn. Ev tevger ji bo komên sîberê yên naskirî ne tîpîk e, ku bi gelemperî hema hema heman komek amûrên ku ji wan re nas in bikar tînin.
Ya duyemîn, RATKing malware bikar anî ku an li ser forumên pispor bi bihayek kêm tê firotin, an jî projeyek çavkaniyek vekirî ye.
Navnîşek bêkêmasî ya malware-yên ku di kampanyayê de têne bikar anîn - bi yek hişyariyek girîng - di dawiya gotarê de tê dayîn.
Di derbarê komê de
Em nekarin kampanyaya xerab a diyarkirî bi tu êrîşkerên naskirî ve girêbidin. Niha em di wê baweriyê de ne ku ev êrîş ji aliyê komeke bingehîn a nû ve hatine kirin. Wekî ku me di destpêkê de nivîsand, me jê re got RATKing.
Ji bo afirandina skrîpta VBS, kom dibe ku amûrek mîna karûbar bikar bîne VBS-Crypter ji pêşvebirinê NYAN-x-CAT. Ev ji hêla wekheviya senaryoyê ya ku ev bername bi skrîpta êrîşkaran re diafirîne tê destnîşan kirin. Bi taybetî, ew herdu:
bi karanîna fonksiyonê darvekirina dereng pêk bînin Sleep;
WMI bikar bînin;
laşê pelê îcrakar wekî pîvanek mifteya qeydkirinê tomar bikin;
vê pelê bi karanîna PowerShell-ê di cîhê navnîşana xwe de bi kar bînin.
Ji bo zelaliyê, fermana PowerShell bidin hev da ku pelek ji qeydê bimeşîne, ku ji hêla skrîpta ku bi karanîna VBS-Crypter hatî afirandin ve tê bikar anîn:
Bala xwe bidinê ku êrîşkaran amûrek din ji NYAN-x-CAT wekî yek ji bargiran bikar anîn - LimeRAT.
Navnîşanên serverên C&C taybetmendiyek din a cihêreng a RATKing destnîşan dikin: kom karûbarên DNS yên dînamîkî tercîh dike (li navnîşa C&C-ya di tabloya IoC de binihêrin).
IoC
Tabloya li jêr navnîşek bêkêmasî ya nivîsarên VBS-ê yên ku bi îhtîmalek mezin dikare ji kampanyaya diyarkirî re were veqetandin peyda dike. Hemî van senaryoyan dişibin hev û bi qasî hev rêza çalakiyan pêk tînin. Hemî wan malware-ya pola RAT di pêvajoyek pêbawer a Windows-ê de derdixin. Hemî wan navnîşanên C&C hene ku bi karanîna karûbarên DNS-ya Dînamîkî hatine tomar kirin.
Lêbelê, em nikarin îdia bikin ku van hemî nivîsan ji hêla heman êrîşkaran ve hatine belavkirin, ji bilî nimûneyên bi heman navnîşanên C&C (mînak, kimjoy007.dyndns.org).