Ryuk on viimaste aastate üks kuulsamaid lunavaravalikuid. Alates selle esmakordsest ilmumisest 2018. aasta suvel on see kogunud
1. Üldinfo
See dokument sisaldab Ryuki lunavaravariandi analüüsi, aga ka laadijat, mis vastutab pahavara süsteemi laadimise eest.
Ryuki lunavara ilmus esmakordselt 2018. aasta suvel. Üks erinevus Ryuki ja muu lunavara vahel on see, et see on suunatud ettevõtte keskkondade ründamisele.
2019. aasta keskel ründasid küberkurjategijate rühmitused suurt hulka Hispaania ettevõtteid, kes kasutasid seda lunavara.
Riis. 1: väljavõte El Confidencialist Ryuki lunavararünnaku kohta [1]
Riis. 2: väljavõte El Paísist Ryuki lunavaraga toime pandud rünnaku kohta [2]
Sel aastal on Ryuk rünnanud paljusid ettevõtteid erinevates riikides. Nagu allolevatelt joonistelt näha, said kõige rängemalt kannatada Saksamaa, Hiina, Alžeeria ja India.
Küberrünnakute arvu võrdlemisel näeme, et Ryuk on mõjutanud miljoneid kasutajaid ja ohustanud tohutul hulgal andmeid, mille tulemuseks on tõsine majanduslik kahju.
Riis. 3: illustratsioon Ryuki ülemaailmsest tegevusest.
Riis. 4: 16 riiki, mida Ryuk kõige enam mõjutab
Riis. 5: Ryuki lunavara poolt rünnatud kasutajate arv (miljonites)
Vastavalt selliste ohtude tavapärasele tööpõhimõttele näitab see lunavara pärast krüptimise lõppemist ohvrile lunarahateatise, mis tuleb krüptitud failidele juurdepääsu taastamiseks tasuda bitcoinides määratud aadressile.
See pahavara on pärast esmakordset kasutuselevõttu muutunud.
Selle ohu variant, mida selles dokumendis analüüsitakse, avastati rünnakukatse käigus 2020. aasta jaanuaris.
Selle keerukuse tõttu omistatakse seda pahavara sageli organiseeritud küberkurjategijate rühmadele, mida tuntakse ka APT rühmadena.
Osa Ryuki koodist on märgatavalt sarnane teise tuntud lunavara Hermes koodi ja struktuuriga, millega neil on mitmeid identseid funktsioone. Seetõttu seostati Ryuk algselt Põhja-Korea rühmitusega Lazarus, mida toona kahtlustati Hermesi lunavara taga olevat.
Seejärel märkis CrowdStrike'i Falcon X teenus, et Ryuki lõi tegelikult rühm WIZARD SPIDER [4].
Selle oletuse toetuseks on mõned tõendid. Esiteks reklaamiti seda lunavara veebilehel exploit.in, mis on tuntud Venemaa pahavaraturg ja mida on varem seostatud mõne Venemaa APT grupiga.
See fakt välistab teooria, et Ryuki võis välja töötada Lazarus APT grupp, sest see ei sobi grupi tegutsemisviisiga.
Lisaks reklaamiti Ryuki kui lunavara, mis ei tööta Venemaa, Ukraina ja Valgevene süsteemides. Selle käitumise määrab mõnes Ryuki versioonis leiduv funktsioon, kus see kontrollib selle süsteemi keelt, milles lunavara töötab, ja peatab selle töötamise, kui süsteemis on vene, ukraina või valgevene keel. Lõpuks paljastas WIZARD SPIDERi meeskonna poolt häkkinud masina ekspertanalüüs mitu "artefakti", mida väidetavalt kasutati Ryuki kui Hermesi lunavara variandi väljatöötamisel.
Teisest küljest väitsid eksperdid Gabriela Nicolao ja Luciano Martins, et lunavara võis välja töötada APT grupp CryptoTech [5].
See tuleneb asjaolust, et mitu kuud enne Ryuki ilmumist postitas see grupp sama saidi foorumisse teabe, et nad on välja töötanud Hermesi lunavara uue versiooni.
Mitmed foorumi kasutajad kahtlesid, kas CryptoTech tegelikult Ryuki lõi. Seejärel kaitses rühmitus end ja teatas, et tal on tõendeid selle kohta, et nad on välja töötanud 100% lunavarast.
2. Omadused
Alustame alglaadurist, mille ülesanne on tuvastada see süsteem, et saaks käivitada Ryuki lunavara “õige” versiooni.
Alglaaduri räsi on järgmine:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Selle allalaadija üks omadusi on see, et see ei sisalda metaandmeid, st. Selle pahavara loojad pole sellesse teavet lisanud.
Mõnikord sisaldavad need ekslikke andmeid, et meelitada kasutajat arvama, et nad käitavad seaduslikku rakendust. Kuid nagu hiljem näeme, kui nakatumisega ei kaasne kasutajapoolset suhtlemist (nagu selle lunavara puhul), siis ründajad ei pea metaandmete kasutamist vajalikuks.
Riis. 6: Metaandmete näidis
Näidis koostati 32-bitises vormingus, et see saaks töötada nii 32-bitistes kui ka 64-bitistes süsteemides.
3. Läbitungivektor
Näidis, mis laadib alla ja käivitab Ryuki, sisenes meie süsteemi kaugühenduse kaudu ning juurdepääsuparameetrid saadi RDP esialgse rünnaku kaudu.
Riis. 7: Rünnakute register
Ründajal õnnestus kaugjuhtimisega süsteemi sisse logida. Pärast seda lõi ta meie näidisega käivitatava faili.
Viirusetõrjelahendus blokeeris selle käivitatava faili enne käivitamist.
Riis. 8: Mustri lukk
Riis. 9: Mustri lukk
Kui pahatahtlik fail blokeeriti, üritas ründaja alla laadida käivitatava faili krüpteeritud versiooni, mis samuti blokeeriti.
Riis. 10: proovide komplekt, mida ründaja proovis käivitada
Lõpuks proovis ta krüptitud konsooli kaudu alla laadida veel ühe pahatahtliku faili
PowerShell viirusetõrjest mööda hiilimiseks. Kuid ta oli ka blokeeritud.
Riis. 11: blokeeritud pahatahtliku sisuga PowerShell
Riis. 12: blokeeritud pahatahtliku sisuga PowerShell
4. Laadur
Kui see käivitatakse, kirjutab see kausta ReadMe-faili % Temp%, mis on tüüpiline Ryukile. See fail on lunaraha, mis sisaldab protonmaili domeeni e-posti aadressi, mis on selles pahavara perekonnas üsna tavaline: [meiliga kaitstud]
Riis. 13: Lunaraha nõudmine
Kui alglaadur töötab, näete, et see käivitab mitu juhusliku nimega käivitatavat faili. Neid hoitakse peidetud kaustas AVALIK, kuid kui see valik pole operatsioonisüsteemis aktiivne "Kuva peidetud failid ja kaustad", siis jäävad need peidetuks. Lisaks on need failid 64-bitised, erinevalt emafailist, mis on 32-bitine.
Riis. 14: proovi käivitatud käivitatavad failid
Nagu näete ülaloleval pildil, käivitab Ryuk icacls.exe, mida kasutatakse kõigi ACL-ide (juurdepääsu kontrolli loendite) muutmiseks, tagades seega juurdepääsu ja lippude muutmise.
See saab täieliku juurdepääsu kõikidele kasutajatele kõigile seadmes olevatele failidele (/T), olenemata vigadest (/C) ja ilma ühtegi teadet näitamata (/Q).
Riis. 15: proovi poolt käivitatud faili icacls.exe täitmisparameetrid
Oluline on märkida, et Ryuk kontrollib, millist Windowsi versiooni te kasutate. Selle eest ta
teostab versioonikontrolli kasutades GetVersionExW, milles see kontrollib lipu väärtust lpVersionInformatsioonmis näitab, kas Windowsi praegune versioon on uuem kui Windows XP.
Olenevalt sellest, kas kasutate Windows XP-st hilisemat versiooni, kirjutab alglaadur kohalikku kasutajakausta – antud juhul kausta %Avalik%.
Riis. 17: operatsioonisüsteemi versiooni kontrollimine
Kirjutatav fail on Ryuk. Seejärel käivitab see selle, edastades parameetrina oma aadressi.
Riis. 18: Käivitage Ryuk ShellExecute'i kaudu
Esimene asi, mida Ryuk teeb, on sisendparameetrite vastuvõtmine. Seekord on kaks sisendparameetrit (käivitatav fail ise ja tilguti aadress), mida kasutatakse selle enda jälgede eemaldamiseks.
Riis. 19: Protsessi loomine
Samuti näete, et kui see on käivitanud käivitatavad failid, kustutab see ennast, jättes seega jälgi enda olemasolust kaustas, kus see käivitati.
Riis. 20: faili kustutamine
5. RYUK
5.1 Kohalolek
Ryuk, nagu ka muu pahavara, püüab süsteemis püsida nii kaua kui võimalik. Nagu ülal näidatud, on üks viis selle eesmärgi saavutamiseks salaja käivitatavate failide loomine ja käitamine. Selleks on kõige levinum praktika registrivõtme muutmine CurrentVersionRun.
Sel juhul näete, et selleks käivitatakse esimene fail VWjRF.exe
(failinimi genereeritakse juhuslikult) käivitub cmd.exe.
Riis. 21: VWjRF.exe käivitamine
Seejärel sisestage käsk RUN nimega "svchos". Seega, kui soovite registrivõtmeid igal ajal kontrollida, võite sellest muudatusest kergesti mööda minna, arvestades selle nime sarnasust svchostiga. Tänu sellele võtmele tagab Ryuk selle olemasolu süsteemis. Kui süsteem pole seda teinud kui olete veel nakatunud, proovib käivitatav fail uuesti süsteemi taaskäivitamisel.
Riis. 22: näidis tagab olemasolu registrivõtmes
Samuti näeme, et see käivitatav fail peatab kaks teenust:
"audioendpointbuilder", mis, nagu nimigi ütleb, vastab süsteemihelile,
Riis. 23: Sample peatab süsteemi heliteenuse
и sams, mis on kontohaldusteenus. Nende kahe teenuse peatamine on Ryukile iseloomulik. Sel juhul, kui süsteem on ühendatud SIEM-süsteemiga, püüab lunavara peatada saatmise
Riis. 24: proovivõtt peatab Samssi teenuse
5.2 Privileegid
Üldiselt alustab Ryuk võrgus külgsuunas liikumisest või käivitab selle mõni muu pahavara, näiteks
Eelnevalt näeme juurutusprotsessi eelmänguna teda protsessi läbi viimas Esineda ise, mis tähendab, et juurdepääsuloa turvasisu edastatakse voogu, kust see kohe alla laaditakse, kasutades Hangi CurrentThread.
Riis. 25: helistage ImpersonateSelfile
Seejärel näeme, et see seob juurdepääsuloa lõimega. Samuti näeme, et üks lippudest on Soovitud juurdepääs, mida saab kasutada lõimele juurdepääsu kontrollimiseks. Sel juhul peaks edx saama väärtus olema TOKEN_ALL_ACESS või muidu - TOKEN_WRITE.
Riis. 26: Voolumärgi loomine
Siis ta kasutab SeDebugPrivilege ja helistab lõime silumisõiguste saamiseks, mille tulemuseks on PROCESS_ALL_ACCESS, pääseb ta juurde mis tahes nõutavale protsessile. Arvestades, et krüpteerijal on juba ettevalmistatud voog, jääb üle vaid minna viimasesse etappi.
Riis. 27: SeDebugPrivilege ja Privilege Escalation Funktsiooni helistamine
Ühest küljest on meil olemas LookupPrivilegeValueW, mis annab meile vajalikku teavet õiguste kohta, mida soovime suurendada.
Riis. 28: taotlege teavet õiguste eskaleerimiseks õiguste kohta
Teisest küljest on meil ReguleerigeTokeni privileege, mis võimaldab meil hankida oma voo jaoks vajalikud õigused. Sel juhul on kõige olulisem NewState, mille lipp annab privileege.
Riis. 29: Lubade seadistamine
5.3 Rakendamine
Selles jaotises näitame, kuidas valim teostab selles aruandes eelnevalt mainitud rakendusprotsessi.
Rakendusprotsessi ja ka eskalatsiooni peamine eesmärk on juurdepääsu saamine varikoopiad. Selleks peab ta töötama lõimega, mille õigused on kõrgemad kui kohalikul kasutajal. Kui ta saab sellised kõrgendatud õigused, kustutab see koopiad ja teeb muudatusi teistes protsessides, et teha võimatuks naasta operatsioonisüsteemi varasemasse taastepunkti.
Nagu seda tüüpi pahavara puhul tüüpiline, kasutab see CreateToolHelp32Snapshotseega teeb see hetkel töötavatest protsessidest hetktõmmise ja proovib neile protsessidele juurde pääseda kasutades OpenProcess. Kui see saab protsessile juurdepääsu, avab see protsessi parameetrite hankimiseks ka oma teabega märgi.
Riis. 30: protsesside allalaadimine arvutist
Saame dünaamiliselt näha, kuidas see saab rutiini 140002D9C jooksvate protsesside loendi, kasutades funktsiooni CreateToolhelp32Snapshot. Pärast nende kättesaamist läbib ta nimekirja, proovides protsesse OpenProcessi abil ükshaaval avada, kuni see õnnestub. Sel juhul oli esimene protsess, mille ta avada sai "taskhost.exe".
Riis. 31: Käivitage dünaamiliselt protseduur protsessi hankimiseks
Näeme, et see loeb seejärel protsessi tunnusteavet, nii et see helistab OpenProcessToken parameetriga "20008"
Riis. 32: lugege protsessi tunnusteavet
Samuti kontrollib see, et protsess, millesse see süstitakse, ei ole seda csrss.exe, explorer.exe, lsaas.exe või et tal on teatud õigused NT autoriteet.
Riis. 33: välistatud protsessid
Saame dünaamiliselt näha, kuidas see esmalt kontrollib, kasutades protsessi tunnusteavet 140002D9C et teha kindlaks, kas konto, mille õigusi protsessi läbiviimiseks kasutatakse, on konto NT AUTORIITEET.
Riis. 34: NT volituse kontroll
Ja hiljem, väljaspool protseduuri, kontrollib ta, et see pole nii csrss.exe, explorer.exe või lsaas.exe.
Riis. 35: NT volituse kontroll
Kui ta on protsessidest hetktõmmise teinud, protsessid avanud ja veendunud, et ükski neist pole välistatud, on ta valmis sisestatavad protsessid mällu kirjutama.
Selleks reserveerib see esmalt mälus ala (VirtualAllocEx), kirjutab sellesse (WriteProcessmemory) ja loob lõime (Loo RemoteThread). Nende funktsioonidega töötamiseks kasutab see valitud protsesside PID-sid, mille ta varem sai CreateToolhelp32Snapshot.
Riis. 36: Manustage kood
Siin saame dünaamiliselt jälgida, kuidas see kasutab funktsiooni kutsumiseks protsessi PID-d VirtualAllocEx.
Riis. 37: helistage VirtualAllocExile
5.4 Krüpteerimine
Selles jaotises vaatleme selle näidise krüptimise osa. Järgmisel pildil näete kahte alamprogrammi nimega "LoadLibrary_EncodeString"Ja"Encode_Func", mis vastutavad krüpteerimisprotseduuri läbiviimise eest.
Riis. 38: Krüpteerimisprotseduurid
Alguses näeme, kuidas see laadib stringi, mida hiljem kasutatakse kõige vajaliku deobfuskeerimiseks: impordid, DLL-id, käsud, failid ja CSP-d.
Riis. 39: Deobfuskatsiooniahel
Järgmine joonis näitab esimest importi, mille see deobfuskeerib registris R4. Laadi raamatukogu. Seda kasutatakse hiljem vajalike DLL-ide laadimiseks. Samuti näeme registris R12 teist rida, mida kasutatakse koos eelmise reaga deobfuskatsiooni tegemiseks.
Riis. 40: dünaamiline hägu eemaldamine
See jätkab käskude allalaadimist, mida see hiljem käivitab, et keelata varukoopiad, taastepunktid ja turvalised alglaadimisrežiimid.
Riis. 41: käskude laadimine
Seejärel laadib see asukohta, kuhu kukub kolm faili: Windows.bat, run.sct и start.bat.
Riis. 42: Failide asukohad
Neid kolme faili kasutatakse iga asukoha õiguste kontrollimiseks. Kui nõutavad õigused pole saadaval, peatab Ryuk täitmise.
See jätkab kolmele failile vastavate ridade laadimist. Esiteks DECRYPT_INFORMATION.html, sisaldab failide taastamiseks vajalikku teavet. Teiseks AVALIK, sisaldab RSA avalikku võtit.
Riis. 43: rida DECRYPT INFORMATION.html
Kolmandaks UNIQUE_ID_DO_NOT_REMOVE, sisaldab krüptitud võtit, mida kasutatakse krüptimise teostamiseks järgmises rutiinis.
Riis. 44: rida UNIKAALNE ID ÄRGE EEMALDADA
Lõpuks laadib see alla nõutavad teegid koos nõutavate impordi- ja CSP-dega (Microsofti täiustatud RSA и AES krüptograafia pakkuja).
Riis. 45: teekide laadimine
Pärast kogu deobfuskatsiooni lõpetamist jätkab see krüptimiseks vajalike toimingute tegemist: kõigi loogiliste draivide loetlemine, eelmises rutiinis laaditu täitmine, süsteemi olemasolu tugevdamine, faili RyukReadMe.html viskamine, krüpteerimine, kõigi võrgudraivide loendamine. , üleminek tuvastatud seadmetele ja nende krüpteerimine.
Kõik algab laadimisest"cmd.exe" ja RSA avaliku võtme kirjed.
Riis. 46: krüptimise ettevalmistamine
Seejärel kasutab see kõiki loogilisi draive GetLogicalDrives ja keelab kõik varukoopiad, taastepunktid ja turvalised alglaadimisrežiimid.
Riis. 47: taastetööriistade desaktiveerimine
Pärast seda tugevdab see oma kohalolekut süsteemis, nagu eespool nägime, ja kirjutab esimese faili RyukReadMe.html в TEMP.
Riis. 48: Lunarahateate avaldamine
Järgmisel pildil näete, kuidas see faili loob, sisu alla laadib ja selle kirjutab:
Riis. 49: faili sisu laadimine ja kirjutamine
Et saaks kõikides seadmetes teha samu toiminguid, kasutab ta
"icacls.exe", nagu me eespool näitasime.
Riis. 50: icalcls.exe kasutamine
Ja lõpuks alustab see failide krüptimist, välja arvatud failid “*.exe”, “*.dll”, süsteemifailid ja muud krüptitud valge nimekirja kujul määratud asukohad. Selleks kasutab see importi: CryptAcquireContextW (kui on ette nähtud AES ja RSA kasutamine), CryptDeriveKey, CryptGenKey, CryptDestroyKey jne. Samuti üritab see laiendada oma ulatust avastatud võrguseadmetele, kasutades WNetEnumResourceW-d, ja seejärel krüptida need.
Riis. 51: süsteemifailide krüptimine
6. Import ja vastavad lipud
Allpool on tabel, mis loetleb valimi kõige asjakohasemad impordid ja lipud.
7. ROK
Viited
- usersPublicrun.sct
- Start MenuProgramsStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- MenuProgramsStartupstart.bat
Ryuki lunavara tehnilise raporti koostasid viirusetõrjelabori PandaLabsi eksperdid.
8. Lingid
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/, Publicada el 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 paber: Shinigami kättemaks: Ryuki pahavara pikk saba." https://securelist.com/story-of-the-year-2019-cities-under-ransomware-siege/95456/, Publicada el 11 /12/2019
4. "Suurulukite jaht Ryukiga: veel üks tulus ja sihitud lunavara."https://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Publicada el 10/01/2019.
5. “VB2019 paber: Shinigami kättemaks: Ryuki pahavara pikk saba.” https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Allikas: www.habr.com