Skoči na vsebino

SI-CERT TZ006 / Purple Fox Exploit Kit

Povzetek

Relief krajine škodljive kode se z novimi tehnikami in metodami, ki jih uporabljajo storilci, nenehno spreminja. Del te krajine so tudi avtomatizirani kompleti orodij za izvedbo zlorab, imenovani Exploit Kit (EK), ki preko izkoriščanja ranljivosti v spletnih brskalnikih omogočajo zagon zlonamerne programske opreme in s tem okužbo sistema uporabnika, ki je bil med brskanjem po spletu zaveden v obisk strani, s podtaknjeno škodljivo kodo. Ponekod se opušča  “tradicionalne” tehnike prenosa in izvedbe škodljive kode s hrambo prenešenih datotek na fizičnih medijih in se uporablja izvedba škodljive kode neposredno v pomnilniku sistema. Takrat govorimo o brezdatotečnih napadih (fileless malware). V nadaljevanju je opisan Purple Fox Exploit Kit, ki smo ga pred kratkim obravnavali na SI-CERT. Poleg brezdatotečne tehnike prenosa zlonamerne kode pa to skrije tudi z uporabo steganografije.

Steganografija – metoda skrivanje sporočil, slike, podatkov, ipd.  znotraj druge datoteke, na način, da prisotnost skrite vsebine ni opazna. Najbolj pogosto se za skrivanje vsebine uporabljajo slike, podatki pa se “razmazani” v manj pomembne bite, ki bistveno slike, za človeško zaznavo, ne spremenijo.

Purple Fox Exploit Kit

Purple Fox je eden izmed treh bolj znanih brezdatotečnih kompletov, med katere se uvrščata še Magnitude EK (bolj geografsko usmerjen, uporabljen je bil v kampanji širjenja škodljive kode med uporabniki iz Južne Koreje) ter UnderminerEK, ki se predvsem uporablja za širjenje s Hidden Bee botnetom povezano kodo za rudarjenje kripto valut. 

Namen Purple Fox Exploit Kit je dostava škodljivega tovora oz. škodljive kode na sistem uporabnika. Storilci, ki stojijo za Purple Fox so v preteklosti za širjenje škodljive kode uporabljali zelo razširjen RIG Exploit Kit, ki so ga konec leta 2019 zamenjali z lastno rešitvijo, poimenovano Purple Fox Exploit Kit. Osrednjo vlogo v tem in pa tudi drugih podobnih ogrodjih za prevzem nadzora nad tujimi računalniki prevzame PowerShell, ki omogoča dostop do konfiguracije sistema in avtomatizacijo opravil v operacijskem sistemu. Z razvojem Purple Fox EK je bil dodan tudi element prej omenjene steganografije, pri vsem tem pa se dodatno naslanja na ranljivosti v brskalnikih in na osnovi brskalnikov grajenih aplikacij. Te se sproti dodajajo Purple Fox.

Opisani izkoriščevalski komplet se lahko uporabi za dostavo katerekoli škodljive kode, kot so npr. infostealer trojanski konji, izsiljevalski virusi, orodja za oddaljen dostop (Remote Access Trojans) ipd. Ena od bolj znanih uporab Purple Fox EK je bila denimo okužba sistemov s programsko opremo za rudarjenje kripto valut. 
V večini drugih obravnavanih okužb vstopni vektor predstavljajo elektronska sporočila, ki uporabnika z neko zgodbo zavedejo v klik na povezavo ali priponko v sporočilu, kar običajno privede do prenosa in zagona škodljive kode na sistemu uporabnika. V primeru Purple Fox Exploit Kita pa gre zgodba nekoliko drugače. Ta namreč proces okužbe v celoti izvede v pomnilniku in zato ne pušča “odtisov”,  na podlagi katerih običajno zaščitna programska oprema zazna škodljivo kodo. Storilci za širjenje uporabljajo malvertising – vstavljanje zlonamernih oglasov na sicer zakonite spletne strani in oglaševalska omrežja.  Obisk strani vključuje ogled oglasov, programska koda v zlonamernem oglasu pa prevery odtis obiskovalca (npr. uporabljenega spletnega brskalnika, geolokacije obiskovalca ipd.) in na podlagi tega izbere ustrezno metodo za zlorabo žrtve.

