
Ryuk ir viens no pēdējo gadu visļaunprātīgākajiem izspiedējvīrusu variantiem. Kopš tā pirmās parādīšanās 2018. gada vasarā tas ir uzkrājis , īpaši biznesa vidē, kas ir viņa uzbrukumu galvenais mērķis.
1. Vispārīga informācija
Šajā dokumentā ir ietverta Ryuk izspiedējvīrusa varianta analīze, kā arī ielādētāja, kas ir atbildīgs par ļaunprogrammatūras ielādi sistēmā, analīze.
Izspiedējvīruss Ryuk pirmo reizi parādījās 2018. gada vasarā. Viena no atšķirībām starp Ryuk un citiem izspiedējvīrusiem ir tā, ka tas ir paredzēts uzbrukumiem korporatīvajām vidēm.
2019. gada vidū kibernoziedznieku grupas, izmantojot šo izspiedējvīrusu, uzbruka daudziem Spānijas uzņēmumiem.

1. attēls: Izraksts no El Confidencial par Ryuk izspiedējvīrusa uzbrukumu [1]

2. attēls: Izraksts no laikraksta El País par uzbrukumu, kas veikts, izmantojot Ryuk izspiedējvīrusu [2]
Šogad Ryuk ir uzbrukis lielam skaitam uzņēmumu dažādās valstīs. Kā redzams zemāk redzamajos attēlos, vissmagāk cieta Vācija, Ķīna, Alžīrija un Indija.
Salīdzinot kiberuzbrukumu skaitu, var redzēt, ka Ryuk skāra miljoniem lietotāju un apdraudēja milzīgu datu apjomu, radot nopietnus ekonomiskus zaudējumus.

3. attēls: Rjuka globālās aktivitātes ilustrācija.

4. attēls: 16 valstis, kuras visvairāk skāris Ryuk

