Skoči na vsebino

SI-CERT TZ005 / Analiza trojanca za prikriti oddaljeni dostop (RAT)

Povzetek

Analize škodljive kode, ki jih na SI-CERT opravljamo na podlagi prijavljenih varnostnih incidentov, kažejo veliko razširjenost trojancev za krajo podatkov (information stealer trojan). Kot samo ime nakazuje, je njihov namen kraja avtentikacijskih podatkov, ki se hranijo na okuženem sistemu (gesel in digitalnih potrdil – certifikatov). Na drugo mesto pa bi lahko uvrstili škodljivo kodo, ki storilcu omogoča oddaljen nadzor nad okuženim sistemom. Gre za vrsto trojanskih konjev, ki ji poimenujemo “Backdor Trojan” ali bolj pogosto “Remote Access Trojan” oz. krajše “RAT”.

Vektor okužbe z zlonamerno kodo je običajno elektronska pošta, občasno pa tudi namestitev brezplačne programske opreme iz nepreverjenega virov ali namestitev plačljivih programov z zlomljeno licenčno zaščito (crack).

RAT – prikrito orodje za oddaljeni dostop

RAT je močno orodje. Z njim storilec izvaja različna opravila, med katerimi so:

  • kraja informacij,
  • ustvarjanje, zagon ali zaustavljanje opravil in procesov,
  • prenos datotek na/iz sistema,
  • sprememba kritičnih nastavitev operacijskega sistema (izklop protivirusne zaščite, požarnega zidu, …),
  • ponovni zagon ali izklop računalnika,
  • izvajanje pregledovanja in različnih napadov na druge sisteme.

V enem od tipičnih scenarijev napadalec najde pregovorni najšibkejši člen in okuži računalnik prve žrtve, preko te okužbe namesti RAT in nato začne z zbiranjem podatkov o okolju žrtve: o njenem računalniku in omrežju, v katerega je ta vključen. RAT orodje omogoča pregled drugih sistemov na lokalnem omrežju in poskus širjenja na njih preko ukradenih avtentikacijskih podatkov, zlomljenih gesel ali izrabe ranljivosti. Na koncu lahko preko RAT na delovne postaje namesti in sproži izsiljevalski virus [1].

Analiza RAT trojanca

Pisci zlonamerne kode veliko pozornosti posvečajo tehnikam, ki otežujejo izvedbo njene analize. Pri tem so lahko bolj spretni oziroma natančni, ali pa manj. Poglejmo si primer.

Tako, kot v večini obravnavanih primerov škodljive kode, se zgodba začne z elektronskim sporočilom. V njem skušajo pošiljatelji prejemnika prepričati, da odpre pripeto arhivsko .rar datoteko, saj naj bi šlo za naročilo.

Primer elektronskega sporočila z arhivsko datoteko v priponki
Arhivska datoteka v priponki

V arhivski datoteki se nahaja .doc dokument.

Izpis vsebine z ukazom $unrar l PO305188.rar
Izpis vsebine z ukazom $unrar l PO305188.rar
Uporaba ukaza file PO305188.doc za prikaz vrste datoteke
Uporaba ukaza file PO305188.doc za prikaz vrste datoteke

Dejansko gre za RTF (Rich Text Format) obliko datoteke, pregled z orodjem rtfobj pa pokaže, da ima vgrajene tri OLE objekte (Object Linking and Embedding).

Pregled datoteke z orodjem rtfobj
Pregled datoteke z orodjem rtfobj

Vidimo, da datoteka vsebuje dva sumljiva objekta, ki ju tudi ustrezno obarva. Izpis vsebuje še dodatne informacije, kot je izračun MD5 zgoščene vrednosti posameznega objekta, katere ranljivosti se izkoriščajo (CVE), velikost, tip, pot izvoza objekta v primeru odpiranja datoteke …
Z uporabo istega orodja objekta tudi izvozimo. Tako dobimo dve datoteki 000101F2.bin in AbctfhgXghghghg.scT

000101F2.bin

Pregled 000101F2.bin datoteke pokaže, da je njen namen zagon vsebine objekta AbctfhgXghghghg.scT preko izkoriščanja ranljivosti za zagon poljubne kode preko RTF dokumentov.

Na naslovu 00000450 se nahaja Microsoft Office Equation Editor CLSID
Na naslovu 00000450 se nahaja Microsoft Office Equation Editor CLSID