Analiza delovanja

V primeru obiska strani z uporabo Internet Explorer spletnega brskalnika poskusi izkoristiti ranljivost njegovega javascript modula jscript.dll (CVE-2020-0674). Ranljivost se nanaša na načinu ravnanja z objekti v pomnilniku s strani skriptnega pogona (Scripting Engine Memory Corruption Vulnerability), kar napadalcu omogoča zagon poljubne kode na daljavo (RCE, Remote Code Execution) s pravicami trenutno prijavljenega uporabnika. V pomnilniku nato izvede PowerShell skripto, odloženo na oddaljenem spletnem mestu. Gre za z Base64 kodirano in stisnjeno (compresed) PowerShell skripto.

Čeprav se vse v članku obravnavane PowerShell skripte izvajajo v pomnilniku sistema, jih je seveda možno pridobiti iz spletnih mest, na katerih so se nahajale v času preiskave.

Base64 kodirana in stisnjena PowerShell skripta

Četudi analizo opravljamo v namensko pripravljenem laboratorijskem okolju, kode ne zaženemo, ampak jo preprosto dekodiramo, za kar uporabimo pripomoček, ki poenostavi in pohitri analizo stisnjenih PowerShell skript in je del arzenala na SI-CERT razvitih orodij.

Orodje za dekompresijo in dekodiranje zakritih PowerShell skript