5. attēls: Ryuk izspiedējvīrusa uzbrukumu skarto lietotāju skaits (miljonos)
Kā jau šādiem draudiem raksturīgi, pēc šifrēšanas pabeigšanas izspiedējvīruss upurim parāda izpirkuma pieprasījumu, kas jāiemaksā Bitcoin valūtā uz norādīto adresi, lai atjaunotu piekļuvi šifrētajiem failiem.
Šī ļaunprogrammatūra ir mainījusies kopš tās pirmās parādīšanās.
Šajā rakstā analizētais šī apdraudējuma variants tika atklāts uzbrukuma mēģinājuma laikā 2020. gada janvārī.
Savas sarežģītības dēļ šo ļaunprogrammatūru bieži piedēvē organizētām kibernoziedznieku grupām, kas pazīstamas arī kā APT grupas.
Daļa Rjuka koda manāmi atgādina citas labi pazīstamas izspiedējvīrusa programmas Hermes kodu un struktūru, ar kuru tam ir vairākas kopīgas funkcijas. Tāpēc Rjuks sākotnēji tika saistīts ar Ziemeļkorejas grupējumu Lazarus, kas tolaik tika turēts aizdomās par Hermes izspiedējvīrusa izvietošanu.
CrowdStrike pakalpojums Falcon X vēlāk atzīmēja, ka Ryuk faktiski izveidoja WIZARD SPIDER grupa [4].
Šim pieņēmumam ir vairāki pierādījumi. Pirmkārt, šī izspiedējvīrusa reklamēšana notika tīmekļa vietnē exploit.in — labi pazīstamā Krievijas ļaunprogrammatūras tirgū, kas iepriekš bija saistīts ar vairākām Krievijas APT grupām.
Šis fakts izslēdz teoriju, ka Ryuk varētu būt izstrādājusi APT grupa Lazarus, jo tas neatbilst grupas darbības stilam.
Turklāt Ryuk tika reklamēts kā izspiedējvīruss, kas nedarbotos krievu, ukraiņu vai baltkrievu sistēmās. Šī uzvedība ir saistīta ar funkciju, kas atrodama dažās Ryuk versijās, kas pārbauda sistēmas, kurā darbojas izspiedējvīruss, valodu un aptur to, ja sistēma darbojas krievu, ukraiņu vai baltkrievu valodā. Visbeidzot, ekspertu analīze par WIZARD SPIDER grupas uzlauzto datoru atklāja vairākus "artefaktus", kas, iespējams, tika izmantoti Ryuk izstrādē kā Hermes izspiedējvīrusa variantam.
No otras puses, eksperti Gabriela Nikolao un Lusiano Martins norādīja, ka izspiedējvīrusu, iespējams, izstrādāja APT grupa CryptoTech [5].
Tas izriet no fakta, ka vairākus mēnešus pirms Ryuk parādīšanās šī grupa tās pašas vietnes forumā publicēja ierakstu, ka ir izstrādājusi jaunu Hermes izspiedējvīrusa versiju.
Vairāki foruma lietotāji apšaubīja, vai CryptoTech patiešām ir izveidojis Ryuk. Grupa pēc tam aizstāvējās, apgalvojot, ka tai ir pierādījumi, kas apliecina, ka tā ir izstrādājusi 100% izspiedējvīrusa.
2. Raksturlielumi
Sāksim ar sāknēšanas ielādētāju, kura uzdevums ir identificēt sistēmu, kurā tas atrodas, lai varētu palaist "pareizo" Ryuk izspiedējvīrusa versiju.
Sāknēšanas ielādētāja jaucējkods ir šāds:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Viena no šī lejupielādētāja īpatnībām ir tā, ka tajā nav metadatu, t. i., šīs ļaunprogrammatūras veidotāji tajā nav iekļāvuši nekādu informāciju.
Dažreiz tie ietver kļūdainus datus, lai maldinātu lietotāju, liekot tam domāt, ka viņš palaiž likumīgu lietojumprogrammu. Tomēr, kā redzēsim vēlāk, ja infekcija neprasa lietotāja mijiedarbību (kā tas ir ar šo izspiedējvīrusu), uzbrucēji neuzskata par nepieciešamu izmantot metadatus.

6. attēls: Metadatu paraugs
Paraugs tika kompilēts 32 bitu formātā, lai to varētu palaist 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 akreditācijas dati tika iegūti, izmantojot sākotnējo RDP uzbrukumu.

7. attēls: Uzbrukumu reģistrs
Uzbrucējam izdevās attālināti pieteikties sistēmā. Pēc tam viņš izveidoja izpildāmu failu, kurā bija mūsu paraugs.
Šo izpildāmo failu pirms palaišanas bloķēja pretvīrusu risinājums.

8. attēls: Parauga bloķēšana


9. attēls: Parauga bloķēšana
Kad ļaunprātīgais fails bija bloķēts, uzbrucējs mēģināja lejupielādēt šifrētu izpildāmā faila versiju, kas arī tika bloķēta.

10. attēls: Paraugu kopa, ko uzbrucējs mēģināja palaist
Visbeidzot, viņš mēģināja lejupielādēt vēl vienu ļaunprātīgu failu, izmantojot šifrēto konsoli.
PowerShell tika izmantots, lai apietu pretvīrusu aizsardzību. Taču arī tas tika bloķēts.

11. attēls: PowerShell ar bloķētu ļaunprātīgu saturu

12. attēls: PowerShell ar bloķētu ļaunprātīgu saturu
4. Iekrāvējs
Kad tas darbojas, tas mapē ieraksta ReadMe failu % Temp%, kas ir tipiski Ryuk ļaunprogrammatūrai. Šis fails ir izpirkuma pieprasījums, kurā ir e-pasta adrese protonmail domēnā, kas ir diezgan izplatīta parādība šajā ļaunprogrammatūru saimē: msifelabem1981@protonmail.com
![]()