AbctfhgXghghghg.scT

Analiza AbctfhgXghghghg.scT datoteke pokaže, da je ta napisana v VBS skriptnem jeziku v rahlo izmaličeni obliki z namenom oteževanja razumevanja njenega delovanja.

Izsek VBS skripte AbctfhgXghghghg.scT
Izsek VBS skripte AbctfhgXghghghg.scT

Delovanje/namen VBS skripte:

1. Vsebina skripte se kopira v datoteko hrjytrj.cmd na poti C:/programData/
Z uporabo WScript metode se VBS skripta zažene v skritem Windows ukaznem oknu.

2. V spremenljivki fsdfdsfs se nahaja base64 kodiran niz, ki vsebuje URL naslov na katerem se nahaja javascript koda.

base64 kodiran niz, ki vsebuje URL naslov na katerem se nahaja javascript koda
Base64 kodiran niz, ki vsebuje URL naslov na katerem se nahaja javascript koda

3. V spremenljivki yulkytjtrhtjrkdsarjky je v base64 kodiranem nizu navedeno ime .js skripte t.j. PO0912.js.

4. Prenos in zagon PO0912.js se nato izvede prek vdelane PowerShell skripte.

Prenesena PO0912.js datoteka se zapiše na pot C:\Users\sv-user\AppData/
Prenesena PO0912.js datoteka se zapiše na pot C:\Users\sv-user\AppData/

PO0912.js

Ker nam je URL naslov PO0912.js datoteke znan, jo od tam lahko ročno tudi prenesemo. Ta v spremenljivki av_send vsebuje daljši base64 niz, ki vsebuje kombinacijo ponavljajočih posebnih znakov #%>, ki ne sodijo v base64 obliko.

Daljši base64 niz, ki vsebuje kombinacijo ponavljajočih posebnih znakov #%>, ki ne sodijo v base64 obliko
Daljši base64 niz, ki vsebuje kombinacijo ponavljajočih posebnih znakov #%>, ki ne sodijo v base64 obliko

Odgovor na vprašanje, kaj ti znaki predstavljajo pa dobimo v spremenljivki stone, kjer je navedeno:

Spremenljivka stone
Spremenljivka stone

Matrika spremenljivke stone pa določa:

Matrika spremenljivke stone
Matrika spremenljivke stone

Skratka, posebne znake #%> je potrebno nadomestiti s črko g. To preprosto storimo z uporabo univerzalnega orodja sed (Stream EDitor).

Sprememba znakov #%> s črko g
Sprememba znakov #%> s črko g

Tako urejen base64 niz lahko sedaj dekodiramo. Rezultat je 1520 vrstic dolga skripta RAT trojanskega konja v berljivi obliki.

Izsek skripte
Izsek skripte

Na začetku skripte se nahajajo inicializacijski podatki, ki med drugim kažejo na funkcijo s parametri nadzornega strežnika in vsebujejo številko vrat na katerih ta “posluša”.

Inicializacijski podatki na začetku skripte
Inicializacijski podatki na začetku skripte

Spremenljivka host je določena v funkciji getHost(). Ta vsebuje:

  • naslov nadzornega strežnika;
  • XMLHTTP objekt; ta omogoča pošiljanje HTTP zahtev in razčlenitev odgovorov strežnika neposredno v MSXML DOM objekte;
  • parameter User-Agent; uporabniški agent s katerim “posnema” spletni brskalnik
Spremenljivka host je določena v funkciji getHost()
Spremenljivka host je določena v funkciji getHost()

Iz skripte je razviden nadaljnji potek okužbe. Najprej se v register doda vrednost, ki zagotavlja, da se zlonamerna koda izvede po vsakem zagonu sistema (persistence mechanism).

Nadaljnji potek okužbe
Nadaljnji potek okužbe

Z Win32_LogicalDisk (WMI class) preveri lokalno nameščeno pomnilniško napravo.

Preverba lokalno nameščene pomnilniške naprave
Preverba lokalno nameščene pomnilniške naprave
Primer izpisa pri uporabi Win32_LogicalDisk v powershell
Primer izpisa pri uporabi Win32_LogicalDisk v powershell

Z Win32_OperatingSystem (WMI class) preveri verzijo nameščenega Windows operacijskega sistema.