Takšen način zakrivanja PowerShell skript je pogosto uporabljena metoda napadalcev in smo jo v različnih primerih analiz vzorcev škodljive kode že večkrat obravnavali.
Podobno zakodirano PowerShell skripto lahko najdete tudi na naslovnici našega Poročila o kibernetski varnosti za leto 2018. (gre za delujočo kodo, katere zagon pa seveda ne predstavlja varnostnega tveganja.

Razkrita PowerShell skripta prikaže princip delovanja Purple Fox EK, ki ima končni cilj na sistem uporabnika dostaviti škodljiv tovor.

Izsek razkrite PowerShell kode

V kolikor ima trenutno prijavljen uporabnik administratorske pravice, se na sistem prenese škodljiva koda, v obliki .msi datoteke. Namen datoteke pa razložimo ob zaključku članka.

Če uporabnik nima administratorskih pravic, skripta preveri katera verzija Windows OS je v uporabi in na podlagi tega iz slike, ki se nahaja na oddaljenem sistemu, izlušči ustrezno PowerShell skripto. Gre za steganografijo, skrivanje podatkov – v tem primeru nove PowerShell skripte.

Slika, v katero je bila vgrajena PowerShell skripta v primeru uporabe Windows 7 ali Windows server 2008
Slika, v katero je bila vgrajena PowerShell skripta v primeru uporabe drugih različic Windows OS

Za skrivanje PowerShell skripte v slikovno datoteko se posamezen zlog skripte zapiše v najmanj pomembne 4 bite dveh barvnih vrednosti slikovne pike. Vsaka uporabljena slikovna pika torej vsebuje en zlog celotne skripte, vrednosti pa so vstavljene v barvne vrednosti zelene in modre barve (po trobarvnem RGB modelu). Zapis črke “p” v slikovno piko bele barve (RGB 255,255,255) po tem principu je prikazan spodaj:

Analize steganografiranih podatkov se lahko lotimo na več načinov. Ena možnost recimo je, da primerjamo original slike in kopijo, v kateri se skriva koda. V tem konkretnem primeru pa to ni potrebno, saj imamo na voljo skripto z algoritmom za izluščenje kode iz slike. Le spremenimo je, da rezultata ne zažene, ampak ga samo shrani v datoteko.

Iz slike izluščena PowerShell skripta

V obeh primerih v sliki vgrajene PowerShell skripte, je ta zakrita z Base64 kodiranjem, kar pomeni, da jo lahko enostavno dekodiramo in pretvorimo v berljivo obliko.

Base64 kodiranje se uporablja za prenos podatkov po omrežju, in zagotavlja, da bodo podatki med prenosom ostali nespremenjeni. Izvorno je namenjen prekodiranju binarnih podatkov v obliko, kjer je uporabljena le podmnožica znakov iz 7-bitnega ASCII nabora. Ta vrsta kodiranja se uporablja pri prenosu različnih priponk v elektronski pošti, priljubljena pa je tudi pri zakrivanju (berljivosti) prave vsebine in jo napadalci uporabljajo za prenos zlonamernega tovora. Včasih je to tudi dovolj za izogib protivirusni zaznavi.

V sliko vgrajena PowerShell skripta

Škodljiv tovor v obliki .msi datoteke, se tudi v tem primeru prenese iz oddaljenega spletnega mesta, pri tem pa izkoristi ranljivost, ki omogoča zvišanje pravic (Elevation of Privilege) in tako zažene škodljivo kode. V obravnavanem primeru je šlo za izkoriščanje ranljivosti CVE-2020-1054. Omenjena ranljivost se nahaja v Windows kernel-mode gonilniku, ki ne zna pravilno obravnavati objektov v pomnilniku.

Popravek za ranljivost CVE-2020-1054 je bil izdan maja 2020.

Na koncu uspešno izvedene kode skripta zapiše v ključ registra “HKCU\Software\7-Zip” vrednost “StayOnTop”. Dokler tam te vrednosti ni, skripta poskuša znova in znova. Celotni postopek se zaključi z namestitvijo rootkita preko registracije .msi paketa kot “boot-start” gonilnika, kar mu zagotovi tako izvedbo kot tudi persistenco po ponovnem zagonu sistema. Ob zagonu se .msi paket, preko funkcije MsiInstallProductA msi.dll tudi zažene in vbrizga rootkit kodo v nov “svchost” proces.

Zaključek

Storilci, ki stojijo za Purple Fox EK so si nekaj uporabljene kode za izkoriščanje v članku omenjenih ranljivosti “sposodili” od avtorjev, ki so le-to objavili v dokaz obstoja ranljivosti (PoC, Proof-of-Concept). Tudi uporabljena metoda steganografije ni nova, jo pa v takšni vlogi redko zasledimo pri obravnavi posameznih primerov škodljive kode. Med analizo Purple Fox EK se tudi ni moč otresti občutka, da se ukvarjamo s sestavljanko; lahko bi rekli da vsak obravnavan segment Purple Fox Exploit Kita terja ločeno analizo. Dejstvo pa je, da vsi ti deli sestavljanke tvorijo močno orodje za izvedbo avtomatiziranih postopkov, katerih cilj je okužba sistemov s katero koli od oblik škodljive kode.

Z izdelavo lastnega kompleta so se storilci za Purple Fox EK pridružili ponudnikom storitev na črnem trgu. Ponudbo za najem storitev Purple Fox je moč občasno zaslediti predvsem na nekaterih ruskih hekerskih forumih, ki so dosegljivi na temnem spletu. V času pisanja članka ponudbe za najem omenjene stroritve sami sicer nismo zasledili.

Zgoraj zapisana analiza je posledica prijave na SI-CERT, ki je vsebovala zgolj en sumljiv spletni naslov, ki je vodil do odklepanja novih in novih faz pri postopku zlorabe računalnika.

Preberite tudi

0-day ranljivost v SonicWall napravah

SonicWall, proizvajalec strojnih omrežnih varnostnih naprav, je izdal nujno varnostno obvestilo o obstoju t.i. 0-day ranljivosti.
Več

Črpanje evropskih sredstev za krepitev kapacitet SI-CERT

Na SI-CERT smo v zadnjih dveh letih uspešno uresničili naš prvi evropski projekt.
Več

SolarWinds vdor

SolarWinds Orion je platforma za upravljanje z IKT sredstvi, ki jo med drugim uporabljajo Fortune 500 podjetja in veliko državnih ustanov.
Več