13. attēls: Izpirkuma maksas pieprasījums
Lejupielādētāja darbības laikā jūs, iespējams, pamanīsiet, ka tas palaiž vairākus izpildāmus failus ar nejaušiem nosaukumiem. Tie ir glabāti slēptā mapē. PUBLIC, bet, ja opcija operētājsistēmā nav aktīva Rādīt slēptos failus un mapes, tie paliks paslēpti. Turklāt šie faili ir 64 bitu, atšķirībā no vecākfaila, kas ir 32 bitu.


14. attēls: Parauga palaistie izpildāmie faili
Kā redzams iepriekš redzamajā attēlā, Ryuk palaiž icacls.exe, kas tiks izmantots, lai modificētu visus ACL (piekļuves kontroles sarakstus), tādējādi nodrošinot piekļuvi un karodziņu izmaiņas.
Tas iegūst pilnīgu piekļuvi visiem ierīces failiem (/T) visiem lietotājiem neatkarīgi no kļūdām (/C) un nerādot nekādus ziņojumus (/Q).
![]()
15. attēls: Parauga palaistā icacls.exe izpildes parametri
Ir svarīgi atzīmēt, ka Ryuk pārbauda, kura versija darbojas. WindowsPar to viņš
veic versijas pārbaudi, izmantojot Iegūt versijuExW, kurā tā pārbauda karoga vērtību lpVersijasInformācija, norādot, vai pašreizējā versija ir Windows vēlāk nekā Windows XP.


Atkarībā no tā, vai izmantojat jaunāku versiju nekā Windows XP, sāknēšanas ielādētājs ierakstīs lokālajā lietotāja mapē — šajā gadījumā mapē %Public%.
![]()
17. attēls: Operētājsistēmas versijas pārbaude
Rakstāmais fails ir Ryuk. Pēc tam tas tiek palaists, nododot savu adresi kā parametru.

18. attēls: Ryuk izpilde, izmantojot ShellExecute
Pirmā lieta, ko Ryuk dara, ir ievades parametru saņemšana. Šoreiz ir divi ievades parametri (pats izpildāmais fails un nomešanas programmas adrese), kas tiek izmantoti, lai noņemtu savas pēdas.
![]()
![]()
19. attēls: Procesa izveide
Var 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.

20. attēls: 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ā to panākt, ir nemanāmi izveidot un palaist izpildāmos failus. Visizplatītākā metode ir reģistra atslēgas modificēšana. Pašreizējā versijas palaišana.
Šajā gadījumā var redzēt, ka pirmais šim nolūkam izpildāmais fails ir VWjRF.exe
(faila nosaukums tiek ģenerēts nejauši) tiek palaists cmd.exe.

![]()
21. attēls: VWjRF.exe faila izpilde
Pēc tam tiek ievadīta komanda RUN ar nosaukumu "svchos". Tāpēc, ja jebkurā laikā pārbaudīsiet reģistra atslēgas, jūs varat viegli nepamanīt šīs izmaiņas, ņemot vērā šī nosaukuma līdzību ar svchost. Ryuk izmanto šo atslēgu, lai nodrošinātu tās klātbūtni sistēmā. Ja sistēma vēl nav inficēta, izpildāmais fails mēģinās vēlreiz, kad jūs to pārstartēsiet.
![]()
22. attēls: Parauga klātbūtnes nodrošināšana reģistra atslēgā
Mēs arī varam redzēt, ka šis izpildāmais fails aptur divus pakalpojumus:
"audio galapunktu veidotājs", kas, kā norāda nosaukums, atbilst sistēmas audio,
![]()
23. attēls: Piemērs aptur sistēmas audio pakalpojumu
и samss, kas ir konta pārvaldības pakalpojums. Šo divu pakalpojumu apturēšana ir raksturīga Ryuk. Šajā gadījumā, ja sistēma ir savienota ar SIEM sistēmu, izspiedējvīruss mēģina pārtraukt sūtīšanu Brīdinājumi netiek izdoti. Tas aizsargā viņa nākamās darbības, jo daži SAM pakalpojumi nevarēs pareizi startēties pēc Ryuk izpildes.
![]()
24. attēls: Samss pakalpojuma apturēšanas piemērs
5.2 Privilēģijas
Vispārīgi runājot, Ryuk sāk pārvietoties sāniski tīklā vai arī to palaiž cita ļaunprogrammatūra, piemēram, vai , kas privilēģiju eskalācijas gadījumā nodod šīs paaugstinātās tiesības izspiedējvīrusam.
Iepriekš, kā ievadu ieviešanas procesam, mēs redzam viņu veicam procesu Uzdoties par sevi, kas nozīmē, ka piekļuves žetona drošības saturs tiks nodots straumei, kur to nekavējoties izgūs Iegūt pašreizējo pavedienu.

