| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| malware_tehnike [2025/06/05 13:37] – ppale | malware_tehnike [2025/12/01 11:40] (current) – external edit 127.0.0.1 |
|---|
| ===Zaobilazak MOTW-a=== | ===Zaobilazak MOTW-a=== |
| |
| MOTW je kratica za „Mark of the web“, to je indikator kojeg Windows pridružuje svim datotekama i resursima koji su preuzeti preko interneta kako bi naznačio da su potencijalno opasni. Microsoft Defender onda može preko MOTW-a prepoznati da je određeni resurs potencijalno opasan i onda primijeniti dodatne sigurnosne provjere i analize tog resursa. Također pri pokretanju executable programa koji je skinut preko interneta i sadrži MOTW, Windows će korisniku izbaciti prozorčić koji će naglasiti da je program potencijalno opasan i nepoznatog porijekla, te pitati korisnika za dodatnu potvrdu pokretanja programa, osim u određenim slučajevima kad je program koji se pokreće „Signed Executable“ – dobro poznati i digitalno potpisan program. Također, pri dodatnoj analizi i oprezu operacijskog sustava s datotekama koje sadrže MOTW, važno je koje je ekstenzije ta datoteka preuzeta s interneta te ako spada pod jednu od opasnih ekstenzija onda je najviši stupanj opreza prema toj datoteci. | MOTW je kratica za „Mark of the web“, to je indikator kojeg Windows pridružuje svim datotekama i resursima koji su preuzeti preko interneta kako bi naznačio da su potencijalno opasni. Microsoft Defender onda može preko MOTW-a prepoznati da je određeni resurs potencijalno opasan i onda primijeniti dodatne sigurnosne provjere i analize tog resursa. Također, pri pokretanju executable programa koji je preuzet s interneta i sadrži MOTW, Windows će korisniku prikazati prozorčić koji će naglasiti da je program potencijalno opasan i nepoznatog porijekla, te pitati korisnika za dodatnu potvrdu pokretanja programa, osim u određenim slučajevima kad je program koji se pokreće „Signed Executable“ – dobro poznati i digitalno potpisan program. Također, pri dodatnoj analizi i oprezu operacijskog sustava s datotekama koje sadrže MOTW, važno je koju ekstenziju ima datoteka. Ako ima jednu od poznatih opasnih ekstenzija onda je najviši stupanj opreza prema toj datoteci. |
| |
| MOTW se postavlja na skinutoj datoteci tako da se datoteci preuzetoj s interneta dodaju metapodatci o porijeklu datoteke - Zone.Identifier Alternate Data Stream (ADS). Među tim metapodatcima su zapisani neki podatci o porijeklu resursa, kao URL i „ZoneId“ koji ima vrijednost 3 za „Internet zonu“ (ZoneId=3). Alternate Data Stream (ADS) je funkcionalnost NTFS datotečnog sustava, koji Windows koristi. ADS omogučuje da se za neku datoteku pohrane dodatni podatci, najčešće metapodatci, sigurnosne postavke, podatci potrebni za indeksiranje ili specifične postavke potrebne datoteci, no ti podatci se ne nalaze u originalnom skupu podataka datoteke, nego su samo vezane za nju u datotečnom sustavu. Kako bi se pročitali svi data streamovi datoteke koja se zove file.txt, može se iskorititi naredba : | MOTW se postavlja na preuzetoj datoteci tako da joj se dodaju metapodatci o porijeklu datoteke - Zone.Identifier Alternate Data Stream (ADS). Među tim metapodatcima su zapisani neki podatci o porijeklu resursa, kao URL i „ZoneId“ koji ima vrijednost 3 za „Internet zonu“ (ZoneId=3). Alternate Data Stream (ADS) je funkcionalnost NTFS datotečnog sustava, koji Windows koristi. ADS omogućuje da se za neku datoteku pohrane dodatni podatci, najčešće metapodatci, sigurnosne postavke, podatci potrebni za indeksiranje ili specifične postavke potrebne datoteci, no ti podatci se ne nalaze unutar same datoteke, nego su samo vezane za nju u datotečnom sustavu. Kako bi se pročitali svi data streamovi datoteke koja se zove file.txt, može se iskoristiti naredba : |
| |
| <code> | <code> |
| |
| Metapodatci su naziv ADS-a datoteke file.txt i korištenjem dvotočke se specificira kojem ADS-u određene datoteke se pristupa. Podatci pohranjeni u ADS-u neće biti vidljivi korisnicima u npr. File exploreru, ali ih programi čitaju i pišu u njih. „Zone.Identifier“ je naziv ADS-a u kojeg Windows pohranjuje metapodatke o porijeklu datoteke, te kad je u Zone.Identifier-u zapisano da je porijeklo datoteke „Internet zona“, to se smatra MOTW-om, jer naznačuje da je Internet porijeklo datoteke. | Metapodatci su naziv ADS-a datoteke file.txt i korištenjem dvotočke se specificira kojem ADS-u određene datoteke se pristupa. Podatci pohranjeni u ADS-u neće biti vidljivi korisnicima u npr. File exploreru, ali ih programi čitaju i pišu u njih. „Zone.Identifier“ je naziv ADS-a u kojeg Windows pohranjuje metapodatke o porijeklu datoteke, te kad je u Zone.Identifier-u zapisano da je porijeklo datoteke „Internet zona“, to se smatra MOTW-om, jer naznačuje da je Internet porijeklo datoteke. |
| Pošto je ADS funkcionalnost samo NTFS datotečnog sustava, kada bi se datoteka s više ADS-ova preuzela na Linux operacijski sustav, koji npr. koristi ext4 datotečni sustav, ADS-ovi te datoteke više ne bi postojali. Radi ove činjenice, kontejnerske ekstenzije, kao „.iso“, „.img“, „.vhd“, „.vhdx“ i druge ne mogu sadržavati ADS-ove na fileovima koje sadrže, a time im se ne može ni dodati Mark of the Web. Zloćudne datoteke koriste ove ekstenzije kao jednu od tehnika zaobilaska Mark of the Weba. Osim ove postoje i druge tehnike, na primjer CVE-2020-1599 je prije omogućavao da se postojeću potpisanu PE (Portable Executable) datoteku doda zlonamjerni kod, a da potpis i dalje ostane važeći. Također 7-Zip do 2022. godine nije podržavao zapisivanje MotW-a na extractane datoteke, nakon čega je ta funkcionalnost dodana kao opcionalna, tako da se zlonamjerni program mogao prenijeti u kompresiranom 7-Zip formatu (.7z), gdje program nakon ekstrakcije ne bi sadržavao Mark of the Web. Ovo je i dalje „default“ ponašanje, ali se može odabrati opcija da se prenese MoTW. | Pošto je ADS funkcionalnost koja postoji samo u NTFS datotečnom sustavu, kada bi se datoteka s više ADS-ova preuzela na Linux operacijski sustav, koji koristi npr. ext4 datotečni sustav, ADS-ovi te datoteke više ne bi postojali. Radi ove činjenice, kontejnerske ekstenzije, kao „.iso“, „.img“, „.vhd“, „.vhdx“ i druge ne mogu sadržavati ADS-ove za datoteke koje sadrže, a time im se ne može ni dodati Mark of the Web. Zloćudne datoteke koriste ove ekstenzije kao jednu od tehnika zaobilaska Mark of the Weba. Osim ove postoje i druge tehnike, na primjer metoda opisana u CVE-2020-1599 je prije omogućavala da se postojeću potpisanu PE (Portable Executable) datoteku doda zlonamjerni kod, a da potpis i dalje ostane važeći. Također 7-Zip do 2022. godine nije podržavao zapisivanje MotW-a na raspakirane datoteke, nakon čega je ta funkcionalnost dodana kao opcionalna, tako da se zlonamjerni program mogao prenijeti u komprimiranom 7-Zip formatu (.7z), pa datoteka (u kojoj je zlonamjerni program) nakon ekstrakcije ne bi sadržavao Mark of the Web. Ovo je i dalje „default“ ponašanje, ali se može odabrati opcija da se prenese MoTW. |
| Zaobilaskom MOTW-a zlonamjerni akteri postižu da njihov zloćudni program ne bude označen kao opasan i time žrtvin Windows vrši manje provjera zloćudnog programa i smanjuje se mogućnost da će biti detektiran. Također, pri pokušaju žrtve da pokrene zloćudni program, ne pojavljuje se skočni prozor koji traži dodatnu potvrdu žrtve da program bude pokrenut uz naznačivanje da je program potencijalno opasan. | Zaobilaskom MOTW-a zlonamjerni akteri postižu da njihov zloćudni program ne bude označen kao opasan i time žrtvin operacijski sustav Windows vrši manje provjera zloćudnog programa i smanjuje se mogućnost da će biti detektiran. Također, pri pokušaju žrtve da pokrene zloćudni program, ne pojavljuje se skočni prozor koji traži dodatnu potvrdu žrtve da program bude pokrenut uz naznačivanje da je program potencijalno opasan. |
| Korištenje windows PowerShella za izvršavanje malware payloada | |
| Glavni razlozi zašto zlonamjerni programi koriste PowerShell su kako bi otežali detekciju zaštitih programa. Neki od tehnika kako se koristi PowerShell za ovu namjenu su odvajanje i enkripcija ili obfuskacija „najsumnjivijeg“ dijela zlonamjernog programa – odnosno payloada, kako bi preostali dio zlonamjernog programa koji neće biti enkriptiran i kojeg će zaštitni programi skenirati izgledao „legitimno“ i ne sadržavao operacije koje bi zaštitni programi detektirali kao zlonamjerne. Također, ovako se dio operacija koje zlonamjerni program izvršava može učitati ravno u memoriju korištenjem PowerShella, bez prethodnog zapisivanja na disk u binarnom formatu, što također otežava detekciju zaštitnim programima. Učitani payload malware koji se pokreće s pomoću PowerShella onda može koristiti postojeće već dostupne funkcionalnosti i pozive PowerShella, kako bi bio još manji i teži za detekciju. | ===Korištenje windows PowerShella za izvršavanje malware payloada=== |
| | Glavni razlozi zašto zlonamjerni programi koriste PowerShell su kako bi otežali detekciju zaštitih programa. Neki od tehnika kako se koristi PowerShell za ovu namjenu su odvajanje i enkripcija ili obfuskacija „najsumnjivijeg“ dijela zlonamjernog programa – odnosno payloada, kako bi preostali dio zlonamjernog programa koji neće biti kriptiran i kojeg će zaštitni programi skenirati izgledao „legitimno“ i ne sadržavao operacije koje bi zaštitni programi detektirali kao zlonamjerne. Također, ovako se dio operacija koje zlonamjerni program izvršava može učitati izravno u memoriju korištenjem PowerShella, bez prethodnog zapisivanja na disk u binarnom formatu, što također otežava detekciju zaštitnim programima. Učitani payload malware koji se pokreće s pomoću PowerShella onda može koristiti postojeće već dostupne funkcionalnosti i pozive PowerShella, kako bi bio još manji i teži za detekciju. |
| |
| |
| |
| Uz zadatak su dostupne i dvije datoteke flag_corrupted.txt i SECRET.iso. | Uz zadatak su dostupne i dvije datoteke flag_corrupted.txt i SECRET.iso. |
| Prije preuzimanja zlonamjernih datoteka koje će se analizirati, bitno je postaviti ih u sigurno i izolirano okruženje, kao što je adekvatno podešena virtualna mašina. Za ovaj zadatak, preporučena je Windows virtualna mašina, ali je moguće zadatak riješit i koristeći Linux mašinu. | Prije preuzimanja zlonamjernih datoteka koje će se analizirati, bitno je postaviti ih u sigurno i izolirano okruženje, kao što je odgovarajuće podešeno virtualno računalo. Za ovaj zadatak, preporuča se koristiti Windows virtualno računalo, ali je moguće zadatak riješiti i koristeći Linux mašinu. |
| |
| Nakon preuzimanja datoteka, može se uočiti da je ekstenzija datoteke SECRET .iso, što označava da je datoteka slika diska. Kako bi se mogao vidjeti sadržaj slike diska, sliku je prvo potrebno „mountati“, što se može napraviti desnim klikom na datoteku i odabirom opcije mount. | Nakon preuzimanja datoteka, može se uočiti da je ekstenzija datoteke SECRET .iso, što označava da je datoteka slika diska. Kako bi se mogao vidjeti sadržaj slike diska, sliku je prvo potrebno „mountati“, što se može napraviti desnim klikom na datoteku i odabirom opcije mount. |
| |
| Nakon što je slika diska „mount-ana“, može se vidjeti sadržaj, koji je jedna LNK ili Shortcut datoteka naziva „tajno“. Desnim klikom na link i odabirom opcije properties, može se vidjeti da je atribut target neuobičajen, jer pokreće cmd.exe s određenim argumentima. Ovo je prikazano na slici 1. | Nakon što je slika diska „mountana“, može se vidjeti sadržaj, koji je jedna LNK ili Shortcut datoteka naziva „tajno“. Desnim klikom na link i odabirom opcije properties, može se vidjeti da je atribut target neuobičajen, jer pokreće cmd.exe s određenim argumentima. Ovo je prikazano na slici 1. |
| |
| |
| {{malwaretehnike:slika1.png}} | {{malwaretehnike:slika1.png}} |
| |
| Također se može uočiti da nakon argumenta explorer.exe, ima više praznih razmaka, nakon kojih opet slijedi ostatak naredbi, gdje se vidi PowerShell skripta sa base64 enkodiranim payloadom. | Također se može uočiti da nakon argumenta explorer.exe, ima više praznina, razmaka, nakon kojih opet slijedi ostatak naredbi, gdje se vidi PowerShell skripta s payloadom enkodiranim s base64. |
| |
| Vidljiv dio target argumenta je: | Vidljiv dio target argumenta je: |
| {{malwaretehnike:slika2.png}} | {{malwaretehnike:slika2.png}} |
| |
| Kako bi se base64 enkodirani dio naredbe dekodirao, ima više načina, od kojih je jedan napisati jednostavnu PowerShell skriptu. Powershell skripta prvo dekodira base64 u byte array, koji onda dekodira u UTF-16LE (enkodiranje koje PowerShell koristi) plaintext. Ova skripta se može napisati ovako: | Ima više načina da se dekodira dio naredbe enkodiran s base64. Jedan je napisati jednostavnu PowerShell skriptu. Powershell skripta prvo dekodira base64 u byte array, koji onda dekodira u UTF-16LE (enkodiranje koje PowerShell koristi) plaintext. Ova skripta se može napisati ovako: |
| <code> | <code> |
| $base64String = "SQBuAHYAbwBrAGUALQBXAGUAYgBSAG0..…“ | $base64String = "SQBuAHYAbwBrAGUALQBXAGUAYgBSAG0..…“ |
| {{malwaretehnike:slika3.png}} | {{malwaretehnike:slika3.png}} |
| |
| Sada se koristeći taj link može preuzeti .exe file. | Sada se, koristeći taj link, može preuzeti .exe file. |
| <code> | <code> |
| https://platforma.hacknite.hr/files/35ac...ba58/EncryptFlag.exe | https://platforma.hacknite.hr/files/35ac...ba58/EncryptFlag.exe |
| </code> | </code> |
| |
| Vidi se različite informacije o programu no ništa konkretno. | Vide se različite informacije o programu, no ništa konkretno. |
| Sljedeći korak može biti reverzno inženjerstvo programa koristeći neki od alata kao što su ghdira ili radare2. Također prije ovog koraka, program se može uploadati na VirusTotal, kako bi se izvršila dinamička analiza automatski i vidjeli se neki podatci o izvršavanju programa. | Sljedeći korak može biti reverzno inženjerstvo programa koristeći neki od alata kao što su ghdira ili radare2. Također prije ovog koraka, program se može uploadati na VirusTotal, kako bi se izvršila dinamička analiza automatski i vidjeli se neki podatci o izvršavanju programa. |
| Uploadom programa EncryptFlag.exe na VirusTotal, te odabirom karte „Behavior“ na slici 4. mogu se pronaći neke informacije o ponašanju programa za vrijeme izvršavanja. | Uploadom programa EncryptFlag.exe na VirusTotal, te odabirom karte „Behavior“ na slici 4. mogu se pronaći neke informacije o ponašanju programa za vrijeme izvršavanja. |