Primer izpisa pri preverbi verzije nameščenega Windows operacijskega sistema
Primer izpisa pri preverbi verzije nameščenega Windows operacijskega sistema
Primer izpisa pri uporabi Win32_OperatingSystem v powershell
Primer izpisa pri uporabi Win32_OperatingSystem v powershell

Z AntiVirusProduct (Security Center class) preveri kateri protivirusni program je nameščen.

Primer izpisa pri preverbi nameščenega antivirusnega programa
Primer izpisa pri preverbi nameščenega antivirusnega programa
Primer izpisa pri uporabi AntiVirusProduct v powershell
Primer izpisa pri uporabi AntiVirusProduct v powershell

Z Win32_Process (WMI class) preveri kateri procesi tečejo na sistemu.

Primer izpisa pri preverbi tekočih procesov na sistemu
Primer izpisa pri preverbi tekočih procesov na sistemu
Primer izpisa pri uporabi Win32_Process v powershell
Primer izpisa pri uporabi Win32_Process v powershell

Preko HTTP zahteve na http://ip-api.Com/json/ preveri podatke o geolokaciji in javnem IP naslovu okuženega sistema.

Preverba podatkov o geolokaciji in javnem IP naslovu okuženega sistema
Preverba podatkov o geolokaciji in javnem IP naslovu okuženega sistema
Podatki, ki jih prejme v odgovoru strežnika http://ip-api.Com/json/
Podatki, ki jih prejme v odgovoru strežnika http://ip-api.Com/json/

Ugotavljanje lokacije na podlagi IP naslova je le približno, zato ni nič neobičajnega, če lokacijo prikaže na drugem koncu Slovenije.

Po uspešni okužbi sistema na nadzorni strežnik pošlje POST HTTP zahtevo, ki vsebuje , ter mu na ta način sporoči, da je sistem pripravljen na sprejem ukazov.

Trojanec po okužbi samodejno začne z aktivnostmi kot so ekstrakcija hranjenih gesel v nameščenih spletnih brskalnikih, namestitev in zagon vsebujočega programskega modula za beleženje vnosov prek tipkovnice (keylogger), krajo gesel iz odjemalcev elektronske pošte, orodja za nadzor namizja, obratni posredniški strežnik (reverse proxy).

Kraja gesel iz nameščenih brskalnikov
Kraja gesel iz nameščenih brskalnikov
Primer pridobivanja hranjenih gesel v spletnem brskaniku Chrome
Primer pridobivanja hranjenih gesel v spletnem brskaniku Chrome
Primer pridobivanja hranjenih gesel v spletnem brskaniku Firefox
Primer pridobivanja hranjenih gesel v spletnem brskaniku Firefox

Funkcija beleženja vnosov prek tipkovnice deluje v dveh načinih:

  • beleženje vnosov na tipkovnici brez povezave na internet (vnose beleži v datoteko)
  • neposredno pošiljanje vnosov prek tipkovnice na nadzorni strežnik (napadalec lahko spremlja vnose v živo)
Modul za beleženje vnosov prek tipkovnice
Modul za beleženje vnosov prek tipkovnice
Orodje za spremljanje in upravljanje namizja sistema (Remote Desktop Control Tool)
Orodje za spremljanje in upravljanje namizja sistema (Remote Desktop Control Tool)
Modul za krajo gesel iz nameščenih odjemalcev el. pošte
Modul za krajo gesel iz nameščenih odjemalcev el. pošte
Reverse Proxy modul
Reverse Proxy modul

Seznam funkcij RAT trojanca:

ponovni zagon sistema – rebootugašanje sistema – shutdown
zagon izvršljivih datotek – executenameščanje programov – install
zagon programske kode na daljavoizvajanje ukazov na daljavo – cmd-shell
odstranjevanje programske opreme – uninstallZdruževanje datotek – runBinder (File Binder)
online in offline keylogerpridobivanje gesel – passgrabber
remote desktop – RDPreverse proxy
onemogočanje UAC (Windows User Account Control) – disable-uaconemogočanje protiviusne zaščite
upravljanje z datotekami – filemanagerupravljanje z dnevniškimi zapisi
upravljanje s procesiprenos (download) in zagon programske opreme iz oddaljene lokacije
pošiljanje (upload) podatkov/datotek na oddaljeno lokacijozagon programov z administratorskimi pravicami
Seznam funkcij RAT trojanca