25. attēls: ImpersonateSelf izsaukšana
Tad mēs redzam, ka tas saistīs piekļuves pilnvaru ar plūsmu. Mēs arī redzam, ka viens no karogiem ir Vēlamā piekļuve, ko var izmantot, lai kontrolētu pavediena piekļuvi. Šajā gadījumā vērtībai, ko saņems edx, jābūt TOKEN_ALL_ACESS vai citādi - TOKEN_WRITE.


26. attēls: Plūsmas žetona izveide
Tad viņš izmantos SeDebugPrivilege un veiks zvanu, lai iegūtu atkļūdošanas atļaujas pavedienam, kā rezultātā, norādot PROCESS_ALL_ACCESS, tas varēs piekļūt jebkuram nepieciešamajam procesam. Tagad, ņemot vērā, ka izspiedējvīrusam jau ir sagatavota straume, atliek vien pāriet uz pēdējo posmu.

27. attēls: SeDebugPrivilege izsaukums un privilēģiju eskalācijas funkcija
No vienas puses, mums ir LookupPrivilegeValueW, kas sniedz mums nepieciešamo informāciju par privilēģijām, kuras vēlamies palielināt.

28. attēls: Informācijas pieprasīšana par privilēģijām eskalācijai
No otras puses, mums ir AdjustTokenPrivileges, kas ļauj mums iegūt nepieciešamās tiesības mūsu straumei. Šajā gadījumā vissvarīgākais ir Jauns štats, kura karogs piešķirs privilēģijas.


29. attēls: Žetonu atļauju iestatīšana
5.3 Ieviešana
Šajā sadaļā mēs parādīsim, kā paraugs veic iepriekš šajā ziņojumā minēto ieviešanas procesu.
Ieviešanas procesa, kā arī eskalācijas galvenais mērķis ir iegūt piekļuvi ēnu kopijasLai to paveiktu, tam ir jādarbojas pavedienā ar augstākām privilēģijām nekā lokālajam lietotājam. Kad tas būs ieguvis šīs paaugstinātās privilēģijas, tas izdzēsīs kopijas un modificēs citus procesus, lai operētājsistēmā nebūtu iespējams atgriezties pie iepriekšējā atjaunošanas punkta.
Kā jau tas ir raksturīgi šāda veida ļaunprogrammatūrai, injekcijas veikšanai tā izmanto lietderīgo slodzi. CreateToolHelp32Snapshot, tāpēc tas uzņem pašreiz darbojošos procesu momentuzņēmumu un mēģina piekļūt šiem procesiem, izmantojot OpenProcessKad tas iegūst piekļuvi procesam, tas atver arī marķieri ar savu informāciju, lai iegūtu procesa parametrus.

30. attēls: Procesu iegūšana no datora
Mēs varam redzēt, kā tas dinamiski izgūst darbojošos procesu sarakstu 140002D9C apakšprogrammā, izmantojot CreateToolhelp32Snapshot. Kad tas ir izgūts, tas atkārto sarakstu, mēģinot atvērt katru procesu pa vienam, izmantojot OpenProcess, līdz tas izdodas. Šajā gadījumā pirmais process, ko tas spēja atvērt, bija taskhost.exe.

