Ryuk ir viena no slavenākajām ransomware opcijām pēdējos gados. Kopš tā pirmo reizi parādījās 2018. gada vasarā, tā ir apkopota
1. Vispārīga informācija
Šajā dokumentā ir analizēta Ryuk izspiedējvīrusa versija, kā arī ielādētājs, kas ir atbildīgs par ļaunprātīgas programmatūras ielādi sistēmā.
Ryuk izpirkuma programmatūra pirmo reizi parādījās 2018. gada vasarā. Viena no atšķirībām starp Ryuk un citām izpirkuma programmām ir tā, ka tās mērķis ir uzbrukt korporatīvajai videi.
2019. gada vidū kibernoziedznieku grupas uzbruka ļoti daudziem Spānijas uzņēmumiem, izmantojot šo izspiedējvīrusu.
Rīsi. 1: izvilkums no El Confidencial par Ryuk izspiedējvīrusa uzbrukumu [1]
Rīsi. 2: fragments no El País par uzbrukumu, kas veikts, izmantojot Ryuk izpirkuma programmatūru [2]
Šogad Ryuk ir uzbrukis ļoti daudziem uzņēmumiem dažādās valstīs. Kā redzams zemāk esošajos skaitļos, vissmagāk cieta Vācija, Ķīna, Alžīrija un Indija.
Salīdzinot kiberuzbrukumu skaitu, mēs varam redzēt, ka Ryuk ir ietekmējis miljoniem lietotāju un apdraudējis milzīgu datu apjomu, radot nopietnus ekonomiskus zaudējumus.
Rīsi. 3: Ryuk globālās darbības ilustrācija.
Rīsi. 4: 16 valstis, kuras visvairāk skārusi Ryuk
Rīsi. 5: to lietotāju skaits, kuriem uzbruka Ryuk izpirkuma programmatūra (miljonos)
Saskaņā ar parasto šādu draudu darbības principu šī izpirkuma programmatūra pēc šifrēšanas pabeigšanas upurim parāda izpirkuma maksu, kas ir jāsamaksā bitkoinos uz norādīto adresi, lai atjaunotu piekļuvi šifrētajiem failiem.
Kopš pirmās ieviešanas šī ļaunprogrammatūra ir mainījusies.
Šajā dokumentā analizētais šī apdraudējuma variants tika atklāts uzbrukuma mēģinājuma laikā 2020. gada janvārī.
Sarežģītības dēļ šī ļaunprogrammatūra bieži tiek attiecināta uz organizētām kibernoziedznieku grupām, kas pazīstamas arī kā APT grupas.
Daļai no Ryuk koda ir manāma līdzība ar citas labi zināmas izspiedējvīrusa Hermes kodu un struktūru, ar kuru tiem ir vairākas identiskas funkcijas. Tāpēc Ryuk sākotnēji bija saistīts ar Ziemeļkorejas grupu Lazarus, par kuru tajā laikā tika turētas aizdomas, ka tā ir Hermes izpirkuma programmatūras pamatā.
CrowdStrike Falcon X pakalpojums pēc tam atzīmēja, ka Ryuk patiesībā izveidoja grupa WIZARD SPIDER [4].
Ir daži pierādījumi, kas apstiprina šo pieņēmumu. Pirmkārt, šī izspiedējprogrammatūra tika reklamēta vietnē exploit.in, kas ir plaši pazīstams Krievijas ļaundabīgo programmu tirgus un iepriekš ir bijis saistīts ar dažām Krievijas APT grupām.
Šis fakts izslēdz teoriju, ka Ryuk varētu būt izstrādājusi Lazarus APT grupa, jo tas neatbilst grupas darbības veidam.
Turklāt Ryuk tika reklamēts kā izpirkuma programmatūra, kas nedarbosies Krievijas, Ukrainas un Baltkrievijas sistēmās. Šo uzvedību nosaka funkcija, kas atrodama dažās Ryuk versijās, kur tā pārbauda tās sistēmas valodu, kurā darbojas izspiedējvīruss, un aptur tās darbību, ja sistēmai ir krievu, ukraiņu vai baltkrievu valoda. Visbeidzot, WIZARD SPIDER komandas uzlauztās mašīnas ekspertu analīze atklāja vairākus “artefaktus”, kas, iespējams, tika izmantoti Ryuk kā Hermes izpirkuma programmatūras varianta izstrādē.
No otras puses, eksperti Gabriela Nicolao un Luciano Martins ierosināja, ka izspiedējvīrusu, iespējams, ir izstrādājusi APT grupa CryptoTech [5].
Tas izriet no tā, ka vairākus mēnešus pirms Ryuk parādīšanās šī grupa tās pašas vietnes forumā ievietoja informāciju, ka ir izstrādājusi jaunu Hermes izpirkuma programmatūras versiju.
Vairāki foruma lietotāji apšaubīja, vai CryptoTech patiešām izveidoja Ryuk. Pēc tam grupa aizstāvējās un paziņoja, ka tai ir pierādījumi, ka viņi ir izstrādājuši 100% izpirkuma programmatūras.
2. Raksturlielumi
Mēs sākam ar sāknēšanas ielādētāju, kura uzdevums ir identificēt sistēmu, kurā tas darbojas, lai varētu palaist “pareizo” Ryuk izpirkuma programmatūras versiju.
Sāknēšanas ielādētāja jaucējkods ir šāds:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Viena no šī lejupielādētāja funkcijām ir tāda, ka tajā nav metadatu, t.i. Šīs ļaunprogrammatūras veidotāji tajā nav iekļāvuši nekādu informāciju.
Dažreiz tajos ir iekļauti kļūdaini dati, lai liktu lietotājam domāt, ka viņi izmanto likumīgu lietojumprogrammu. Tomēr, kā mēs redzēsim vēlāk, ja infekcija nav saistīta ar lietotāja mijiedarbību (kā tas ir gadījumā ar šo izspiedējvīrusu), tad uzbrucēji neuzskata par vajadzīgu izmantot metadatus.
Rīsi. 6: Meta datu paraugs
Paraugs tika apkopots 32 bitu formātā, lai tas varētu darboties gan 32 bitu, gan 64 bitu sistēmās.
3. Iespiešanās vektors
Paraugs, kas lejupielādē un palaiž Ryuk, iekļuva mūsu sistēmā, izmantojot attālo savienojumu, un piekļuves parametri tika iegūti, izmantojot iepriekšēju LAP uzbrukumu.
Rīsi. 7: Uzbrukumu reģistrs
Uzbrucējam izdevās attālināti pieteikties sistēmā. Pēc tam viņš izveidoja izpildāmu failu ar mūsu paraugu.
Pirms palaišanas šo izpildāmo failu bloķēja pretvīrusu risinājums.
Rīsi. 8: raksta bloķēšana
Rīsi. 9: raksta bloķēšana
Kad ļaunprātīgais fails tika bloķēts, uzbrucējs mēģināja lejupielādēt izpildāmā faila šifrētu versiju, kas arī tika bloķēta.
Rīsi. 10: paraugu kopa, ko uzbrucējs mēģināja palaist
Visbeidzot, viņš mēģināja lejupielādēt citu ļaunprātīgu failu, izmantojot šifrēto konsoli
PowerShell, lai apietu pretvīrusu aizsardzību. Bet viņš arī tika bloķēts.
Rīsi. 11: PowerShell ar bloķētu ļaunprātīgu saturu
Rīsi. 12: PowerShell ar bloķētu ļaunprātīgu saturu
4. Iekrāvējs
Kad tas tiek izpildīts, tas mapē ieraksta ReadMe failu % Temp%, kas ir raksturīgi Ryuk. Šis fails ir izpirkuma piezīme, kurā ir e-pasta adrese protonmail domēnā, kas ir diezgan izplatīta šajā ļaunprātīgas programmatūras grupā: [e-pasts aizsargāts]
Rīsi. 13: Izpirkuma maksas pieprasījums
Kamēr sāknēšanas ielādētājs darbojas, varat redzēt, ka tas palaiž vairākus izpildāmos failus ar nejaušiem nosaukumiem. Tie tiek glabāti slēptā mapē PUBLIC, bet ja opcija operētājsistēmā nav aktīva "Rādīt slēptos failus un mapes", tad tie paliks paslēpti. Turklāt šie faili ir 64 bitu, atšķirībā no vecāku faila, kas ir 32 bitu.
Rīsi. 14: Izpildāmie faili, ko palaiž paraugs
Kā redzat augstāk esošajā attēlā, Ryuk palaiž icacls.exe, kas tiks izmantota visu ACL (piekļuves kontroles sarakstu) modificēšanai, tādējādi nodrošinot piekļuvi un karogu modificēšanu.
Tas iegūst pilnu piekļuvi visiem lietotājiem visiem ierīcē esošajiem failiem (/T) neatkarīgi no kļūdām (/C) un bez ziņojumu parādīšanas (/Q).
Rīsi. 15: parauga palaistās icacls.exe izpildes parametri
Ir svarīgi atzīmēt, ka Ryuk pārbauda, kuru Windows versiju izmantojat. Par to viņš
veic versijas pārbaudi, izmantojot GetVersionExW, kurā tā pārbauda karoga vērtību lpVersionInformācijakas norāda, vai pašreizējā Windows versija ir jaunāka par Windows XP.
Atkarībā no tā, vai izmantojat versiju, kas ir jaunāka par Windows XP, sāknēšanas ielādētājs rakstīs vietējā lietotāja mapē - šajā gadījumā mapē %publisks%.
Rīsi. 17: Operētājsistēmas versijas pārbaude
Fails, kas tiek rakstīts, ir Ryuk. Pēc tam tas to palaiž, kā parametru nododot savu adresi.
Rīsi. 18: Izpildiet Ryuk, izmantojot ShellExecute
Pirmā lieta, ko Ryuk dara, ir ievades parametru saņemšana. Šoreiz ir divi ievades parametri (paša izpildāmā faila un pilinātāja adrese), kas tiek izmantoti, lai noņemtu savas pēdas.
Rīsi. 19: Procesa izveide
Varat arī redzēt, ka pēc izpildāmo failu palaišanas tas pats sevi izdzēš, tādējādi neatstājot nekādas pēdas par savu klātbūtni mapē, kurā tas tika izpildīts.
Rīsi. 20: faila dzēšana
5. RYUK
5.1. Klātbūtne
Ryuk, tāpat kā citas ļaunprogrammatūras, cenšas palikt sistēmā pēc iespējas ilgāk. Kā parādīts iepriekš, viens no veidiem, kā sasniegt šo mērķi, ir slepeni izveidot un palaist izpildāmos failus. Lai to izdarītu, visizplatītākā prakse ir mainīt reģistra atslēgu CurrentVersionRun.
Šajā gadījumā jūs varat redzēt, ka šim nolūkam tiek palaists pirmais fails VWjRF.exe
(faila nosaukums ir nejauši ģenerēts) tiek palaists cmd.exe.
Rīsi. 21: tiek izpildīts VWjRF.exe
Pēc tam ievadiet komandu RUN Ar vārdu "svchos". Tādējādi, ja vēlaties jebkurā laikā pārbaudīt reģistra atslēgas, varat viegli palaist garām šīs izmaiņas, ņemot vērā šī nosaukuma līdzību ar svchost. Pateicoties šai atslēgai, Ryuk nodrošina tās klātbūtni sistēmā. Ja sistēma nav vēl ir inficēts, tad, atsāknējot sistēmu, izpildāmais fails mēģinās vēlreiz.
Rīsi. 22: paraugs nodrošina klātbūtni reģistra atslēgā
Mēs varam arī redzēt, ka šis izpildāmais fails aptur divus pakalpojumus:
"audio endpointbuilder", kas, kā norāda nosaukums, atbilst sistēmas audio,
Rīsi. 23: paraugs aptur sistēmas audio pakalpojumu
и Samss, kas ir konta pārvaldības pakalpojums. Šo divu pakalpojumu apturēšana ir Ryuk īpašība. Šādā gadījumā, ja sistēma ir savienota ar SIEM sistēmu, izspiedējprogrammatūra mēģina pārtraukt sūtīšanu uz
Rīsi. 24: paraugs pārtrauc Samss pakalpojumu
5.2. Privilēģijas
Vispārīgi runājot, Ryuk sākas, pārvietojoties uz sāniem tīklā, vai arī to palaiž cita ļaunprātīga programmatūra, piemēram,
Iepriekš kā ievads ieviešanas procesam mēs redzam, kā viņš veic šo procesu Uzdoties par sevi, kas nozīmē, ka piekļuves pilnvaras drošības saturs tiks nodots straumei, kur tas tiks nekavējoties izgūts, izmantojot Get CurrentThread.
Rīsi. 25: Zvaniet uz ImpersonateSelf
Pēc tam mēs redzam, ka tas saistīs piekļuves pilnvaru ar pavedienu. Mēs arī redzam, ka viens no karogiem ir Vēlamā piekļuve, ko var izmantot, lai kontrolētu pavedienam piešķirto piekļuvi. Šajā gadījumā vērtībai, ko saņems edx, jābūt TOKEN_ALL_ACESS vai citādi - TOKEN_WRITE.
Rīsi. 26: Plūsmas marķiera izveide
Tad viņš izmantos SeDebugPrivilēģija un veiks zvanu, lai iegūtu pavedienā atkļūdošanas atļaujas, kā rezultātā PROCESS_ALL_ACCESS, viņš varēs piekļūt jebkuram nepieciešamajam procesam. Tagad, ņemot vērā, ka šifrētājam jau ir sagatavota straume, atliek tikai pāriet uz pēdējo posmu.
Rīsi. 27: SeDebugPrivilege un privilēģiju eskalācijas funkcijas izsaukšana
No vienas puses, mums ir LookupPrivilegeValueW, kas sniedz mums nepieciešamo informāciju par privilēģijām, kuras vēlamies palielināt.
Rīsi. 28: Pieprasīt informāciju par privilēģijām privilēģiju eskalācijai
No otras puses, mums ir AdjustTokenPrivilēģijas, kas ļauj iegūt nepieciešamās tiesības uz mūsu straumi. Šajā gadījumā vissvarīgākais ir NewState, kura karogs piešķirs privilēģijas.
Rīsi. 29: pilnvaras atļauju iestatīšana
5.3. Īstenošana
Šajā sadaļā mēs parādīsim, kā paraugs veic šajā ziņojumā iepriekš minēto ieviešanas procesu.
Ieviešanas procesa, kā arī eskalācijas galvenais mērķis ir iegūt piekļuvi ēnu kopijas. Lai to izdarītu, viņam ir jāstrādā ar pavedienu, kura tiesības ir augstākas nekā vietējā lietotāja tiesībām. Tiklīdz tas iegūs šādas paaugstinātas tiesības, tas izdzēsīs kopijas un veiks izmaiņas citos procesos, lai nebūtu iespējams atgriezties pie agrāka operētājsistēmas atjaunošanas punkta.
Kā parasti šāda veida ļaunprātīgai programmatūrai, tā izmanto CreateToolHelp32Snapshottāpēc tiek izveidots pašlaik darbojošos procesu momentuzņēmums un mēģina piekļūt šiem procesiem, izmantojot OpenProcess. Kad tas iegūst piekļuvi procesam, tas arī atver marķieri ar informāciju, lai iegūtu procesa parametrus.
Rīsi. 30: procesu izgūšana no datora
Mēs varam dinamiski redzēt, kā tas iegūst rutīnas 140002D9C darbību sarakstu, izmantojot CreateToolhelp32Snapshot. Pēc to saņemšanas viņš iet cauri sarakstam, mēģinot atvērt procesus pa vienam, izmantojot OpenProcess, līdz viņam tas izdodas. Šajā gadījumā pirmais process, ko viņš varēja atvērt, bija "taskhost.exe".
Rīsi. 31: dinamiski izpildiet procedūru, lai iegūtu procesu
Mēs redzam, ka tas pēc tam nolasa procesa marķiera informāciju, tāpēc tas izsauc OpenProcessToken ar parametru "20008"
Rīsi. 32: Lasiet procesa pilnvaras informāciju
Tas arī pārbauda, vai process, kurā tas tiks ievadīts, nav csrss.exe, explorer.exe, lsaas.exe vai viņam ir tiesību kopums NT autoritāte.
Rīsi. 33: izslēgtie procesi
Mēs varam dinamiski redzēt, kā tas vispirms veic pārbaudi, izmantojot procesa marķiera informāciju 140002D9C lai noskaidrotu, vai konts, kura tiesības tiek izmantotas procesa veikšanai, ir konts NT IESTĀDE.
Rīsi. 34: NT IESTĀDES pārbaude
Un vēlāk, ārpus procedūras, viņš pārbauda, vai tā nav csrss.exe, explorer.exe vai lsaas.exe.
Rīsi. 35: NT IESTĀDES pārbaude
Kad viņš ir uzņēmis procesu momentuzņēmumu, atvēris procesus un pārliecinājies, ka neviens no tiem nav izslēgts, viņš ir gatavs ierakstīt atmiņā procesus, kas tiks ievadīti.
Lai to izdarītu, tas vispirms rezervē apgabalu atmiņā (VirtualAllocEx), ieraksta tajā (WriteProcessmemory) un izveido pavedienu (Izveidot RemoteThread). Lai strādātu ar šīm funkcijām, tas izmanto atlasīto procesu PID, kurus tā iepriekš ieguva, izmantojot CreateToolhelp32Snapshot.
Rīsi. 36: iegult kodu
Šeit mēs varam dinamiski novērot, kā tas izmanto procesu PID, lai izsauktu funkciju VirtualAllocEx.
Rīsi. 37: Zvaniet uz VirtualAllocEx
5.4 Šifrēšana
Šajā sadaļā mēs apskatīsim šī parauga šifrēšanas daļu. Nākamajā attēlā var redzēt divas apakšprogrammas ar nosaukumu "LoadLibrary_EncodeString"и"Encode_Func", kas ir atbildīgi par šifrēšanas procedūras veikšanu.
Rīsi. 38: Šifrēšanas procedūras
Sākumā mēs varam redzēt, kā tas ielādē virkni, kas vēlāk tiks izmantota, lai deobfuskētu visu nepieciešamo: importu, DLL, komandas, failus un CSP.
Rīsi. 39: Deobfuskācijas shēma
Nākamajā attēlā ir parādīts pirmais imports, ko tas atbloķē reģistrā R4. LoadLibrary. Tas vēlāk tiks izmantots, lai ielādētu nepieciešamos DLL. Mēs varam redzēt arī citu rindu reģistrā R12, kas tiek izmantota kopā ar iepriekšējo rindu, lai veiktu debfuskāciju.
Rīsi. 40: dinamiska debfuskācija
Tas turpina lejupielādēt komandas, kuras tas darbosies vēlāk, lai atspējotu dublēšanu, atjaunošanas punktus un drošo sāknēšanas režīmus.
Rīsi. 41: tiek ielādētas komandas
Pēc tam tiek ielādēta vieta, kur tiks nomesti 3 faili: Windows.bat, run.sct и sākums.sikspārnis.
Rīsi. 42: Failu atrašanās vietas
Šie 3 faili tiek izmantoti, lai pārbaudītu katrai atrašanās vietai piešķirtās privilēģijas. Ja nepieciešamās privilēģijas nav pieejamas, Ryuk pārtrauc izpildi.
Tas turpina ielādēt rindas, kas atbilst trim failiem. Pirmkārt, DECRYPT_INFORMATION.html, satur informāciju, kas nepieciešama failu atkopšanai. Otrkārt, PUBLIC, satur RSA publisko atslēgu.
Rīsi. 43: rinda DECRYPT INFORMATION.html
Treškārt, UNIQUE_ID_DO_NOT_REMOVE, satur šifrēto atslēgu, kas tiks izmantota nākamajā rutīnā, lai veiktu šifrēšanu.
Rīsi. 44: Līnija UNIKĀLS ID NENOŅEMT
Visbeidzot, tas lejupielādē vajadzīgās bibliotēkas, kā arī nepieciešamos importus un CSP (Microsoft uzlabotā RSA и AES kriptogrāfijas pakalpojumu sniedzējs).
Rīsi. 45: tiek ielādētas bibliotēkas
Pēc tam, kad ir pabeigta visa deobfuskācija, tiek veiktas šifrēšanai nepieciešamās darbības: visu loģisko disku uzskaite, iepriekšējā rutīnā ielādētā izpilde, klātbūtnes stiprināšana sistēmā, faila RyukReadMe.html atmešana, šifrēšana, visu tīkla disku uzskaitīšana. , pāreja uz atklātajām ierīcēm un to šifrēšana.
Viss sākas ar ielādi"cmd.exe" un RSA publiskās atslēgas ieraksti.
Rīsi. 46: Sagatavošanās šifrēšanai
Pēc tam tiek izmantoti visi loģiskie diski GetLogicalDrives un atspējo visus dublējumus, atjaunošanas punktus un drošās sāknēšanas režīmus.
Rīsi. 47: atkopšanas rīku deaktivizēšana
Pēc tam tas pastiprina savu klātbūtni sistēmā, kā redzējām iepriekš, un raksta pirmo failu RyukReadMe.html в TEMP.
Rīsi. 48: Izpirkuma paziņojuma publicēšana
Nākamajā attēlā varat redzēt, kā tas izveido failu, lejupielādē saturu un raksta to:
Rīsi. 49: faila satura ielāde un rakstīšana
Lai varētu veikt vienādas darbības visās ierīcēs, viņš izmanto
"icacls.exe", kā mēs parādījām iepriekš.
Rīsi. 50: izmantojot icalcls.exe
Visbeidzot, tas sāk šifrēt failus, izņemot “*.exe”, “*.dll” failus, sistēmas failus un citas vietas, kas norādītas šifrētā baltā saraksta veidā. Lai to izdarītu, tas izmanto importēšanu: CryptAcquireContextW (ja ir norādīta AES un RSA izmantošana), CryptDeriveKey, CryptGenKey, CryptDestroyKey utt. Tas arī mēģina paplašināt savu sasniedzamību līdz atklātajām tīkla ierīcēm, izmantojot WNetEnumResourceW, un pēc tam tās šifrēt.
Rīsi. 51: Sistēmas failu šifrēšana
6. Imports un attiecīgie karodziņi
Tālāk ir sniegta tabula, kurā uzskaitīti paraugā izmantotie visatbilstošākie importi un karodziņi.
7. SOK
atsauces
- usersPublicrun.sct
- Startējiet MenuProgramsStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenuProgramsStartupstart.bat
Tehnisko ziņojumu par Ryuk ransomware sastādīja eksperti no antivīrusu laboratorijas PandaLabs.
8. Saites
1. “Everis y Prisa Radio sufren un grave ciberataque que secuestra sus sistemas.”https://www. elconfidencial.com/tecnologia/2019-11-04/everis-la-ser-ciberataque-ransomware-15_2312019/, Publikācija 04/11/2019.
2. “Un virus de origen ruso ataca a fontoses empresas españolas.” https: //elpais.com/tecnologia/2019/11/04/actualidad/1572897654_ 251312.html, Publicada el 04/11/2019.
3. “VB2019 dokuments: Shinigami's revenge: the long tail of the Ryuk malware.” https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. “Big Game Hunting with Ryuk: Another LucrativebTargeted Ransomware”.https://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Publikācija 10.
5. “VB2019 papīrs: Shinigami's revenge: the long tail of the Ryuk malware.” https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Avots: www.habr.com