Zaključek

Obravnavan Remote Access Trojanec je napisan kar v “preprosti” javascript kodi, ki jo dokaj enostavno analiziramo. Vseeno pa gre za zmogljivo orodje, ki v primeru okužbe lahko povzroči znatno škodo posameznikom ali celotnemu podjetju. Pazljivost pri pri odpiranju priponk v sporočilih je tako povsem na mestu, kot tudi pogosto opozarjamo.

P.S.

Tovrstna orodja se seveda prodajajo na črnem trgu. Konkretni RAT trojanec je na voljo že za 24,99$/mesečno.

Funkcije oglaševanega RAT trojanca
Funkcije oglaševanega RAT trojanca
Funkcije oglaševanega RAT trojanca
Funkcije oglaševanega RAT trojanca
Cena trojanca
Cena trojanca
Popust pri naročilu za 3 mesece
Popust pri naročilu za 3 mesece

Posamezniku je torej že za 24.99$/mesec omogočeno, da stopi na drugo stran zakona. Seveda pa je za uspešno širjenje škodljive kode po el. pošti potrebna uporaba socialnega inženiringa; prejemnike je pač potrebno prepričati, da se v priponki nahaja nekaj, kar jim bo prineslo boljši jutri.

Seveda pa gre za kaznivo dejanje, ki je opredeljeno v 221. in 306. členu Kazenskega zakonika RS:

Napad na informacijski sistem, 221. člen

(1) Kdor neupravičeno vstopi ali vdre v informacijski sistem ali kdor neupravičeno prestreže podatek ob nejavnem prenosu v informacijski sistem ali iz njega, se kaznuje z zaporom do enega leta.

(2) Kdor podatke v informacijskem sistemu neupravičeno uporabi, spremeni, preslika, prenaša, uniči ali v informacijski sistem neupravičeno vnese kakšen podatek, ovira prenos podatkov ali delovanje informacijskega sistema, se kaznuje za zaporom do dveh let.

(3) Poskus dejanja iz prejšnjega odstavka je kazniv.

(4) Če je z dejanjem iz drugega odstavka tega člena povzročena velika škoda, se storilec kaznuje z zaporom od treh mesecev do petih let.

Izdelovanje in pridobivanje orožja in pripomočkov, namenjenih za kaznivo dejanje, 306. člen

(1) Kdor orožje, razstrelilne snovi ali pripomočke, s katerimi se lahko napravijo, ali strupe, za katere ve, da so namenjeni za kaznivo dejanje, izdela ali si jih pridobi ali jih hrani ali komu omogoči, da pride do njih, se kaznuje z zaporom do treh let.

(2) Kdor napravi ali komu odstopi ponarejen ključ, odpirač ali kakšen drug pripomoček za vlom, čeprav ve, da je namenjen za kaznivo dejanje, se kaznuje z zaporom do enega leta.

(3) Enako kot v prejšnjem odstavku se kaznuje, kdor z namenom storitve kaznivega dejanja poseduje, izdeluje, prodaja, daje v uporabo, uvaža, izvaža ali kako drugače zagotavlja pripomočke za vdor ali neupravičen vstop v informacijski sistem.

Povezave

[1] https://www.cert.si/si-cert-2019-05-napredni-napadi-z-izsiljevalskimi-virusi/

Preberite tudi

5 varnostnih nasvetov, ki naj v 2025 gredo v pozabo

Pripravili smo pregled nekaj varnostnih nasvetov, ki naj v 2025 gredo v pozabo, saj gre za prakse, ki več ne ustrezajo sodobnim varnostnim zahtevam.
Več

Kaj nas je naučilo leto 2024?

Iztekajoče leto 2024 so zaznamovali tako odmevnejši kibernetski napadi na velike organizacije, ki so pritegnili veliko medijske pozornosti, kot tudi veliko število incidentov v manjših podjetjih, predvsem prevar z vrivanjem v poslovno komunikacijo (t.i. BEC prevara) in okužb z zlonamerno kodo (t.i. infostealers). 
Več

Konferenca o ozaveščanju o kibernetski varnosti

Agencija EU za kibernetsko varnost ENISA je v partnerstvu s SI-CERT organizirala prvo mednarodno konferenco o ozaveščanju o kibernetski varnosti. Dogodek je 27. novembra 2024, v Klubu Cankarjevega doma, gostil …
Več