31. attēls: Procedūras dinamiska izpilde procesa iegūšanai
Mēs redzam, ka tas pēc tam nolasa procesa marķiera informāciju, tāpēc tas izsauc OpenProcessToken ar parametru "20008"

32. attēls: Procesa marķiera informācijas lasīšana
Tas arī pārbauda, vai process, kurā tas tiks ieviests, nav csrss.exe, explorer.exe, lsaas.exe vai ka viņam ir tiesību kopums NT autoritāte.

33. attēls: 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 izpildei, ir konts NT AUTORITĀTE.

34. attēls: NT AUTORITĀTES pārbaude
Un vēlāk, ārpus procedūras, viņš pārbauda, vai tā nav. csrss.exe, explorer.exe vai lsaas.exe.

35. attēls: NT AUTORITĀTES pārbaude
Kad tas ir uzņēmis procesu momentuzņēmumu, atvēris procesus un pārliecinājies, ka neviens no tiem nav izslēgts, tas ir gatavs ierakstīt procesus, kas tiks ievadīti atmiņā.
Lai to izdarītu, vispirms tiek rezervēta vieta atmiņā (Virtuālā izšķiršana), tajā ieraksta (Rakstīšanas procesa atmiņa) un izveido straumi (Izveidot attālo pavedienu). Lai strādātu ar šīm funkcijām, tā izmanto atlasīto procesu PID, kas iepriekš iegūti, izmantojot CreateToolhelp32Snapshot.

36. attēls: Iegulšanas kods
Šeit mēs varam dinamiski novērot, kā tas izmanto procesa PID, lai izsauktu funkciju. Virtuālā izšķirtspēja.

37. attēls: VirtualAllocEx izsaukšana
5.4 Šifrēšana
Šajā sadaļā mēs aplūkosim šī parauga šifrēšanas daļu. Nākamajā attēlā var redzēt divas apakšprogrammas ar nosaukumu "Ielādēt bibliotēku_kodēšanas virkni"и"Kodēšanas_funkcija", kas ir atbildīgi par šifrēšanas procedūras veikšanu.

38. attēls: Šifrēšanas procedūras
Sākumā mēs varam redzēt, kā tas ielādē virkni, kas vēlāk tiks izmantota, lai dekopētu visu nepieciešamo: importu, DLL, komandas, failus un CSP.

39. attēls: Deobfuskācijas ķēde
Šajā attēlā redzams pirmais imports, ko tas dekofusē R4 reģistrā. LoadLibraryTas vēlāk tiks izmantots nepieciešamo DLL failu ielādei. Reģistrā R12 varam redzēt arī citu virkni, kas kopā ar iepriekšējo virkni tiek izmantota, lai veiktu deobfuskāciju.

40. attēls: Dinamiskā deobfuskācija
Tas turpina ielādēt komandas, kuras tas izpildīs vēlāk, lai atspējotu dublējumkopijas, atjaunošanas punktus un drošās sāknēšanas režīmus.

41. attēls: Ielādēt komandas
Tad viņš ielādē atrašanās vietu, kur viņš ievietos 3 failus: Windows.bat, palaist.sct и sākums.sikspārnis.




42. attēls: Failu atrašanās vietas
Šie trīs faili tiek izmantoti, lai pārbaudītu katras atrašanās vietas privilēģijas. Ja nepieciešamās privilēģijas nav pieejamas, Ryuk aptur izpildi.
Tas turpina ielādēt rindas, kas atbilst trim failiem. Pirmais, DECRYPT_INFORMATION.html, satur informāciju, kas nepieciešama failu atkopšanai. Otrais, PUBLIC, satur RSA publisko atslēgu.

