Ryuk je jedna od najpoznatijih ransomware opcija u posljednjih nekoliko godina. Otkako se prvi put pojavio u ljeto 2018., skupio se
1. Opće informacije
Ovaj dokument sadrži analizu varijante Ryuk ransomwarea, kao i učitavača odgovornog za učitavanje zlonamjernog programa u sustav.
Ryuk ransomware se prvi put pojavio u ljeto 2018. Jedna od razlika između Ryuka i drugog ransomwarea je to što je usmjeren na napad na korporativna okruženja.
Sredinom 2019. kibernetičke kriminalne skupine napale su veliki broj španjolskih tvrtki koristeći ovaj ransomware.
Riža. 1: Izvadak iz El Confidenciala u vezi s napadom ransomwarea Ryuk [1]
Riža. 2: Izvadak iz El Paísa o napadu izvršenom korištenjem Ryuk ransomwarea [2]
Ryuk je ove godine napao velik broj tvrtki u raznim zemljama. Kao što možete vidjeti na slikama ispod, Njemačka, Kina, Alžir i Indija bile su najteže pogođene.
Uspoređujući broj kibernetičkih napada, možemo vidjeti da je Ryuk utjecao na milijune korisnika i kompromitirao ogromnu količinu podataka, što je rezultiralo velikim ekonomskim gubitkom.
Riža. 3: Ilustracija Ryukove globalne aktivnosti.
Riža. 4: 16 zemalja najviše pogođenih Ryukom
Riža. 5: Broj korisnika napadnutih Ryuk ransomwareom (u milijunima)
Prema uobičajenom principu rada takvih prijetnji, ovaj ransomware nakon dovršetka enkripcije žrtvi prikazuje obavijest o otkupnini koja se mora platiti u bitcoinima na navedenu adresu kako bi se vratio pristup šifriranim datotekama.
Ovaj se zlonamjerni softver promijenio otkako je prvi put predstavljen.
Varijanta ove prijetnje analizirana u ovom dokumentu otkrivena je tijekom pokušaja napada u siječnju 2020.
Zbog svoje složenosti, ovaj se malware često pripisuje organiziranim skupinama kibernetičkog kriminala, također poznatim kao APT grupe.
Dio Ryuk koda ima primjetnu sličnost s kodom i strukturom drugog poznatog ransomwarea, Hermesa, s kojim dijele niz identičnih funkcija. Zbog toga je Ryuk isprva bio povezivan sa sjevernokorejskom grupom Lazarus, za koju se u to vrijeme sumnjalo da stoji iza Hermes ransomwarea.
CrowdStrikeov servis Falcon X naknadno je primijetio da je Ryuk zapravo stvorila grupa WIZARD SPIDER [4].
Postoje neki dokazi koji podupiru ovu pretpostavku. Prvo, ovaj ransomware je oglašavan na web stranici exploit.in, koja je dobro poznata ruska tržnica zlonamjernog softvera i prethodno je bila povezana s nekim ruskim APT grupama.
Ova činjenica isključuje teoriju da je Ryuk mogla razviti Lazarus APT grupa, jer ne uklapa se u način na koji grupa djeluje.
Osim toga, Ryuk je reklamiran kao ransomware koji neće raditi na ruskim, ukrajinskim i bjeloruskim sustavima. Ovo ponašanje je određeno značajkom koja se nalazi u nekim verzijama Ryuka, gdje provjerava jezik sustava na kojem je pokrenut ransomware i zaustavlja njegovo pokretanje ako sustav ima ruski, ukrajinski ili bjeloruski jezik. Konačno, stručna analiza stroja koju je hakirao tim WIZARD SPIDER otkrila je nekoliko "artefakata" koji su navodno korišteni u razvoju Ryuka kao varijante Hermesovog ransomwarea.
S druge strane, stručnjaci Gabriela Nicolao i Luciano Martins sugeriraju da je ransomware možda razvila APT grupa CryptoTech [5].
To proizlazi iz činjenice da je nekoliko mjeseci prije pojave Ryuka ova grupa na forumu iste stranice objavila informaciju da su razvili novu verziju Hermes ransomwarea.
Nekoliko korisnika foruma postavilo je pitanje je li CryptoTech zapravo stvorio Ryuk. Grupa se tada branila i izjavila da ima dokaze da su razvili 100% ransomwarea.
2. Karakteristike
Počinjemo s bootloaderom, čiji je zadatak identificirati sustav na kojem se nalazi kako bi se mogla pokrenuti "ispravna" verzija Ryuk ransomwarea.
Raspršivanje pokretačkog programa je sljedeće:
MD5 A73130B0E379A989CBA3D695A157A495
SHA256 EF231EE1A2481B7E627921468E79BB4369CCFAEB19A575748DD2B664ABC4F469
Jedna od značajki ovog preuzimača je da ne sadrži metapodatke, tj. Tvorci ovog zlonamjernog softvera nisu uključili nikakve informacije u njega.
Ponekad uključuju pogrešne podatke kako bi prevarili korisnika da pomisli da koristi legitimnu aplikaciju. Međutim, kao što ćemo vidjeti kasnije, ako infekcija ne uključuje interakciju korisnika (kao što je slučaj s ovim ransomwareom), tada napadači ne smatraju potrebnim koristiti metapodatke.
Riža. 6: Uzorak meta podataka
Uzorak je kompiliran u 32-bitnom formatu tako da može raditi i na 32-bitnim i na 64-bitnim sustavima.
3. Vektor prodora
Uzorak koji preuzima i pokreće Ryuk ušao je u naš sustav putem udaljene veze, a pristupni parametri su dobiveni preliminarnim RDP napadom.
Riža. 7: Registar napada
Napadač se uspio daljinski prijaviti u sustav. Nakon toga, napravio je izvršnu datoteku s našim uzorkom.
Ovu je izvršnu datoteku prije pokretanja blokiralo antivirusno rješenje.
Riža. 8: Zaključavanje uzorka
Riža. 9: Zaključavanje uzorka
Kada je zlonamjerna datoteka blokirana, napadač je pokušao preuzeti šifriranu verziju izvršne datoteke, koja je također blokirana.
Riža. 10: Skup uzoraka koje je napadač pokušao pokrenuti
Na kraju je pokušao preuzeti još jednu zlonamjernu datoteku putem šifrirane konzole
PowerShell za zaobilaženje antivirusne zaštite. Ali i on je bio blokiran.
Riža. 11: PowerShell sa zlonamjernim sadržajem blokiran
Riža. 12: PowerShell sa zlonamjernim sadržajem blokiran
4. Utovarivač
Kada se izvrši, zapisuje datoteku ReadMe u mapu % Temp%, što je tipično za Ryuk. Ova je datoteka poruka o otkupnini koja sadrži adresu e-pošte u domeni protonmaila, što je prilično uobičajeno u ovoj obitelji zlonamjernog softvera: [e-pošta zaštićena]
Riža. 13: Zahtjev za otkupninu
Dok je bootloader pokrenut, možete vidjeti da pokreće nekoliko izvršnih datoteka s nasumičnim imenima. Pohranjeni su u skrivenoj mapi JAVNOST, ali ako opcija nije aktivna u operativnom sustavu "Prikaži skrivene datoteke i mape", tada će ostati skriveni. Štoviše, te su datoteke 64-bitne, za razliku od nadređene datoteke koja je 32-bitna.
Riža. 14: Izvršne datoteke koje pokreće uzorak
Kao što možete vidjeti na gornjoj slici, Ryuk pokreće icacls.exe, koji će se koristiti za izmjenu svih ACL-ova (Access control lists), čime se osigurava pristup i izmjena zastavica.
Dobiva puni pristup pod svim korisnicima svim datotekama na uređaju (/T) bez obzira na pogreške (/C) i bez prikazivanja poruka (/Q).
Riža. 15: Parametri izvršenja icacls.exe koje je pokrenuo uzorak
Važno je napomenuti da Ryuk provjerava koju verziju sustava Windows koristite. Za ovo on
vrši provjeru verzije pomoću GetVersionExW, u kojem provjerava vrijednost zastavice lpVersionInformationpokazujući je li trenutna verzija sustava Windows novija od Windows XP.
Ovisno o tome koristite li verziju noviju od Windows XP, pokretački program će pisati u lokalnu korisničku mapu - u ovom slučaju u mapu %Javnost%.
Riža. 17: Provjera verzije operativnog sustava
Datoteka koja se piše je Ryuk. Zatim ga pokreće, prosljeđujući vlastitu adresu kao parametar.
Riža. 18: Izvršite Ryuk putem ShellExecute
Prva stvar koju Ryuk radi je primanje ulaznih parametara. Ovaj put postoje dva ulazna parametra (sama izvršna datoteka i adresa droppera) koji se koriste za uklanjanje vlastitih tragova.
Riža. 19: Stvaranje procesa
Također možete vidjeti da nakon što pokrene svoje izvršne datoteke, briše se, tako da ne ostavlja nikakav trag vlastite prisutnosti u mapi u kojoj je izvršen.
Riža. 20: Brisanje datoteke
5. RYUK
5.1 Prisutnost
Ryuk, kao i drugi malware, pokušava ostati na sustavu što je dulje moguće. Kao što je gore prikazano, jedan od načina za postizanje ovog cilja je tajno stvaranje i pokretanje izvršnih datoteka. Da biste to učinili, najčešća praksa je promjena ključa registra CurrentVersionRun.
U ovom slučaju, možete vidjeti da je u tu svrhu prva datoteka koja se pokreće VWjRF.exe
(naziv datoteke nasumično se generira) pokreće cmd.exe.
Riža. 21: Izvršavanje VWjRF.exe
Zatim unesite naredbu TRČANJE s imenom "svchos". Dakle, ako želite provjeriti ključeve registra u bilo kojem trenutku, lako možete propustiti ovu promjenu, s obzirom na sličnost ovog naziva sa svchost. Zahvaljujući ovom ključu, Ryuk osigurava svoju prisutnost u sustavu. Ako sustav nije još nije zaražen, a zatim kada ponovno pokrenete sustav, izvršna datoteka će pokušati ponovno.
Riža. 22: Uzorak osigurava prisutnost u ključu registra
Također možemo vidjeti da ova izvršna datoteka zaustavlja dvije usluge:
"audioendpointbuilder", koji, kao što mu ime govori, odgovara zvuku sustava,
Riža. 23: Uzorak zaustavlja audio uslugu sustava
и Samss, koja je usluga upravljanja računom. Zaustavljanje ove dvije usluge karakteristika je Ryuka. U tom slučaju, ako je sustav povezan sa SIEM sustavom, ransomware pokušava zaustaviti slanje na
Riža. 24: Uzorak zaustavlja uslugu Samss
5.2 Privilegije
Općenito govoreći, Ryuk počinje bočnim pomicanjem unutar mreže ili ga pokreće neki drugi zlonamjerni softver kao što je
Prethodno, kao uvod u proces implementacije, vidimo ga kako provodi proces Imitirati Sebe, što znači da će se sigurnosni sadržaj pristupnog tokena proslijediti u tok, gdje će se odmah dohvatiti korištenjem GetCurrentThread.
Riža. 25: Pozovite ImpersonateSelf
Zatim vidimo da će pridružiti pristupni token niti. Također vidimo da je jedna od zastava Željeni pristup, koji se može koristiti za kontrolu pristupa koji će nit imati. U ovom slučaju vrijednost koju će edx primiti trebala bi biti TOKEN_ALL_ACESS ili drugačije - TOKEN_WRITE.
Riža. 26: Stvaranje tokena protoka
Tada će koristiti SeDebugPrivilege i uputit će poziv za dobivanje dozvola za otklanjanje pogrešaka na niti, što rezultira PROCESS_ALL_ACCESS, moći će pristupiti svim potrebnim procesima. Sada, s obzirom da kriptor već ima pripremljen tok, preostaje samo prijeći na završnu fazu.
Riža. 27: Pozivanje SeDebugPrivilege i funkcije eskalacije privilegija
S jedne strane imamo LookupPrivilegeValueW, koji nam daje potrebne informacije o privilegijama koje želimo povećati.
Riža. 28: Zatražite informacije o privilegijama za eskalaciju privilegija
S druge strane, imamo AdjustTokenPrivileges, što nam omogućuje dobivanje potrebnih prava na naš stream. U ovom slučaju najvažnije je NewState, čija će zastava davati povlastice.
Riža. 29: Postavljanje dopuštenja za token
5.3 Provedba
U ovom odjeljku pokazat ćemo kako uzorak izvodi proces implementacije prethodno spomenut u ovom izvješću.
Glavni cilj procesa implementacije, kao i eskalacije, je dobiti pristup kopije u sjeni. Da bi to učinio, mora raditi s niti s pravima višim od onih koje ima lokalni korisnik. Nakon što dobije takva povišena prava, obrisati će kopije i napraviti promjene u drugim procesima kako bi onemogućio povratak na raniju točku vraćanja u operacijskom sustavu.
Kao što je tipično za ovu vrstu zlonamjernog softvera, on koristi CreateToolHelp32Snapshotpa uzima snimku trenutno pokrenutih procesa i pokušava pristupiti tim procesima pomoću OpenProcess. Nakon što dobije pristup procesu, otvara i token sa svojim informacijama za dobivanje parametara procesa.
Riža. 30: Dohvaćanje procesa s računala
Možemo dinamički vidjeti kako dobiva popis pokrenutih procesa u rutini 140002D9C pomoću CreateToolhelp32Snapshot. Nakon što ih primi, prolazi kroz popis, pokušavajući otvoriti procese jedan po jedan koristeći OpenProcess dok ne uspije. U ovom slučaju, prvi proces koji je uspio otvoriti bio je "taskhost.exe".
Riža. 31: Dinamičko izvršavanje procedure za dobivanje procesa
Vidimo da naknadno čita informacije o tokenu procesa, pa poziva OpenProcessToken s parametrom "20008"
Riža. 32: Pročitajte informacije o tokenu procesa
Također provjerava da proces u koji će biti umetnut nije csrss.exe, explorer.exe, lsaas.exe ili da ima skup prava NT autoritet.
Riža. 33: Isključeni procesi
Možemo dinamički vidjeti kako prvo izvodi provjeru koristeći informacije o tokenu procesa 140002D9C kako bi saznali je li račun čija se prava koriste za izvršavanje procesa račun NT AUTORITET.
Riža. 34: Provjera NT AUTORITETA
I kasnije, izvan procedure, provjerava da nije csrss.exe, explorer.exe ili lsaas.exe.
Riža. 35: Provjera NT AUTORITETA
Nakon što je napravio snimku procesa, otvorio procese i potvrdio da nijedan od njih nije isključen, spreman je zapisati u memoriju procese koji će biti umetnuti.
Da bi to učinio, prvo rezervira područje u memoriji (VirtualAllocEx), piše u njega (WriteProcessmemory) i stvara nit (CreateRemoteThread). Za rad s ovim funkcijama koristi PID-ove odabranih procesa koje je prethodno dobio korištenjem CreateToolhelp32Snapshot.
Riža. 36: Ugradite kod
Ovdje možemo dinamički promatrati kako koristi PID procesa za pozivanje funkcije VirtualAllocEx.
Riža. 37: Pozovite VirtualAllocEx
5.4 Enkripcija
U ovom ćemo odjeljku pogledati dio ovog uzorka koji se odnosi na šifriranje. Na sljedećoj slici možete vidjeti dvije potprograme pod nazivom "LoadLibrary_EncodeString"i"Encode_Func“, koji su odgovorni za provođenje postupka enkripcije.
Riža. 38: Postupci šifriranja
Na početku možemo vidjeti kako učitava string koji će se kasnije koristiti za demaskiranje svega što je potrebno: uvoza, DLL-ova, naredbi, datoteka i CSP-ova.
Riža. 39: Krug demaskiranja
Sljedeća slika prikazuje prvi uvoz koji demaskira u registar R4. Učitaj knjižnicu. Ovo će se kasnije koristiti za učitavanje potrebnih DLL-ova. Također možemo vidjeti još jednu liniju u registru R12, koja se koristi zajedno s prethodnom linijom za izvođenje demaskiranja.
Riža. 40: Dinamičko odmaskiranje
Nastavlja preuzimati naredbe koje će kasnije pokrenuti kako bi onemogućio sigurnosne kopije, točke vraćanja i načine sigurnog pokretanja.
Riža. 41: Učitavanje naredbi
Zatim učitava mjesto gdje će ispustiti 3 datoteke: Windows.bat, run.sct и start.šišmiš.
Riža. 42: Lokacije datoteka
Ove 3 datoteke koriste se za provjeru privilegija koje svaka lokacija ima. Ako tražene privilegije nisu dostupne, Ryuk zaustavlja izvršenje.
Nastavlja učitavati retke koji odgovaraju trima datotekama. Prvi, DECRYPT_INFORMATION.html, sadrži informacije potrebne za oporavak datoteka. Drugi, JAVNOST, sadrži RSA javni ključ.
Riža. 43: Red DECRYPT INFORMATION.html
Treći, UNIQUE_ID_NE_MORE_REMOVE, sadrži šifrirani ključ koji će se koristiti u sljedećoj rutini za izvođenje enkripcije.
Riža. 44: Redak UNIQUE ID NE REMOVE
Konačno, preuzima potrebne biblioteke zajedno s potrebnim uvozima i CSP-ovima (Microsoftov poboljšani RSA и AES kriptografski pružatelj usluga).
Riža. 45: Učitavanje knjižnica
Nakon dovršetka demaskiranja, nastavlja se s izvođenjem radnji potrebnih za enkripciju: nabrajanje svih logičkih pogona, izvršavanje onoga što je učitano u prethodnoj rutini, jačanje prisutnosti u sustavu, izbacivanje datoteke RyukReadMe.html, enkripcija, nabrajanje svih mrežnih pogona , prijelaz na detektirane uređaje i njihovu enkripciju.
Sve počinje utovarom"cmd.exe" i RSA evidencije javnih ključeva.
Riža. 46: Priprema za enkripciju
Zatim koristi sve logičke pogone GetLogicalDrives i onemogućuje sve sigurnosne kopije, točke vraćanja i načine sigurnog pokretanja.
Riža. 47: Deaktiviranje alata za oporavak
Nakon toga jača svoju prisutnost u sustavu, kao što smo vidjeli gore, i zapisuje prvu datoteku RyukReadMe.html в TEMP.
Riža. 48: Objavljivanje obavijesti o otkupnini
Na sljedećoj slici možete vidjeti kako stvara datoteku, preuzima sadržaj i zapisuje ga:
Riža. 49: Učitavanje i pisanje sadržaja datoteke
Da bi mogao izvoditi iste radnje na svim uređajima, koristi se
"icacls.exe", kao što smo gore pokazali.
Riža. 50: Korištenje icalcls.exe
I konačno, počinje šifrirati datoteke osim datoteka "*.exe", "*.dll", sistemskih datoteka i drugih lokacija navedenih u obliku šifrirane bijele liste. Da bi to učinio, koristi uvoze: CryptAcquireContextW (gdje je navedena upotreba AES i RSA), CryptDeriveKey, CryptGenKey, CryptDestroyKey itd. Također pokušava proširiti svoj doseg na otkrivene mrežne uređaje pomoću WNetEnumResourceW i zatim ih šifrirati.
Riža. 51: Šifriranje sistemskih datoteka
6. Uvozi i odgovarajuće zastave
U nastavku je tablica s popisom najrelevantnijih uvoza i oznaka koje koristi uzorak:
7. MOK
reference
- korisniciPublicrun.sct
- Start MenuProgramsStartupstart.bat AppDataRoamingMicrosoftWindowsStart
- IzbornikProgramsStartupstart.bat
Tehničko izvješće o Ryuk ransomwareu sastavili su stručnjaci iz antivirusnog laboratorija PandaLabs.
8. Poveznice
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 importantes empresas españolas.” https: //elpais.com/tecnologia/2019/11/04/actualidad/1572897654_ 251312.html, Publicada el 04/11/2019.
3. “VB2019 paper: 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. “Lov na veliku divljač s Ryukom: Još jedan unosanbciljani Ransomware.”https://www. crowdstrike.com/blog/big-game-hunting-with-ryuk-another-lucrative-targeted-ransomware/, Publicada el 10/01/2019.
5. “VB2019 dokument: Shinigamijeva osveta: dugi rep zlonamjernog softvera Ryuk.” https://www. virusbulletin.com/virusbulletin/2019/10/ vb2019-paper-shinigamis-revenge-long-tail-r
Izvor: www.habr.com