43. attēls: DECRYPT INFORMATION.html rinda
Treškārt, UNIKĀLS_ID_NOT_REMOVE, satur šifrēto atslēgu, kas tiks izmantota nākamajā rutīnā šifrēšanas veikšanai.

44. attēls: UNIKĀLAIS ID RINDA NENOŅEMT
Visbeidzot, tas ielādē nepieciešamās bibliotēkas kopā ar nepieciešamajiem importēšanas failiem un CSP (Microsoft uzlabotā RSA и AES kriptogrāfijas pakalpojumu sniedzējs).

45. attēls: Bibliotēku ielāde
Kad visa deobfuskācija ir pabeigta, tā turpina veikt šifrēšanai nepieciešamās darbības: uzskaita visus loģiskos diskus, izpilda iepriekšējā apakšprogrammā ielādēto, nostiprina savu klātbūtni sistēmā, dzēš RyukReadMe.html failu, šifrē, uzskaita visus tīkla diskus, pārslēdzas uz noteiktajām ierīcēm un šifrē tās.
Viss sākas ar iekraušanu"cmd.exe"un publiskās RSA atslēgas ieraksti.

46. attēls: Gatavošanās šifrēšanai
Tad tas iegūst visus loģiskos diskus, izmantojot Iegūt loģiskās diskus un atspējo visas dublējumkopijas, atjaunošanas punktus un drošās sāknēšanas režīmus.

47. attēls: Atkopšanas rīku deaktivizēšana
Pēc tam tas nostiprina savu klātbūtni sistēmā, kā redzējām iepriekš, un ieraksta pirmo failu. RyukReadMe.html в TEMP.

48. attēls: Izpirkuma paziņojuma publicēšana
Šajā attēlā var redzēt, kā tas izveido failu, ielādē saturu un ieraksta to:

49. attēls: Faila satura ielāde un rakstīšana
Lai varētu veikt vienas un tās pašas darbības visās ierīcēs, tas izmanto
"icacls.exe", kā mēs parādījām iepriekš.

50. attēls: icalcls.exe izmantošana
Visbeidzot, tas sāk failu šifrēšanu, izņemot *.exe, *.dll, sistēmas failus un citas atrašanās vietas, kas norādītas šifrētajā baltajā sarakstā. Lai to izdarītu, tas izmanto importēšanu: CryptAcquireContextW (ja ir norādīts AES un RSA lietojums), CryptDeriveKey, CryptGenKey, KriptaIznīciniKey utt. Tiek mēģināts arī paplašināt tā darbību uz atklātajām tīkla ierīcēm, izmantojot WNetEnumResourceW, un pēc tam tās šifrēt.

51. attēls: Sistēmas failu šifrēšana
6. Imports un atbilstošie karodziņi
Zemāk esošajā tabulā ir uzskaitīti visatbilstošākie importa dati un karodziņi, ko izmanto izlasē:

7. SOK

atsauces
- lietotājiPublicrun.sct
- Sākuma izvēlneProgrammasStartupstart.bat Lietotņu datiKlientu viesabonēšanaMicrosoftWindowsmājas
- IzvēlneProgrammasStartupstart.bat

PandaLabs pretvīrusu laboratorijas eksperti apkopoja tehnisko ziņojumu par Ryuk izspiedējvīrusu.
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, Publikācija 04/11/2019.
3. “VB2019 raksts: Šinigami atriebība: Ryuk ļaunprogrammatūras garā aste.” https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, publicēts 2019. gada 12. novembrī.
4. “Lielo medījumu medības ar Ryuk: vēl viens ienesīgs mērķtiecīgs izspiedējvīruss.” https://www.crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, publicēts 01.10.2019.
5. “VB2019 raksts: Šinigami atriebība: Ryuk ļaunprogrammatūras garā aste.” https://www.virusbulletin.com/virusbulletin/2019/10/vb2019-paper-shinigamis-revenge-long-tail-r
Avots: www.habr.com
